@latticexyz/store 3.0.0-main-fb1cfef0c → 3.0.0-main-570086e7b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-7BUS2KVD.js +2 -0
- package/dist/chunk-7BUS2KVD.js.map +1 -0
- package/dist/codegen.d.ts +27 -13
- package/dist/codegen.js +177 -177
- package/dist/codegen.js.map +1 -1
- package/dist/config/v2.d.ts +3 -3
- package/dist/config/v2.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/{input-48d1368b.d.ts → input-e69ffb2f.d.ts} +9 -3
- package/dist/mud.config.d.ts +4 -4
- package/dist/mud.config.js +1 -1
- package/dist/mud.config.js.map +1 -1
- package/dist/{namespacedTables-8a81e0a2.d.ts → namespacedTables-264f21b1.d.ts} +2 -2
- package/dist/{store-6077eba5.d.ts → store-122dc6fd.d.ts} +9 -5
- package/out/Callbacks.sol/Callbacks.json +1 -1
- package/out/Callbacks.t.sol/CallbacksTest.json +1 -1
- package/out/Gas.t.sol/GasTest.json +1 -1
- package/out/Gas.t.sol/SolidityStorage.json +1 -1
- package/out/Gas.t.sol/SomeContract.json +1 -1
- package/out/GasStorageLoad.t.sol/GasStorageLoadTest.json +1 -1
- package/out/Hook.sol/HookInstance.json +1 -1
- package/out/Hook.sol/HookLib.json +1 -1
- package/out/Hook.t.sol/HookTest.json +1 -1
- package/out/Hooks.sol/Hooks.json +1 -1
- package/out/KeyEncoding.sol/KeyEncoding.json +1 -1
- package/out/KeyEncoding.t.sol/KeyEncodingTest.json +1 -1
- package/out/MirrorSubscriber.sol/MirrorSubscriber.json +1 -1
- package/out/Mixed.sol/Mixed.json +1 -1
- package/out/Mixed.t.sol/MixedTest.json +1 -1
- package/out/ResourceIds.sol/ResourceIds.json +1 -1
- package/out/Store.sol/Store.json +1 -1
- package/out/StoreCore.sol/StoreCore.json +1 -1
- package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
- package/out/StoreCore.t.sol/StoreCoreTest.json +1 -1
- package/out/StoreCoreDynamic.t.sol/StoreCoreDynamicTest.json +1 -1
- package/out/StoreCoreGas.t.sol/StoreCoreGasTest.json +1 -1
- package/out/StoreHook.t.sol/StoreHookTest.json +1 -1
- package/out/StoreHooks.sol/StoreHooks.json +1 -1
- package/out/StoreHooks.t.sol/StoreHooksTest.json +1 -1
- package/out/StoreHooksColdLoad.t.sol/StoreHooksColdLoadTest.json +1 -1
- package/out/StoreKernel.sol/StoreKernel.json +1 -1
- package/out/StoreMock.sol/StoreMock.json +1 -1
- package/out/StoreMock.t.sol/StoreMockTest.json +1 -1
- package/out/StoreRead.sol/StoreRead.json +1 -1
- package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
- package/out/StoreSwitch.t.sol/MockSystem.json +1 -1
- package/out/StoreSwitch.t.sol/StoreSwitchTest.json +1 -1
- package/out/StoreSwitch.t.sol/StoreSwitchTestStore.json +1 -1
- package/out/Tables.sol/Tables.json +1 -1
- package/out/Vector2.sol/Vector2.json +1 -1
- package/out/Vector2.t.sol/Vector2Test.json +1 -1
- package/out/build-info/{ab717ad6a3f348702f22d62ec82363af.json → 946dc2faf2e29137d1fd87e41e62942e.json} +1 -1
- package/package.json +7 -7
- package/src/codegen/tables/Hooks.sol +1 -1
- package/src/codegen/tables/ResourceIds.sol +1 -1
- package/src/codegen/tables/StoreHooks.sol +1 -1
- package/src/codegen/tables/Tables.sol +3 -3
- package/dist/chunk-JX6B2S4J.js +0 -2
- package/dist/chunk-JX6B2S4J.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"testDelegatecall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testNoDelegatecall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"0x608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b50618f1f806100416000396000f3fe60806040523480156200001157600080fd5b5060043610620000f15760003560e01c806385226c811162000097578063b5508aa9116200006e578063b5508aa91462000188578063ba414fa61462000192578063e20c9f7114620001ad578063fa7626d414620001b757600080fd5b806385226c81146200015b578063916a17c61462000174578063a1382b5a146200017e57600080fd5b80633e5e3c2311620000cc5780633e5e3c23146200012e5780633f7286f4146200013857806366d9a9a0146200014257600080fd5b80630a9254e414620000f65780631ed7831c1462000102578063227d77581462000124575b600080fd5b62000100620001c5565b005b6200010c6200022b565b6040516200011b919062000cb2565b60405180910390f35b620001006200028f565b6200010c62000339565b6200010c6200039b565b6200014c620003fd565b6040516200011b919062000d01565b6200016562000505565b6040516200011b919062000df8565b6200014c620005df565b62000100620006de565b6200016562000743565b6200019c6200081d565b60405190151581526020016200011b565b6200010c62000969565b6000546200019c9060ff1681565b604051620001d39062000ca4565b604051809103906000f080158015620001f0573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200028557602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000266575b5050505050905090565b601f54604080517f102f59a900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163102f59a9916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000e76565b601f54909150620003369082906001600160a01b0316620009cb565b50565b6060600f80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620004e357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200048f5790505b5050505050815250508152602001906001019062000421565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5783829060005260206000200180546200054b9062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620005799062000ea8565b8015620005ca5780601f106200059e57610100808354040283529160200191620005ca565b820191906000526020600020905b815481529060010190602001808311620005ac57829003601f168201915b50505050508152602001906001019062000529565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620006c557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620006715790505b5050505050815250508152602001906001019062000603565b601f54604080517f0ca3976900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691630ca39769916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b60606010805480602002602001604051908101604052809291908181526020016000905b82821015620004fc578382906000526020600020018054620007899062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620007b79062000ea8565b8015620008085780601f10620007dc5761010080835404028352916020019162000808565b820191906000526020600020905b815481529060010190602001808311620007ea57829003601f168201915b50505050508152602001906001019062000767565b60008054610100900460ff16156200083e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620009645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091620008e6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162000efd565b60408051601f1981840301815290829052620009029162000f47565b6000604051808303816000865af19150503d806000811462000941576040519150601f19603f3d011682016040523d82523d6000602084013e62000946565b606091505b509150508080602001905181019062000960919062000f65565b9150505b919050565b6060600c80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b806001600160a01b0316826001600160a01b03161462000b59577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162000a6b9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b61646460408201527f726573735d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a160408051818152600a818301527f2020202020204c6566740000000000000000000000000000000000000000000060608201526001600160a01b038416602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a160408051818152600a818301527f202020202052696768740000000000000000000000000000000000000000000060608201526001600160a01b038316602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a162000b5962000b5d565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000c765760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262000c11929160200162000efd565b60408051601f198184030181529082905262000c2d9162000f47565b6000604051808303816000865af19150503d806000811462000c6c576040519150601f19603f3d011682016040523d82523d6000602084013e62000c71565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b617f898062000f8a83390190565b6020808252825182820181905260009190848201906040850190845b8181101562000cf55783516001600160a01b03168352928401929184019160010162000cce565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562000dc357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562000dad5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062000d69565b50978a0197955050509187019160010162000d2b565b50919998505050505050505050565b60005b8381101562000def57818101518382015260200162000dd5565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101562000e6957603f198886030184528151805180875262000e49818989018a850162000dd2565b601f01601f19169590950186019450928501929085019060010162000e1f565b5092979650505050505050565b60006020828403121562000e8957600080fd5b81516001600160a01b038116811462000ea157600080fd5b9392505050565b600181811c9082168062000ebd57607f821691505b60208210810362000ef7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162000f3981600485016020870162000dd2565b919091016004019392505050565b6000825162000f5b81846020870162000dd2565b9190910192915050565b60006020828403121562000f7857600080fd5b8151801515811462000ea157600080fdfe6080604052604051620000129062001ce3565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790553480156200005d57600080fd5b506200008460008051602062007f4983398151915280546001600160a01b03191630179055565b60405164191718171960d91b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2620000dd60008051602062007f4983398151915280546001600160a01b03191630179055565b620000e76200010f565b60008051602062007f4983398151915280546001600160a01b03191630179055620020ea565b565b6200013a7f746273746f72650000000000000000005461626c6573000000000000000000006200033a565b15620001a257604080517f746273746f72650000000000000000005461626c6573000000000000000000006020820181905291015b60408051601f198184030181529082905263dfaaf9cf60e01b825262000199929160040162001d45565b60405180910390fd5b620001bc60008051602062007f698339815191526200033a565b15620001e5576040805160008051602062007f698339815191526020820181905291016200016f565b620002867f746273746f72650000000000000000005461626c6573000000000000000000006503001811010160cd1b632001005f60d81b671800c097d7d7f13160ba1b62000232620003b7565b60405160200162000244919062001dbe565b60408051601f198184030181529190526200025e6200042a565b60405160200162000270919062001dbe565b60408051601f19818403018152919052620005bf565b620002e760008051602062007f69833981519152630101000160d81b632001005f60d81b6208080360dd1b620002bb62000695565b604051602001620002cd919062001dbe565b60408051601f198184030181529190526200025e620006fd565b620003147f746273746f72650000000000000000005461626c657300000000000000000000600162000761565b6200033060008051602062007f69833981519152600162000761565b6200010d620007fc565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062000376576200037662001dd3565b60209081029190910101526000620003a760008051602062007f698339815191528383630101000160d81b6200084d565b905060f881901c5b949350505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620003ce579050509050604051806040016040528060078152602001661d18589b19525960ca1b815250816000815181106200041c576200041c62001dd3565b602002602001018190525090565b60408051600580825260c08201909252606091816020015b6060815260200190600190039081620004425790505090506040518060400160405280600b81526020016a199a595b1913185e5bdd5d60aa1b8152508160008151811062000494576200049462001dd3565b6020026020010181905250604051806040016040528060098152602001686b6579536368656d6160b81b81525081600181518110620004d757620004d762001dd3565b60200260200101819052506040518060400160405280600b81526020016a76616c7565536368656d6160a81b815250816002815181106200051c576200051c62001dd3565b602002602001018190525060405180604001604052806012815260200171616269456e636f6465644b65794e616d657360701b8152508160038151811062000568576200056862001dd3565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106200041c576200041c62001dd3565b604080516020810187905280820186905260608082018690528251808303909101815260809091019091526000620005f8848462000889565b90506000620006088585620008a6565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811062000645576200064562001dd3565b6020908102919091010152620006897f746273746f72650000000000000000005461626c657300000000000000000000828686866503001811010160cd1b620008d5565b50505050505050505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620006ac5790505090506040518060400160405280600a8152602001691c995cdbdd5c98d9525960b21b815250816000815181106200041c576200041c62001dd3565b604080516001808252818301909252606091816020015b6060815260200190600190039081620007145790505090506040518060400160405280600681526020016565786973747360d01b815250816000815181106200041c576200041c62001dd3565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106200079a576200079a62001dd3565b602002602001018181525050620007f760008051602062007f6983398151915260001b82600085604051602001620007d991151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b62000bb5565b505050565b6200010d7f746273746f726500000000000000000053746f7265486f6f6b73000000000000600160e01b632001005f60d81b60db60d91b6200083d620003b7565b6200084762000bd5565b62000c38565b6000620008806200085f868662000ce3565b60ff858116601b0360080285901c166200087a858762000d3b565b62000d78565b95945050505050565b60006200089f8351835162000dce60201b60201c565b9392505050565b60608282604051602001620008bd92919062001de9565b60405160208183030381529060405290505b92915050565b611bdd60f21b866001600160f01b0319160362000921578560008051602062007f298339815191528686868660405162000913949392919062001e5a565b60405180910390a262000bad565b60006200092e8762000de3565b905060005b8151811015620009f057600082828151811062000954576200095462001dd3565b60209081029190910101519050620009786001600160581b03198216600162000e7b565b15620009e6576040516315c19b2760e21b8152606082901c906357066c9c90620009b1908c908c908c908c908c908c9060040162001eaa565b600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b505050505b5060010162000933565b508660008051602062007f298339815191528787878760405162000a18949392919062001e5a565b60405180910390a2600062000a2e888862000ce3565b9050600060208701905062000a4e82600089518462000ea060201b60201c565b600062000a5b8562000f69565b111562000aed57600062000a708a8a62000fae565b878155905060208601915060008060005b62000a8c8862000f69565b8160ff16101562000ae85762000aa48d8d8362001006565b925062000ac08a8260ff166028026038011c64ffffffffff1690565b915062000ad1836000848862000ea0565b62000add828662001f1f565b945060010162000a81565b505050505b60005b83518110156200068957600084828151811062000b115762000b1162001dd3565b6020908102919091010151905062000b356001600160581b03198216600262000e7b565b1562000ba357604051635b28cdaf60e01b8152606082901c90635b28cdaf9062000b6e908e908e908e908e908e908e9060040162001eaa565b600060405180830381600087803b15801562000b8957600080fd5b505af115801562000b9e573d6000803e3d6000fd5b505050505b5060010162000af0565b505050505050565b62000bce858562000bc7848762000d3b565b8562001070565b5050505050565b604080516001808252818301909252606091816020015b606081526020019060019003908162000bec57905050905060405180604001604052806005815260200164686f6f6b7360d81b815250816000815181106200041c576200041c62001dd3565b600062000c4462001294565b9050306001600160a01b0382160362000c6d5762000c67878787878787620012c3565b62000cda565b604051630ba51f4960e01b81526001600160a01b03821690630ba51f499062000ca5908a908a908a908a908a908a9060040162001f35565b600060405180830381600087803b15801562000cc057600080fd5b505af115801562000cd5573d6000803e3d6000fd5b505050505b50505050505050565b6000828260405160200162000cfa92919062001f83565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101562000d705762000d6560ff601b83900360080287901c168362001f1f565b915060010162000d40565b509392505050565b60006020821062000da25760208204840193506020828162000d9e5762000d9e62001fc1565b0691505b508254600882021b60208290038084111562000d70576001850154600882021c82179150509392505050565b606081901b603883901b838301171792915050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062000e205762000e2062001dd3565b6020908102919091010152600062000e5a7f746273746f726500000000000000000053746f7265486f6f6b73000000000000838362001670565b9050620003af62000e758260008451620016b160201b60201c565b62001725565b600060ff82168262000e8d8560581c90565b1660ff1614905092915050565b60200190565b821562000f22576020831062000ecf5760208304840193506020838162000ecb5762000ecb62001fc1565b0692505b821562000f225760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841162000f1357505062000f63565b50600194909401939182900391015b5b6020821062000f465780518455600190930192601f199091019060200162000f23565b811562000f635783548151600019600885021c9182169119161784555b50505050565b6000600860018062000f7e6002602062001fd7565b62000f8a919062001fd7565b62000f96919062001fd7565b62000fa2919062001fed565b8260ff911c1692915050565b6000828260405160200162000fc592919062001f83565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600083836040516020016200101d92919062001f83565b604051602081830303815290604052805190602001208260f81b6001600160f81b0319167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b611bdd60f21b846001600160f01b03191603620010ba578360008051602062007f09833981519152848484604051620010ac9392919062002007565b60405180910390a262000f63565b6000620010c8858562000ce3565b90506000620010d78662000de3565b905060005b815181101562001195576000828281518110620010fd57620010fd62001dd3565b60209081029190910101519050620011216001600160581b03198216600462000e7b565b156200118b5760405163964f667d60e01b8152606082901c9063964f667d9062001156908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200117157600080fd5b505af115801562001186573d6000803e3d6000fd5b505050505b50600101620010dc565b508560008051602062007f09833981519152868686604051620011bb9392919062002007565b60405180910390a2620011d88265ffffffffffff86168562001737565b60005b815181101562000cda576000828281518110620011fc57620011fc62001dd3565b60209081029190910101519050620012206001600160581b03198216600862000e7b565b156200128a5760405163a8ba872160e01b8152606082901c9063a8ba87219062001255908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200127057600080fd5b505af115801562001285573d6000803e3d6000fd5b505050505b50600101620011db565b60008051602062007f49833981519152546000906001600160a01b031680620012be573391505090565b919050565b613a3160f11b866001600160f01b03191614801590620012f25750611bdd60f21b866001600160f01b03191614155b156200133e57613a3160f11b86876040516020016200131391815260200190565b60408051601f19818403018152908290526331b4668360e01b82526200019993929160040162002085565b620013498562001756565b620013568460016200190b565b620013638360006200190b565b60e084901c60e885901c0160ff16825114620013ac5760e084901c60e885901c0160ff1682516040516301ee597360e31b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff16815114620013f45760e085901c60e886901c0160ff168151604051621f7b1360ea1b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614620014555760e085901c60e886901c0160ff1660e084901c60e885901c0160ff16604051631e53a9b160e31b81526004810192909252602482015260440162000199565b620014608562001a96565b6200146b8462001a96565b14620014aa576200147c8562001a96565b620014878462001a96565b6040516365cc0adf60e01b81526004810192909252602482015260440162000199565b620014b58562000f69565b620014c08462000f69565b14620014ff57620014d18562000f69565b620014dc8462000f69565b60405163edea958760e01b81526004810192909252602482015260440162000199565b60005b6200150d8662001a96565b8110156200159d576200153f62001525858362001aaa565b60c5811115620015395762001539620020ad565b62001ace565b6008601b8390030287901c60ff161462001594576008601b8290030286901c60ff166200157162001525868462001aaa565b6040516309531f6d60e21b81526004810192909252602482015260440162000199565b60010162001502565b506000620015c9613a3160f11b620015b58960101b90565b60101c6001600160f01b0319919091161790565b90506000620015e2611bdd60f21b620015b58a60101b90565b9050620015ef826200033a565b8062001601575062001601816200033a565b156200161c5787886040516020016200016f91815260200190565b62001659888888888860405160200162001637919062001dbe565b6040516020818303038152906040528860405160200162000270919062001dbe565b6200166688600162000761565b5050505050505050565b6060620003af6200168385858562001006565b6000620016ab8562001696898962001b30565b9060ff166028026038011c64ffffffffff1690565b62001b46565b600081831180620016c25750835182115b15620016e9578383836040516323230fa360e01b81526004016200019993929190620020c3565b60208401620016f9848262001f1f565b9050600062001709858562001fd7565b6001600160801b031660809290921b9190911795945050505050565b606060006200089f8360158362001b6b565b620007f783838351620017508562000e9a60201b60201c565b62000ea0565b80620017755760405163500cf26d60e11b815260040160405180910390fd5b6000620017828262000f69565b90506005811115620017b2576040516333c9efb160e11b8152600481018290526005602482015260440162000199565b6000620017bf8362001a96565b90506000620017cf838362001f1f565b9050601c811115620017ff5760405163ecd893b960e01b815260048101829052601c602482015260440162000199565b6000805b83811015620018805760ff601b82900360080287901c16600081900362001841576040516353b2dd0560e01b81526004810183905260240162000199565b60208111156200186857604051637237f23760e01b81526004810183905260240162000199565b62001874818462001f1f565b92505060010162001803565b506200188c8562001be3565b8114620018c3576200189e8562001be3565b6040516375d4b26f60e11b815260048101919091526024810182905260440162000199565b825b601c81101562000bad5760ff601b82900360080287901c1680156200190157604051631d8d44db60e01b81526004810183905260240162000199565b50600101620018c5565b8015801562001918575081155b156200193b5760405163d498615960e01b81526000600482015260240162000199565b6000620019488362000f69565b90506005811115620019715760405163d498615960e01b81526004810182905260240162000199565b60006200197e8462001a96565b905060006200198e838362001f1f565b9050601c811115620019b75760405163d498615960e01b81526004810182905260240162000199565b6000805b8381101562001a12576000620019d662001525898462001aaa565b905080600003620019fa576040516307a25a1160e51b815260040160405180910390fd5b62001a06818462001f1f565b925050600101620019bb565b5062001a1e8662001be3565b811462001a4d5762001a308662001be3565b60405163d498615960e01b81526004016200019991815260200190565b825b8281101562000cda57600062001a6a62001525898462001aaa565b9050801562001a8c576040516307a25a1160e51b815260040160405180910390fd5b5060010162001a4f565b60006008600162000f8a6002602062001fd7565b6000601b8290036008028360ff911c1660c58111156200089f576200089f620020ad565b6000808260c581111562001ae65762001ae6620020ad565b60ff169050606181101562001b0157601f1660010192915050565b60618360c581111562001b185762001b18620020ad565b0362001b275750601492915050565b50600092915050565b60006200089f62001b42848462000fae565b5490565b60405160208101601f19603f848401011660405282825262000d708585858462001c0a565b6060600062001b7a8560801c90565b90506001600160801b038516600085828162001b9a5762001b9a62001fc1565b04905060405193506020840160208202810160405281855260005b8281101562001bd7578451871c82529387019360209091019060010162001bb5565b50505050509392505050565b6000600862001bf56002602062001fd7565b62001c01919062001fed565b9190911c919050565b821562001c9b576020831062001c395760208304840193506020838162001c355762001c3562001fc1565b0692505b821562001c9b57602083900360008184101562001c5f5750600019600884021c62001c69565b50600019600882021c5b8554600886021b81845116821982161784525081841162001c8c57505062000f63565b50600194909401939182900391015b5b6020821062001cbf5783548152600190930192601f199091019060200162001c9c565b811562000f63576000600019600884021c8251865482191691161782525050505050565b61180e80620066fb83390190565b60005b8381101562001d0e57818101518382015260200162001cf4565b50506000910152565b6000815180845262001d3181602086016020860162001cf1565b601f01601f19169290920160200192915050565b828152604060208201526000620003af604083018462001d17565b60008282518085526020808601955060208260051b8401016020860160005b8481101562001db157601f1986840301895262001d9e83835162001d17565b9884019892509083019060010162001d7f565b5090979650505050505050565b6020815260006200089f602083018462001d60565b634e487b7160e01b600052603260045260246000fd5b6000835162001dfd81846020880162001cf1565b83519083019062001e1381836020880162001cf1565b01949350505050565b60008151808452602080850194506020840160005b8381101562001e4f5781518752958201959082019060010162001e31565b509495945050505050565b60808152600062001e6f608083018762001e1c565b828103602084015262001e83818762001d17565b9050846040840152828103606084015262001e9f818562001d17565b979650505050505050565b86815260c06020820152600062001ec560c083018862001e1c565b828103604084015262001ed9818862001d17565b9050856060840152828103608084015262001ef5818662001d17565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008cf57620008cf62001f09565b86815285602082015284604082015283606082015260c06080820152600062001f6260c083018562001d60565b82810360a084015262001f76818562001d60565b9998505050505050505050565b8281526000602080830184516020860160005b8281101562001fb45781518452928401929084019060010162001f96565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b81810381811115620008cf57620008cf62001f09565b8082028115828204841417620008cf57620008cf62001f09565b6060815260006200201c606083018662001e1c565b65ffffffffffff8516602084015282810360408401526200203e818562001d17565b9695505050505050565b84815260806020820152600062002063608083018662001e1c565b65ffffffffffff85166040840152828103606084015262001e9f818562001d17565b61ffff60f01b8416815282602082015260606040820152600062000880606083018462001d17565b634e487b7160e01b600052602160045260246000fd5b606081526000620020d8606083018662001d17565b60208301949094525060400152919050565b61460180620020fa6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063505a181d11610104578063c1122229116100a2578063d9c03a0411610071578063d9c03a0414610406578063dbbf0e2114610419578063e228a4a31461042c578063ef6ea8621461043f57600080fd5b8063c1122229146103a7578063cc49db7e146103cd578063d03edb8c146103e0578063d4285dc2146103f357600080fd5b80639f1fcf0a116100de5780639f1fcf0a1461035b578063a53417ed1461036e578063b047c1eb14610381578063c0a2895a1461039457600080fd5b8063505a181d14610322578063530f4b60146103355780638c364d591461034857600080fd5b80631e78897711610171578063390baae01161014b578063390baae0146102b95780633a77c2c2146102cc578063419b58fd146102ed5780634dc77d971461030f57600080fd5b80631e78897714610280578063298314fb146102935780633708196e146102a657600080fd5b80630ca39769116101ad5780630ca3976914610225578063102f59a914610252578063114a72661461025a578063150f32621461026d57600080fd5b806305242d2f146101d457806305609129146101fd5780630ba51f4914610212575b600080fd5b6101e76101e23660046137b8565b610452565b6040516101f4919061386e565b60405180910390f35b61021061020b3660046138a6565b61049f565b005b6102106102203660046138d6565b6104ad565b61022d6104d7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61022d610626565b6102106102683660046139ae565b6106e6565b61021061027b3660046139ae565b610761565b6101e761028e366004613a3b565b6107d4565b6102106102a1366004613a99565b61081e565b6102106102b4366004613b32565b6108c5565b6102106102c7366004613b32565b610943565b6102df6102da366004613bc8565b6109b8565b6040519081526020016101f4565b6103006102fb366004613be1565b6109c9565b6040516101f493929190613c34565b6101e761031d366004613d39565b610a1e565b610210610330366004613da2565b610a2d565b610210610343366004613de9565b610a37565b6102df6103563660046137b8565b610a47565b6102df610369366004613e27565b610a8a565b6102df61037c366004613e86565b610aa0565b61021061038f366004613ed4565b610ab7565b6102106103a2366004613f63565b610b2a565b7f322e302e320000000000000000000000000000000000000000000000000000006102df565b6103006103db366004613ff0565b610ba0565b6101e76103ee366004613a3b565b610bf2565b6102df610401366004613bc8565b610c33565b6102106104143660046137b8565b610c3e565b6102df610427366004613e86565b610c86565b6102df61043a366004613bc8565b610c93565b61021061044d3660046139ae565b610c9e565b606061049586868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250879150610d119050565b9695505050505050565b6104a98282610d56565b5050565b6104cd888888886104be888a61403c565b6104c8878961403c565b610d81565b5050505050505050565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff9091169161055a9190614107565b600060405180830381855af49150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b606091505b50915091508161060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f64656c656761746563616c6c206661696c65640000000000000000000000000060448201526064015b60405180910390fd5b8080602001905181019061061f9190614123565b9250505090565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff909116916106a99190614107565b6000604051808303816000865af19150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061122a92505050565b505050505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061124592505050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611280915050565b95945050505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506112ba92505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506112d0915050565b50505050505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611313915050565b60006109c382611328565b92915050565b606060006060610a0e878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506113ad915050565b9250925092509450945094915050565b606061049586868686866114b5565b6104a982826115b8565b610a428383836115cb565b505050565b6000610495868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116b99050565b6000610815858585856116e6565b949350505050565b6000610aad84848461172e565b90505b9392505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061174492505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506119c492505050565b606060006060610be3868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119dc92505050565b92509250925093509350939050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611a02915050565b60006109c382611a18565b610c7f85858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250869150611a4b9050565b5050505050565b6000610aad848484611aa4565b60006109c382611ab4565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611ada92505050565b6060610d1c82611b15565b8360ff161015610d3957610d3285858585611b47565b9050610a98565b610d328585610d4785611b15565b610d519087614156565b611280565b6104a97f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611b74565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610ddf5750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610e4057613a3160f11b8687604051602001610dfe91815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261060293929160040161416f565b610e4985611cb5565b610e54846001611efc565b610e5f836000611efc565b60e084901c60e885901c0160ff16825114610ebf5760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff16815114610f1f5760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610f975760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b610fa085611b15565b610fa984611b15565b14610ffb57610fb785611b15565b610fc084611b15565b6040517f65cc0adf00000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b61100485612098565b61100d84612098565b1461105f5761101b85612098565b61102484612098565b6040517fedea958700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60005b61106b86611b15565b8110156111065761109561107f85836120b5565b60c5811115611090576110906141b0565b6120d6565b6008601b8390030287901c60ff16146110fe576008601b8290030286901c60ff166110c361107f86846120b5565b6040517f254c7db400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600101611062565b506000611148613a3160f11b61111c8960101b90565b60101c7fffff000000000000000000000000000000000000000000000000000000000000919091161790565b9050600061115f611bdd60f21b61111c8a60101b90565b905061116a82612130565b80611179575061117981612130565b156111d357878860405160200161119291815260200190565b60408051601f19818403018152908290527fdfaaf9cf00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b61121f88888888886040516020016111eb91906141df565b6040516020818303038152906040528860405160200161120b91906141df565b6040516020818303038152906040526121cd565b6104cd8860016122b0565b61123f8484848461123a89611328565b6112d0565b50505050565b60006112518585612369565b9050600061126e828560ff166028026038011c64ffffffffff1690565b9050610759868686846000888861237c565b6060610aad611290858585612758565b60006112b5856112a08989612369565b9060ff166028026038011c64ffffffffff1690565b6127d8565b610c7f85858585856112cb8b611328565b612803565b6112d981611b15565b8360ff1610156112f5576112f08585858585611313565b610c7f565b610c7f858561130384611b15565b61130d9087614156565b85611ada565b610c7f85856113228487612b21565b85611744565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161137757507e60030220202000000000000000000000000000000000000000000000000000919050565b6109c36113a47f746273746f72650000000000000000005461626c65730000000000000000000084612b52565b60206000612bab565b60606000606060006113be85612bfc565b90506113cb878783612c1f565b935060006113d886612098565b905080156114aa576113ea8888612369565b935066ffffffffffffff841667ffffffffffffffff81111561140e5761140e613c5f565b6040519080825280601f01601f191660200182016040528015611438576020820181803683370190505b5092506020830160005b828160ff1610156114a757600061145a8b8b84612758565b90506000611477888460ff166028026038011c64ffffffffff1690565b90506114868260008387612c58565b6114908185614261565b93505050808061149f90614274565b915050611442565b50505b505093509350939050565b6060818311156114fb576040517fa8c547820000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610602565b60006115078787612369565b90506000611524828760ff166028026038011c64ffffffffff1690565b9050808510158061153457508084115b1561158f5780818610156115525761154d600186614293565b611554565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600061159c898989612758565b90506115ab81878888036127d8565b9998505050505050505050565b6104a982826115c685611328565b612d24565b613a3160f11b837fffff000000000000000000000000000000000000000000000000000000000000161461161357613a3160f11b8384604051602001610dfe91815260200190565b61161c83612130565b61167557828360405160200161163491815260200190565b60408051601f19818403018152908290527f41e713ad00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b610a42837fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166bff0000000000000000000000605885901b1617613008565b60006108156116c886866130c1565b60ff858116601b0360080285901c166116e18587612b21565b612bab565b6000806116f283611b15565b90508060ff168460ff16101561171a5760ff848116601b0360080284901c165b915050610a98565b61171286866117298488614156565b611aa4565b6000610aad84848461173f88611328565b6116e6565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036117b357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516117a6939291906142e2565b60405180910390a261123f565b60006117bf85856130c1565b905060006117cc866130d6565b905060005b81518110156118a15760008282815181106117ee576117ee614315565b6020026020010151905061181a6004826affffffffffffffffffffff191661315f90919063ffffffff16565b15611898576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611865908b908b908b908b9060040161432b565b600060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050505b506001016117d1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516118d6939291906142e2565b60405180910390a26118f1828565ffffffffffff168561317d565b60005b815181101561093a57600082828151811061191157611911614315565b6020026020010151905061193d6008826affffffffffffffffffffff191661315f90919063ffffffff16565b156119bb576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611988908b908b908b908b9060040161432b565b600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050505b506001016118f4565b6107598686868686866119d78d8d612369565b61237c565b6060600060606119f585856119f088611328565b6113ad565b9250925092509250925092565b6060610aad848484611a1388611328565b610d11565b6000611a2382613193565b9050611a2e82612130565b611a4657818260405160200161163491815260200190565b919050565b6000611a578585612369565b90506000611a74828560ff166028026038011c64ffffffffff1690565b9050610759868686611a8d8764ffffffffff8716614293565b60408051600081526020810190915288908861237c565b6000610aad826112a08686612369565b6000611abf82613225565b905080611a4657818260405160200161163491815260200190565b6000611ae68585612369565b90506000611b03828560ff166028026038011c64ffffffffff1690565b9050610759868686600085888861237c565b600060086001611b2760026020614293565b611b319190614293565b611b3b919061436f565b8260ff911c1692915050565b6060610815611b5686866130c1565b611b608486612b21565b60ff868116601b0360080286901c166127d8565b6000611b8084846132b7565b90506000815167ffffffffffffffff811115611b9e57611b9e613c5f565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b5090506000805b8351811015611ca6578473ffffffffffffffffffffffffffffffffffffffff16611c1f858381518110611c0357611c03614315565b60200260200101516affffffffffffffffffffff191660601c90565b73ffffffffffffffffffffffffffffffffffffffff1614611c9e57838181518110611c4c57611c4c614315565b6020026020010151838381518110611c6657611c66614315565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611bce565b5080825261075986868461331d565b80611cec576040517fa019e4da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf782612098565b90506005811115611d3e576040517f6793df620000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610602565b6000611d4983611b15565b90506000611d578383614261565b9050601c811115611d9e576040517fecd893b900000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610602565b6000805b83811015611e495760ff601b82900360080287901c166000819003611df6576040517f53b2dd0500000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b6020811115611e34576040517f7237f23700000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b611e3e8184614261565b925050600101611da2565b50611e5385612bfc565b8114611e9f57611e6285612bfc565b6040517feba964de000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610602565b825b601c8110156107595760ff601b82900360080287901c168015611ef3576040517f1d8d44db00000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b50600101611ea1565b80158015611f08575081155b15611f295760405163d498615960e01b815260006004820152602401610602565b6000611f3483612098565b90506005811115611f5b5760405163d498615960e01b815260048101829052602401610602565b6000611f6684611b15565b90506000611f748383614261565b9050601c811115611f9b5760405163d498615960e01b815260048101829052602401610602565b6000805b83811015612007576000611fb661107f89846120b5565b905080600003611ff2576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ffc8184614261565b925050600101611f9f565b5061201186612bfc565b811461203c5761202086612bfc565b60405163d498615960e01b815260040161060291815260200190565b825b8281101561093a57600061205561107f89846120b5565b9050801561208f576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161203e565b600060086001806120ab60026020614293565b611b279190614293565b6000601b8290036008028360ff911c1660c5811115610ab057610ab06141b0565b6000808260c58111156120eb576120eb6141b0565b60ff169050606181101561210557601f1660010192915050565b60618360c5811115612119576121196141b0565b036121275750601492915050565b50600092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061216957612169614315565b602090810291909101015260006121c17f746273746f72650000000000000000005265736f75726365496473000000000083837e010100010000000000000000000000000000000000000000000000000000006116b9565b9050610a988160f81c90565b6040805160208101879052808201869052606080820186905282518083039091018152608090910190915260006122048484613374565b905060006122128585613391565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811061224c5761224c614315565b60209081029190910101526122a47f746273746f72650000000000000000005461626c657300000000000000000000828686867e60030220202000000000000000000000000000000000000000000000000000612803565b50505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106122e6576122e6614315565b602002602001018181525050610a427f746273746f72650000000000000000005265736f75726365496473000000000060001b8260008560405160200161233491151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611313565b6000610ab061237884846133bd565b5490565b613a3160f11b877fffff00000000000000000000000000000000000000000000000000000000000016146123c457613a3160f11b8788604051602001610dfe91815260200190565b60006123df828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836123f89190614293565b6124029190614261565b905080821415801561242457508161241a8688614386565b64ffffffffff1614155b15612474576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610602565b818664ffffffffff1611156124c5576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610602565b60006124d2848984613413565b905060006124df8b6130d6565b905060005b81518110156125b757600082828151811061250157612501614315565b6020026020010151905061252d6010826affffffffffffffffffffff191661315f90919063ffffffff16565b156125ae57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161257b97969594939291906143ab565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b505050505b506001016124e4565b5064ffffffffff881660005b8a60ff168160ff1610156125f6576125ea878260ff166028026038011c64ffffffffff1690565b909101906001016125c3565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161263196959493929190614409565b60405180910390a25082841461265257600061264d8c8c6133bd565b839055505b600061265f8c8c8c612758565b9050612673818a64ffffffffff168961317d565b5060005b815181101561274a57600082828151811061269457612694614315565b602002602001015190506126c06020826affffffffffffffffffffff191661315f90919063ffffffff16565b1561274157606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161270e97969594939291906143ab565b600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b50600101612677565b505050505050505050505050565b6000838360405160200161276d929190614458565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f84840101166040528282526127fb85858584612c58565b509392505050565b611bdd60f21b867fffff000000000000000000000000000000000000000000000000000000000000160361287457857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516128679493929190614494565b60405180910390a2610759565b600061287f876130d6565b905060005b81518110156129585760008282815181106128a1576128a1614315565b602002602001015190506128cd6001826affffffffffffffffffffff191661315f90919063ffffffff16565b1561294f576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061291c908c908c908c908c908c908c906004016144d3565b600060405180830381600087803b15801561293657600080fd5b505af115801561294a573d6000803e3d6000fd5b505050505b50600101612884565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161298f9493929190614494565b60405180910390a260006129a388886130c1565b905060006020870190506129bb8260008951846134e1565b60006129c685612098565b1115612a4a5760006129d88a8a6133bd565b878155905060208601915060008060005b6129f288612098565b8160ff161015612a4557612a078d8d83612758565b9250612a228a8260ff166028026038011c64ffffffffff1690565b9150612a3183600084886134e1565b612a3b8286614261565b94506001016129e9565b505050505b60005b83518110156122a4576000848281518110612a6a57612a6a614315565b60200260200101519050612a966002826affffffffffffffffffffff191661315f90919063ffffffff16565b15612b18576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612ae5908e908e908e908e908e908e906004016144d3565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b505050505b50600101612a4d565b600080805b8360ff168110156127fb57612b4860ff601b83900360080287901c1683614261565b9150600101612b26565b60408051602081018490529081018290526000906060015b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612bd157602082048401935060208281612bcd57612bcd61452c565b0691505b508254600882021b6020829003808411156127fb576001850154600882021c82179150509392505050565b60006008612c0c60026020614293565b612c16919061436f565b9190911c919050565b606081600003612c3e5750604080516020810190915260008152610ab0565b6000612c4a85856130c1565b9050610815816000856127d8565b8215612cdf5760208310612c8257602083048401935060208381612c7e57612c7e61452c565b0692505b8215612cdf576020839003600081841015612ca55750600019600884021c612caf565b50600019600882021c5b8554600886021b818451168219821617845250818411612cd057505061123f565b50600194909401939182900391015b5b60208210612d015783548152600190930192601f1990910190602001612ce0565b811561123f576000600019600884021c8251865482191691161782525050505050565b611bdd60f21b837fffff0000000000000000000000000000000000000000000000000000000000001603612d8f57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612d829190614542565b60405180910390a2505050565b6000612d9a846130d6565b905060005b8151811015612e6d576000828281518110612dbc57612dbc614315565b60200260200101519050612de86040826affffffffffffffffffffff191661315f90919063ffffffff16565b15612e64576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612e3190899089908990600401614555565b600060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050505b50600101612d9f565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612e9e9190614542565b60405180910390a26000612eb285856130c1565b9050612f0b816000612ec386612bfc565b67ffffffffffffffff811115612edb57612edb613c5f565b6040519080825280601f01601f191660200182016040528015612f05576020820181803683370190505b5061317d565b6000612f1684612098565b1115612f37576000612f2886866133bd565b9050612f358160206135a0565b505b60005b8251811015610759576000838281518110612f5757612f57614315565b60200260200101519050612f836080826affffffffffffffffffffff191661315f90919063ffffffff16565b15612fff576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90612fcc908a908a908a90600401614555565b600060405180830381600087803b158015612fe657600080fd5b505af1158015612ffa573d6000803e3d6000fd5b505050505b50600101612f3a565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061303e5761303e614315565b602002602001018181525050610a427f746273746f726500000000000000000053746f7265486f6f6b7300000000000060001b826000856040516020016130ad91907fffffffffffffffffffffffffffffffffffffffffff000000000000000000000091909116815260150190565b604051602081830303815290604052611245565b60008282604051602001612b6a929190614458565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061311057613110614315565b602090810291909101015260006131487f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611280565b9050610a9861315a82600084516135dd565b61366b565b60008160ff16826131708560581c90565b1660ff1614905092915050565b610a428383835161318e8560200190565b6134e1565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106131cc576131cc614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360017e600302202020000000000000000000000000000000000000000000000000006116b9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061325e5761325e614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360027e600302202020000000000000000000000000000000000000000000000000006116b9565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132f1576132f1614315565b602002602001018181525050600061330b85836000611280565b905061081561315a82600084516135dd565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061335357613353614315565b60200260200101818152505061123f8482600061336f8661367c565b611ada565b8151815160009181810160389190911b1760609190911b17610ab0565b606082826040516020016133a692919061457e565b604051602081830303815290604052905092915050565b600082826040516020016133d2929190614458565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115613457576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106134895780850382019150613491565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561355b576020831061350b576020830484019350602083816135075761350761452c565b0692505b821561355b5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161354c57505061123f565b50600194909401939182900391015b5b6020821061357d5780518455600190930192601f199091019060200161355c565b811561123f576000600019600884021c8554835182191691161785555050505050565b600060206135af83601f614261565b6135b991906145ad565b6135c39084614261565b90505b80831015610a4257600083556001830192506135c6565b6000818311806135ed5750835182115b1561362a578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610602939291906145cf565b602084016136388482614261565b905060006136468585614293565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610ab0836015600061368c565b606081610ab08160156000613707565b6060600061369a8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816136c0576136c061452c565b04905060405193506020840160208202810160405281855260005b828110156136fb578451871c8252938701936020909101906001016136db565b50505050509392505050565b82516060906000613718858361436f565b9050604051925060208301601f19603f83860101166040528184526000602088015b848210156136fb578051871b8352918701916001919091019060200161373a565b60008083601f84011261376d57600080fd5b50813567ffffffffffffffff81111561378557600080fd5b6020830191508360208260051b85010111156137a057600080fd5b9250929050565b803560ff81168114611a4657600080fd5b6000806000806000608086880312156137d057600080fd5b85359450602086013567ffffffffffffffff8111156137ee57600080fd5b6137fa8882890161375b565b909550935061380d9050604087016137a7565b949793965091946060013592915050565b60005b83811015613839578181015183820152602001613821565b50506000910152565b6000815180845261385a81602086016020860161381e565b601f01601f19169290920160200192915050565b602081526000610ab06020830184613842565b73ffffffffffffffffffffffffffffffffffffffff811681146138a357600080fd5b50565b600080604083850312156138b957600080fd5b8235915060208301356138cb81613881565b809150509250929050565b60008060008060008060008060c0898b0312156138f257600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff8082111561392657600080fd5b6139328c838d0161375b565b909650945060a08b013591508082111561394b57600080fd5b506139588b828c0161375b565b999c989b5096995094979396929594505050565b60008083601f84011261397e57600080fd5b50813567ffffffffffffffff81111561399657600080fd5b6020830191508360208285010111156137a057600080fd5b600080600080600080608087890312156139c757600080fd5b86359550602087013567ffffffffffffffff808211156139e657600080fd5b6139f28a838b0161375b565b9097509550859150613a0660408a016137a7565b94506060890135915080821115613a1c57600080fd5b50613a2989828a0161396c565b979a9699509497509295939492505050565b60008060008060608587031215613a5157600080fd5b84359350602085013567ffffffffffffffff811115613a6f57600080fd5b613a7b8782880161375b565b9094509250613a8e9050604086016137a7565b905092959194509250565b60008060008060008060008060a0898b031215613ab557600080fd5b88359750602089013567ffffffffffffffff80821115613ad457600080fd5b613ae08c838d0161375b565b909950975060408b0135915080821115613af957600080fd5b613b058c838d0161396c565b909750955060608b0135945060808b0135915080821115613b2557600080fd5b506139588b828c0161396c565b600080600080600080600060a0888a031215613b4d57600080fd5b87359650602088013567ffffffffffffffff80821115613b6c57600080fd5b613b788b838c0161375b565b9098509650869150613b8c60408b016137a7565b955060608a0135915080821115613ba257600080fd5b50613baf8a828b0161396c565b989b979a50959894979596608090950135949350505050565b600060208284031215613bda57600080fd5b5035919050565b60008060008060608587031215613bf757600080fd5b84359350602085013567ffffffffffffffff811115613c1557600080fd5b613c218782880161375b565b9598909750949560400135949350505050565b606081526000613c476060830186613842565b84602084015282810360408401526104958185613842565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c9e57613c9e613c5f565b604052919050565b600067ffffffffffffffff821115613cc057613cc0613c5f565b5060051b60200190565b600082601f830112613cdb57600080fd5b81356020613cf0613ceb83613ca6565b613c75565b8083825260208201915060208460051b870101935086841115613d1257600080fd5b602086015b84811015613d2e5780358352918301918301613d17565b509695505050505050565b600080600080600060a08688031215613d5157600080fd5b85359450602086013567ffffffffffffffff811115613d6f57600080fd5b613d7b88828901613cca565b945050613d8a604087016137a7565b94979396509394606081013594506080013592915050565b60008060408385031215613db557600080fd5b82359150602083013567ffffffffffffffff811115613dd357600080fd5b613ddf85828601613cca565b9150509250929050565b600080600060608486031215613dfe57600080fd5b833592506020840135613e1081613881565b9150613e1e604085016137a7565b90509250925092565b60008060008060808587031215613e3d57600080fd5b84359350602085013567ffffffffffffffff811115613e5b57600080fd5b613e6787828801613cca565b935050613e76604086016137a7565b9396929550929360600135925050565b600080600060608486031215613e9b57600080fd5b83359250602084013567ffffffffffffffff811115613eb957600080fd5b613ec586828701613cca565b925050613e1e604085016137a7565b60008060008060008060808789031215613eed57600080fd5b86359550602087013567ffffffffffffffff80821115613f0c57600080fd5b613f188a838b0161375b565b90975095506040890135915065ffffffffffff82168214613f3857600080fd5b90935060608801359080821115613a1c57600080fd5b803564ffffffffff81168114611a4657600080fd5b60008060008060008060008060c0898b031215613f7f57600080fd5b88359750602089013567ffffffffffffffff80821115613f9e57600080fd5b613faa8c838d0161375b565b9099509750879150613fbe60408c016137a7565b9650613fcc60608c01613f4e565b9550613fda60808c01613f4e565b945060a08b0135915080821115613b2557600080fd5b60008060006040848603121561400557600080fd5b83359250602084013567ffffffffffffffff81111561402357600080fd5b61402f8682870161375b565b9497909650939450505050565b600061404a613ceb84613ca6565b80848252602080830192508560051b85013681111561406857600080fd5b855b818110156140fb57803567ffffffffffffffff8082111561408b5760008081fd5b90880190601f36818401126140a05760008081fd5b8235828111156140b2576140b2613c5f565b6140c387601f198484011601613c75565b925080835236878286010111156140dc57600091508182fd5b808785018885013760009083018701525086525093820193820161406a565b50919695505050505050565b6000825161411981846020870161381e565b9190910192915050565b60006020828403121561413557600080fd5b8151610ab081613881565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156109c3576109c3614140565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108156060830184613842565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610aad6040830184613842565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614254577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614242858351613842565b94509285019290850190600101614208565b5092979650505050505050565b808201808211156109c3576109c3614140565b600060ff821660ff810361428a5761428a614140565b60010192915050565b818103818111156109c3576109c3614140565b60008151808452602080850194506020840160005b838110156142d7578151875295820195908201906001016142bb565b509495945050505050565b6060815260006142f560608301866142a6565b65ffffffffffff8516602084015282810360408401526104958185613842565b634e487b7160e01b600052603260045260246000fd5b84815260806020820152600061434460808301866142a6565b65ffffffffffff8516604084015282810360608401526143648185613842565b979650505050505050565b80820281158282048414176109c3576109c3614140565b64ffffffffff8181168382160190808211156143a4576143a4614140565b5092915050565b87815260e0602082015260006143c460e08301896142a6565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526143fb8185613842565b9a9950505050505050505050565b60c08152600061441c60c08301896142a6565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526115ab8185613842565b8281526000602080830184516020860160005b828110156144875781518452928401929084019060010161446b565b5091979650505050505050565b6080815260006144a760808301876142a6565b82810360208401526144b98187613842565b905084604084015282810360608401526143648185613842565b86815260c0602082015260006144ec60c08301886142a6565b82810360408401526144fe8188613842565b905085606084015282810360808401526145188186613842565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601260045260246000fd5b602081526000610ab060208301846142a6565b83815260606020820152600061456e60608301856142a6565b9050826040830152949350505050565b6000835161459081846020880161381e565b8351908301906145a481836020880161381e565b01949350505050565b6000826145ca57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006145e26060830186613842565b6020830194909452506040015291905056fea164736f6c6343000818000a608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b506117cd806100416000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610163578063e20c9f711461017b578063fa7626d41461018357600080fd5b8063916a17c614610126578063b07ed3a91461012e578063b5508aa91461015b57600080fd5b80633f7286f4116100b25780633f7286f4146100f457806366d9a9a0146100fc57806385226c811461011157600080fd5b80631ed7831c146100ce5780633e5e3c23146100ec575b600080fd5b6100d6610190565b6040516100e39190610fbc565b60405180910390f35b6100d66101ff565b6100d661026c565b6101046102d9565b6040516100e39190611016565b6101196103ea565b6040516100e39190611140565b6101046104ba565b6101366105c2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e3565b610119610617565b61016b6106e7565b60405190151581526020016100e3565b6100d6610829565b60005461016b9060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156101f557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103c957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103765790505b505050505081525050815260200190600101906102fd565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461042d906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610459906111a4565b80156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50505050508152602001906001019061040e565b60606013805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105aa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105575790505b505050505081525050815260200190600101906104de565b60006106026040518060400160405280601181526020017f6765742053746f72652061646472657373000000000000000000000000000000815250610896565b61060a610b66565b9050610614610bad565b90565b60606010805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461065a906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906111a4565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b50505050508152602001906001019061063b565b60008054610100900460ff16156107075750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108245760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c65640000000000000000000000000000000000000000000000000000828401528251808303840181526060830190935260009290916107ac917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016111f7565b60408051601f19818403018152908290526107c69161123f565b6000604051808303816000865af19150503d8060008114610803576040519150601f19603f3d011682016040523d82523d6000602084013e610808565b606091505b5091505080806020019051810190610820919061125b565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061125b565b6109625750565b601b805461096f906111a4565b9050600014601b6040516020016109869190611315565b604051602081830303815290604052906109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b60405180910390fd5b50601d816040516109e7919061123f565b90815260200160405180910390205460001481604051602001610a0a91906113ad565b60405160208183030381529060405290610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b50601b610a5e8282611498565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610824573391505090565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c78919061125b565b610c7f5750565b600060a082601c54610c919190611587565b610c9b9190611587565b610ca69060016115a0565b905060008111610d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e277420757365206761730000000000000060448201526064016109cd565b80601d601b604051610d2491906115b3565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e35001610d71601b826115bf565b50610e05601b8054610d82906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906111a4565b8015610dfb5780601f10610dd057610100808354040283529160200191610dfb565b820191906000526020600020905b815481529060010190602001808311610dde57829003601f168201915b5050505050610e26565b604080516020810190915260008152601b90610e219082611498565b505050565b610f2c7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae601d84604051610e78919061123f565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252610ec19160040190815260200190565b600060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f069190810190611692565b82604051602001610f1892919061173f565b604051602081830303815290604052610f2f565b50565b610f2c81604051602401610f43919061139a565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6020808252825182820181905260009190848201906040850190845b8181101561100a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610fd8565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156110e157898403603f190186528251805173ffffffffffffffffffffffffffffffffffffffff168552880151888501889052805188860181905290890190839060608701905b808310156110cc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061108a565b50978a01979550505091870191600101611040565b50919998505050505050505050565b60005b8381101561110b5781810151838201526020016110f3565b50506000910152565b6000815180845261112c8160208601602086016110f0565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561119757603f19888603018452611185858351611114565b94509285019290850190600101611169565b5092979650505050505050565b600181811c908216806111b857607f821691505b6020821081036111f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff0000000000000000000000000000000000000000000000000000000083168152600082516112318160048501602087016110f0565b919091016004019392505050565b600082516112518184602087016110f0565b9190910192915050565b60006020828403121561126d57600080fd5b8151801515811461127d57600080fd5b9392505050565b60008154611291816111a4565b600182811680156112a957600181146112dc5761130b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061130b565b8560005260208060002060005b858110156113025781548a8201529084019082016112e9565b50505082870194505b5050505092915050565b7f676173207265706f72742022000000000000000000000000000000000000000081526000611347600c830184611284565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600061127d6020830184611114565b7f676173207265706f7274202200000000000000000000000000000000000000008152600082516113e581600c8501602087016110f0565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610e21576000816000526020600020601f850160051c810160208610156114715750805b601f850160051c820191505b818110156114905782815560010161147d565b505050505050565b815167ffffffffffffffff8111156114b2576114b2611419565b6114c6816114c084546111a4565b84611448565b602080601f8311600181146114fb57600084156114e35750858301515b600019600386901b1c1916600185901b178555611490565b600085815260208120601f198616915b8281101561152a5788860151825594840194600190910190840161150b565b50858210156115485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561159a5761159a611558565b92915050565b8082018082111561159a5761159a611558565b600061127d8284611284565b8181036115ca575050565b6115d482546111a4565b67ffffffffffffffff8111156115ec576115ec611419565b6115fa816114c084546111a4565b6000601f82116001811461162e57600083156116165750848201545b600019600385901b1c1916600184901b178455610b5f565b600085815260209020601f19841690600086815260209020845b838110156116685782860154825560019586019590910190602001611648565b50858310156115485793015460001960f8600387901b161c19169092555050600190811b01905550565b6000602082840312156116a457600080fd5b815167ffffffffffffffff808211156116bc57600080fd5b818401915084601f8301126116d057600080fd5b8151818111156116e2576116e2611419565b604051601f8201601f19908116603f0116810190838211818310171561170a5761170a611419565b8160405282815287602084870101111561172357600080fd5b6117348360208301602088016110f0565b979650505050505050565b7f474153205245504f52543a20000000000000000000000000000000000000000081526000835161177781600c8501602088016110f0565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516117b481600d8401602088016110f0565b01600d0194935050505056fea164736f6c6343000818000a8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175746273746f72650000000000000000005265736f757263654964730000000000a164736f6c6343000818000a","sourceMap":"1308:491:87:-:0;;;1572:26:2;;;1594:4;-1:-1:-1;;1572:26:2;;;;;;;;3126:44:5;;;;;;;;;;;228:9:0;186:51;;1308:491:87;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620000f15760003560e01c806385226c811162000097578063b5508aa9116200006e578063b5508aa91462000188578063ba414fa61462000192578063e20c9f7114620001ad578063fa7626d414620001b757600080fd5b806385226c81146200015b578063916a17c61462000174578063a1382b5a146200017e57600080fd5b80633e5e3c2311620000cc5780633e5e3c23146200012e5780633f7286f4146200013857806366d9a9a0146200014257600080fd5b80630a9254e414620000f65780631ed7831c1462000102578063227d77581462000124575b600080fd5b62000100620001c5565b005b6200010c6200022b565b6040516200011b919062000cb2565b60405180910390f35b620001006200028f565b6200010c62000339565b6200010c6200039b565b6200014c620003fd565b6040516200011b919062000d01565b6200016562000505565b6040516200011b919062000df8565b6200014c620005df565b62000100620006de565b6200016562000743565b6200019c6200081d565b60405190151581526020016200011b565b6200010c62000969565b6000546200019c9060ff1681565b604051620001d39062000ca4565b604051809103906000f080158015620001f0573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200028557602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000266575b5050505050905090565b601f54604080517f102f59a900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163102f59a9916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000e76565b601f54909150620003369082906001600160a01b0316620009cb565b50565b6060600f80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620004e357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200048f5790505b5050505050815250508152602001906001019062000421565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5783829060005260206000200180546200054b9062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620005799062000ea8565b8015620005ca5780601f106200059e57610100808354040283529160200191620005ca565b820191906000526020600020905b815481529060010190602001808311620005ac57829003601f168201915b50505050508152602001906001019062000529565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620006c557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620006715790505b5050505050815250508152602001906001019062000603565b601f54604080517f0ca3976900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691630ca39769916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b60606010805480602002602001604051908101604052809291908181526020016000905b82821015620004fc578382906000526020600020018054620007899062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620007b79062000ea8565b8015620008085780601f10620007dc5761010080835404028352916020019162000808565b820191906000526020600020905b815481529060010190602001808311620007ea57829003601f168201915b50505050508152602001906001019062000767565b60008054610100900460ff16156200083e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620009645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091620008e6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162000efd565b60408051601f1981840301815290829052620009029162000f47565b6000604051808303816000865af19150503d806000811462000941576040519150601f19603f3d011682016040523d82523d6000602084013e62000946565b606091505b509150508080602001905181019062000960919062000f65565b9150505b919050565b6060600c80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b806001600160a01b0316826001600160a01b03161462000b59577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162000a6b9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b61646460408201527f726573735d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a160408051818152600a818301527f2020202020204c6566740000000000000000000000000000000000000000000060608201526001600160a01b038416602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a160408051818152600a818301527f202020202052696768740000000000000000000000000000000000000000000060608201526001600160a01b038316602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a162000b5962000b5d565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000c765760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262000c11929160200162000efd565b60408051601f198184030181529082905262000c2d9162000f47565b6000604051808303816000865af19150503d806000811462000c6c576040519150601f19603f3d011682016040523d82523d6000602084013e62000c71565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b617f898062000f8a83390190565b6020808252825182820181905260009190848201906040850190845b8181101562000cf55783516001600160a01b03168352928401929184019160010162000cce565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562000dc357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562000dad5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062000d69565b50978a0197955050509187019160010162000d2b565b50919998505050505050505050565b60005b8381101562000def57818101518382015260200162000dd5565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101562000e6957603f198886030184528151805180875262000e49818989018a850162000dd2565b601f01601f19169590950186019450928501929085019060010162000e1f565b5092979650505050505050565b60006020828403121562000e8957600080fd5b81516001600160a01b038116811462000ea157600080fd5b9392505050565b600181811c9082168062000ebd57607f821691505b60208210810362000ef7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162000f3981600485016020870162000dd2565b919091016004019392505050565b6000825162000f5b81846020870162000dd2565b9190910192915050565b60006020828403121562000f7857600080fd5b8151801515811462000ea157600080fdfe6080604052604051620000129062001ce3565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790553480156200005d57600080fd5b506200008460008051602062007f4983398151915280546001600160a01b03191630179055565b60405164191718171960d91b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2620000dd60008051602062007f4983398151915280546001600160a01b03191630179055565b620000e76200010f565b60008051602062007f4983398151915280546001600160a01b03191630179055620020ea565b565b6200013a7f746273746f72650000000000000000005461626c6573000000000000000000006200033a565b15620001a257604080517f746273746f72650000000000000000005461626c6573000000000000000000006020820181905291015b60408051601f198184030181529082905263dfaaf9cf60e01b825262000199929160040162001d45565b60405180910390fd5b620001bc60008051602062007f698339815191526200033a565b15620001e5576040805160008051602062007f698339815191526020820181905291016200016f565b620002867f746273746f72650000000000000000005461626c6573000000000000000000006503001811010160cd1b632001005f60d81b671800c097d7d7f13160ba1b62000232620003b7565b60405160200162000244919062001dbe565b60408051601f198184030181529190526200025e6200042a565b60405160200162000270919062001dbe565b60408051601f19818403018152919052620005bf565b620002e760008051602062007f69833981519152630101000160d81b632001005f60d81b6208080360dd1b620002bb62000695565b604051602001620002cd919062001dbe565b60408051601f198184030181529190526200025e620006fd565b620003147f746273746f72650000000000000000005461626c657300000000000000000000600162000761565b6200033060008051602062007f69833981519152600162000761565b6200010d620007fc565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062000376576200037662001dd3565b60209081029190910101526000620003a760008051602062007f698339815191528383630101000160d81b6200084d565b905060f881901c5b949350505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620003ce579050509050604051806040016040528060078152602001661d18589b19525960ca1b815250816000815181106200041c576200041c62001dd3565b602002602001018190525090565b60408051600580825260c08201909252606091816020015b6060815260200190600190039081620004425790505090506040518060400160405280600b81526020016a199a595b1913185e5bdd5d60aa1b8152508160008151811062000494576200049462001dd3565b6020026020010181905250604051806040016040528060098152602001686b6579536368656d6160b81b81525081600181518110620004d757620004d762001dd3565b60200260200101819052506040518060400160405280600b81526020016a76616c7565536368656d6160a81b815250816002815181106200051c576200051c62001dd3565b602002602001018190525060405180604001604052806012815260200171616269456e636f6465644b65794e616d657360701b8152508160038151811062000568576200056862001dd3565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106200041c576200041c62001dd3565b604080516020810187905280820186905260608082018690528251808303909101815260809091019091526000620005f8848462000889565b90506000620006088585620008a6565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811062000645576200064562001dd3565b6020908102919091010152620006897f746273746f72650000000000000000005461626c657300000000000000000000828686866503001811010160cd1b620008d5565b50505050505050505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620006ac5790505090506040518060400160405280600a8152602001691c995cdbdd5c98d9525960b21b815250816000815181106200041c576200041c62001dd3565b604080516001808252818301909252606091816020015b6060815260200190600190039081620007145790505090506040518060400160405280600681526020016565786973747360d01b815250816000815181106200041c576200041c62001dd3565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106200079a576200079a62001dd3565b602002602001018181525050620007f760008051602062007f6983398151915260001b82600085604051602001620007d991151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b62000bb5565b505050565b6200010d7f746273746f726500000000000000000053746f7265486f6f6b73000000000000600160e01b632001005f60d81b60db60d91b6200083d620003b7565b6200084762000bd5565b62000c38565b6000620008806200085f868662000ce3565b60ff858116601b0360080285901c166200087a858762000d3b565b62000d78565b95945050505050565b60006200089f8351835162000dce60201b60201c565b9392505050565b60608282604051602001620008bd92919062001de9565b60405160208183030381529060405290505b92915050565b611bdd60f21b866001600160f01b0319160362000921578560008051602062007f298339815191528686868660405162000913949392919062001e5a565b60405180910390a262000bad565b60006200092e8762000de3565b905060005b8151811015620009f057600082828151811062000954576200095462001dd3565b60209081029190910101519050620009786001600160581b03198216600162000e7b565b15620009e6576040516315c19b2760e21b8152606082901c906357066c9c90620009b1908c908c908c908c908c908c9060040162001eaa565b600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b505050505b5060010162000933565b508660008051602062007f298339815191528787878760405162000a18949392919062001e5a565b60405180910390a2600062000a2e888862000ce3565b9050600060208701905062000a4e82600089518462000ea060201b60201c565b600062000a5b8562000f69565b111562000aed57600062000a708a8a62000fae565b878155905060208601915060008060005b62000a8c8862000f69565b8160ff16101562000ae85762000aa48d8d8362001006565b925062000ac08a8260ff166028026038011c64ffffffffff1690565b915062000ad1836000848862000ea0565b62000add828662001f1f565b945060010162000a81565b505050505b60005b83518110156200068957600084828151811062000b115762000b1162001dd3565b6020908102919091010151905062000b356001600160581b03198216600262000e7b565b1562000ba357604051635b28cdaf60e01b8152606082901c90635b28cdaf9062000b6e908e908e908e908e908e908e9060040162001eaa565b600060405180830381600087803b15801562000b8957600080fd5b505af115801562000b9e573d6000803e3d6000fd5b505050505b5060010162000af0565b505050505050565b62000bce858562000bc7848762000d3b565b8562001070565b5050505050565b604080516001808252818301909252606091816020015b606081526020019060019003908162000bec57905050905060405180604001604052806005815260200164686f6f6b7360d81b815250816000815181106200041c576200041c62001dd3565b600062000c4462001294565b9050306001600160a01b0382160362000c6d5762000c67878787878787620012c3565b62000cda565b604051630ba51f4960e01b81526001600160a01b03821690630ba51f499062000ca5908a908a908a908a908a908a9060040162001f35565b600060405180830381600087803b15801562000cc057600080fd5b505af115801562000cd5573d6000803e3d6000fd5b505050505b50505050505050565b6000828260405160200162000cfa92919062001f83565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101562000d705762000d6560ff601b83900360080287901c168362001f1f565b915060010162000d40565b509392505050565b60006020821062000da25760208204840193506020828162000d9e5762000d9e62001fc1565b0691505b508254600882021b60208290038084111562000d70576001850154600882021c82179150509392505050565b606081901b603883901b838301171792915050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062000e205762000e2062001dd3565b6020908102919091010152600062000e5a7f746273746f726500000000000000000053746f7265486f6f6b73000000000000838362001670565b9050620003af62000e758260008451620016b160201b60201c565b62001725565b600060ff82168262000e8d8560581c90565b1660ff1614905092915050565b60200190565b821562000f22576020831062000ecf5760208304840193506020838162000ecb5762000ecb62001fc1565b0692505b821562000f225760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841162000f1357505062000f63565b50600194909401939182900391015b5b6020821062000f465780518455600190930192601f199091019060200162000f23565b811562000f635783548151600019600885021c9182169119161784555b50505050565b6000600860018062000f7e6002602062001fd7565b62000f8a919062001fd7565b62000f96919062001fd7565b62000fa2919062001fed565b8260ff911c1692915050565b6000828260405160200162000fc592919062001f83565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600083836040516020016200101d92919062001f83565b604051602081830303815290604052805190602001208260f81b6001600160f81b0319167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b611bdd60f21b846001600160f01b03191603620010ba578360008051602062007f09833981519152848484604051620010ac9392919062002007565b60405180910390a262000f63565b6000620010c8858562000ce3565b90506000620010d78662000de3565b905060005b815181101562001195576000828281518110620010fd57620010fd62001dd3565b60209081029190910101519050620011216001600160581b03198216600462000e7b565b156200118b5760405163964f667d60e01b8152606082901c9063964f667d9062001156908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200117157600080fd5b505af115801562001186573d6000803e3d6000fd5b505050505b50600101620010dc565b508560008051602062007f09833981519152868686604051620011bb9392919062002007565b60405180910390a2620011d88265ffffffffffff86168562001737565b60005b815181101562000cda576000828281518110620011fc57620011fc62001dd3565b60209081029190910101519050620012206001600160581b03198216600862000e7b565b156200128a5760405163a8ba872160e01b8152606082901c9063a8ba87219062001255908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200127057600080fd5b505af115801562001285573d6000803e3d6000fd5b505050505b50600101620011db565b60008051602062007f49833981519152546000906001600160a01b031680620012be573391505090565b919050565b613a3160f11b866001600160f01b03191614801590620012f25750611bdd60f21b866001600160f01b03191614155b156200133e57613a3160f11b86876040516020016200131391815260200190565b60408051601f19818403018152908290526331b4668360e01b82526200019993929160040162002085565b620013498562001756565b620013568460016200190b565b620013638360006200190b565b60e084901c60e885901c0160ff16825114620013ac5760e084901c60e885901c0160ff1682516040516301ee597360e31b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff16815114620013f45760e085901c60e886901c0160ff168151604051621f7b1360ea1b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614620014555760e085901c60e886901c0160ff1660e084901c60e885901c0160ff16604051631e53a9b160e31b81526004810192909252602482015260440162000199565b620014608562001a96565b6200146b8462001a96565b14620014aa576200147c8562001a96565b620014878462001a96565b6040516365cc0adf60e01b81526004810192909252602482015260440162000199565b620014b58562000f69565b620014c08462000f69565b14620014ff57620014d18562000f69565b620014dc8462000f69565b60405163edea958760e01b81526004810192909252602482015260440162000199565b60005b6200150d8662001a96565b8110156200159d576200153f62001525858362001aaa565b60c5811115620015395762001539620020ad565b62001ace565b6008601b8390030287901c60ff161462001594576008601b8290030286901c60ff166200157162001525868462001aaa565b6040516309531f6d60e21b81526004810192909252602482015260440162000199565b60010162001502565b506000620015c9613a3160f11b620015b58960101b90565b60101c6001600160f01b0319919091161790565b90506000620015e2611bdd60f21b620015b58a60101b90565b9050620015ef826200033a565b8062001601575062001601816200033a565b156200161c5787886040516020016200016f91815260200190565b62001659888888888860405160200162001637919062001dbe565b6040516020818303038152906040528860405160200162000270919062001dbe565b6200166688600162000761565b5050505050505050565b6060620003af6200168385858562001006565b6000620016ab8562001696898962001b30565b9060ff166028026038011c64ffffffffff1690565b62001b46565b600081831180620016c25750835182115b15620016e9578383836040516323230fa360e01b81526004016200019993929190620020c3565b60208401620016f9848262001f1f565b9050600062001709858562001fd7565b6001600160801b031660809290921b9190911795945050505050565b606060006200089f8360158362001b6b565b620007f783838351620017508562000e9a60201b60201c565b62000ea0565b80620017755760405163500cf26d60e11b815260040160405180910390fd5b6000620017828262000f69565b90506005811115620017b2576040516333c9efb160e11b8152600481018290526005602482015260440162000199565b6000620017bf8362001a96565b90506000620017cf838362001f1f565b9050601c811115620017ff5760405163ecd893b960e01b815260048101829052601c602482015260440162000199565b6000805b83811015620018805760ff601b82900360080287901c16600081900362001841576040516353b2dd0560e01b81526004810183905260240162000199565b60208111156200186857604051637237f23760e01b81526004810183905260240162000199565b62001874818462001f1f565b92505060010162001803565b506200188c8562001be3565b8114620018c3576200189e8562001be3565b6040516375d4b26f60e11b815260048101919091526024810182905260440162000199565b825b601c81101562000bad5760ff601b82900360080287901c1680156200190157604051631d8d44db60e01b81526004810183905260240162000199565b50600101620018c5565b8015801562001918575081155b156200193b5760405163d498615960e01b81526000600482015260240162000199565b6000620019488362000f69565b90506005811115620019715760405163d498615960e01b81526004810182905260240162000199565b60006200197e8462001a96565b905060006200198e838362001f1f565b9050601c811115620019b75760405163d498615960e01b81526004810182905260240162000199565b6000805b8381101562001a12576000620019d662001525898462001aaa565b905080600003620019fa576040516307a25a1160e51b815260040160405180910390fd5b62001a06818462001f1f565b925050600101620019bb565b5062001a1e8662001be3565b811462001a4d5762001a308662001be3565b60405163d498615960e01b81526004016200019991815260200190565b825b8281101562000cda57600062001a6a62001525898462001aaa565b9050801562001a8c576040516307a25a1160e51b815260040160405180910390fd5b5060010162001a4f565b60006008600162000f8a6002602062001fd7565b6000601b8290036008028360ff911c1660c58111156200089f576200089f620020ad565b6000808260c581111562001ae65762001ae6620020ad565b60ff169050606181101562001b0157601f1660010192915050565b60618360c581111562001b185762001b18620020ad565b0362001b275750601492915050565b50600092915050565b60006200089f62001b42848462000fae565b5490565b60405160208101601f19603f848401011660405282825262000d708585858462001c0a565b6060600062001b7a8560801c90565b90506001600160801b038516600085828162001b9a5762001b9a62001fc1565b04905060405193506020840160208202810160405281855260005b8281101562001bd7578451871c82529387019360209091019060010162001bb5565b50505050509392505050565b6000600862001bf56002602062001fd7565b62001c01919062001fed565b9190911c919050565b821562001c9b576020831062001c395760208304840193506020838162001c355762001c3562001fc1565b0692505b821562001c9b57602083900360008184101562001c5f5750600019600884021c62001c69565b50600019600882021c5b8554600886021b81845116821982161784525081841162001c8c57505062000f63565b50600194909401939182900391015b5b6020821062001cbf5783548152600190930192601f199091019060200162001c9c565b811562000f63576000600019600884021c8251865482191691161782525050505050565b61180e80620066fb83390190565b60005b8381101562001d0e57818101518382015260200162001cf4565b50506000910152565b6000815180845262001d3181602086016020860162001cf1565b601f01601f19169290920160200192915050565b828152604060208201526000620003af604083018462001d17565b60008282518085526020808601955060208260051b8401016020860160005b8481101562001db157601f1986840301895262001d9e83835162001d17565b9884019892509083019060010162001d7f565b5090979650505050505050565b6020815260006200089f602083018462001d60565b634e487b7160e01b600052603260045260246000fd5b6000835162001dfd81846020880162001cf1565b83519083019062001e1381836020880162001cf1565b01949350505050565b60008151808452602080850194506020840160005b8381101562001e4f5781518752958201959082019060010162001e31565b509495945050505050565b60808152600062001e6f608083018762001e1c565b828103602084015262001e83818762001d17565b9050846040840152828103606084015262001e9f818562001d17565b979650505050505050565b86815260c06020820152600062001ec560c083018862001e1c565b828103604084015262001ed9818862001d17565b9050856060840152828103608084015262001ef5818662001d17565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008cf57620008cf62001f09565b86815285602082015284604082015283606082015260c06080820152600062001f6260c083018562001d60565b82810360a084015262001f76818562001d60565b9998505050505050505050565b8281526000602080830184516020860160005b8281101562001fb45781518452928401929084019060010162001f96565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b81810381811115620008cf57620008cf62001f09565b8082028115828204841417620008cf57620008cf62001f09565b6060815260006200201c606083018662001e1c565b65ffffffffffff8516602084015282810360408401526200203e818562001d17565b9695505050505050565b84815260806020820152600062002063608083018662001e1c565b65ffffffffffff85166040840152828103606084015262001e9f818562001d17565b61ffff60f01b8416815282602082015260606040820152600062000880606083018462001d17565b634e487b7160e01b600052602160045260246000fd5b606081526000620020d8606083018662001d17565b60208301949094525060400152919050565b61460180620020fa6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063505a181d11610104578063c1122229116100a2578063d9c03a0411610071578063d9c03a0414610406578063dbbf0e2114610419578063e228a4a31461042c578063ef6ea8621461043f57600080fd5b8063c1122229146103a7578063cc49db7e146103cd578063d03edb8c146103e0578063d4285dc2146103f357600080fd5b80639f1fcf0a116100de5780639f1fcf0a1461035b578063a53417ed1461036e578063b047c1eb14610381578063c0a2895a1461039457600080fd5b8063505a181d14610322578063530f4b60146103355780638c364d591461034857600080fd5b80631e78897711610171578063390baae01161014b578063390baae0146102b95780633a77c2c2146102cc578063419b58fd146102ed5780634dc77d971461030f57600080fd5b80631e78897714610280578063298314fb146102935780633708196e146102a657600080fd5b80630ca39769116101ad5780630ca3976914610225578063102f59a914610252578063114a72661461025a578063150f32621461026d57600080fd5b806305242d2f146101d457806305609129146101fd5780630ba51f4914610212575b600080fd5b6101e76101e23660046137b8565b610452565b6040516101f4919061386e565b60405180910390f35b61021061020b3660046138a6565b61049f565b005b6102106102203660046138d6565b6104ad565b61022d6104d7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61022d610626565b6102106102683660046139ae565b6106e6565b61021061027b3660046139ae565b610761565b6101e761028e366004613a3b565b6107d4565b6102106102a1366004613a99565b61081e565b6102106102b4366004613b32565b6108c5565b6102106102c7366004613b32565b610943565b6102df6102da366004613bc8565b6109b8565b6040519081526020016101f4565b6103006102fb366004613be1565b6109c9565b6040516101f493929190613c34565b6101e761031d366004613d39565b610a1e565b610210610330366004613da2565b610a2d565b610210610343366004613de9565b610a37565b6102df6103563660046137b8565b610a47565b6102df610369366004613e27565b610a8a565b6102df61037c366004613e86565b610aa0565b61021061038f366004613ed4565b610ab7565b6102106103a2366004613f63565b610b2a565b7f322e302e320000000000000000000000000000000000000000000000000000006102df565b6103006103db366004613ff0565b610ba0565b6101e76103ee366004613a3b565b610bf2565b6102df610401366004613bc8565b610c33565b6102106104143660046137b8565b610c3e565b6102df610427366004613e86565b610c86565b6102df61043a366004613bc8565b610c93565b61021061044d3660046139ae565b610c9e565b606061049586868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250879150610d119050565b9695505050505050565b6104a98282610d56565b5050565b6104cd888888886104be888a61403c565b6104c8878961403c565b610d81565b5050505050505050565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff9091169161055a9190614107565b600060405180830381855af49150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b606091505b50915091508161060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f64656c656761746563616c6c206661696c65640000000000000000000000000060448201526064015b60405180910390fd5b8080602001905181019061061f9190614123565b9250505090565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff909116916106a99190614107565b6000604051808303816000865af19150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061122a92505050565b505050505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061124592505050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611280915050565b95945050505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506112ba92505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506112d0915050565b50505050505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611313915050565b60006109c382611328565b92915050565b606060006060610a0e878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506113ad915050565b9250925092509450945094915050565b606061049586868686866114b5565b6104a982826115b8565b610a428383836115cb565b505050565b6000610495868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116b99050565b6000610815858585856116e6565b949350505050565b6000610aad84848461172e565b90505b9392505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061174492505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506119c492505050565b606060006060610be3868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119dc92505050565b92509250925093509350939050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611a02915050565b60006109c382611a18565b610c7f85858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250869150611a4b9050565b5050505050565b6000610aad848484611aa4565b60006109c382611ab4565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611ada92505050565b6060610d1c82611b15565b8360ff161015610d3957610d3285858585611b47565b9050610a98565b610d328585610d4785611b15565b610d519087614156565b611280565b6104a97f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611b74565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610ddf5750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610e4057613a3160f11b8687604051602001610dfe91815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261060293929160040161416f565b610e4985611cb5565b610e54846001611efc565b610e5f836000611efc565b60e084901c60e885901c0160ff16825114610ebf5760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff16815114610f1f5760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610f975760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b610fa085611b15565b610fa984611b15565b14610ffb57610fb785611b15565b610fc084611b15565b6040517f65cc0adf00000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b61100485612098565b61100d84612098565b1461105f5761101b85612098565b61102484612098565b6040517fedea958700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60005b61106b86611b15565b8110156111065761109561107f85836120b5565b60c5811115611090576110906141b0565b6120d6565b6008601b8390030287901c60ff16146110fe576008601b8290030286901c60ff166110c361107f86846120b5565b6040517f254c7db400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600101611062565b506000611148613a3160f11b61111c8960101b90565b60101c7fffff000000000000000000000000000000000000000000000000000000000000919091161790565b9050600061115f611bdd60f21b61111c8a60101b90565b905061116a82612130565b80611179575061117981612130565b156111d357878860405160200161119291815260200190565b60408051601f19818403018152908290527fdfaaf9cf00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b61121f88888888886040516020016111eb91906141df565b6040516020818303038152906040528860405160200161120b91906141df565b6040516020818303038152906040526121cd565b6104cd8860016122b0565b61123f8484848461123a89611328565b6112d0565b50505050565b60006112518585612369565b9050600061126e828560ff166028026038011c64ffffffffff1690565b9050610759868686846000888861237c565b6060610aad611290858585612758565b60006112b5856112a08989612369565b9060ff166028026038011c64ffffffffff1690565b6127d8565b610c7f85858585856112cb8b611328565b612803565b6112d981611b15565b8360ff1610156112f5576112f08585858585611313565b610c7f565b610c7f858561130384611b15565b61130d9087614156565b85611ada565b610c7f85856113228487612b21565b85611744565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161137757507e60030220202000000000000000000000000000000000000000000000000000919050565b6109c36113a47f746273746f72650000000000000000005461626c65730000000000000000000084612b52565b60206000612bab565b60606000606060006113be85612bfc565b90506113cb878783612c1f565b935060006113d886612098565b905080156114aa576113ea8888612369565b935066ffffffffffffff841667ffffffffffffffff81111561140e5761140e613c5f565b6040519080825280601f01601f191660200182016040528015611438576020820181803683370190505b5092506020830160005b828160ff1610156114a757600061145a8b8b84612758565b90506000611477888460ff166028026038011c64ffffffffff1690565b90506114868260008387612c58565b6114908185614261565b93505050808061149f90614274565b915050611442565b50505b505093509350939050565b6060818311156114fb576040517fa8c547820000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610602565b60006115078787612369565b90506000611524828760ff166028026038011c64ffffffffff1690565b9050808510158061153457508084115b1561158f5780818610156115525761154d600186614293565b611554565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600061159c898989612758565b90506115ab81878888036127d8565b9998505050505050505050565b6104a982826115c685611328565b612d24565b613a3160f11b837fffff000000000000000000000000000000000000000000000000000000000000161461161357613a3160f11b8384604051602001610dfe91815260200190565b61161c83612130565b61167557828360405160200161163491815260200190565b60408051601f19818403018152908290527f41e713ad00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b610a42837fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166bff0000000000000000000000605885901b1617613008565b60006108156116c886866130c1565b60ff858116601b0360080285901c166116e18587612b21565b612bab565b6000806116f283611b15565b90508060ff168460ff16101561171a5760ff848116601b0360080284901c165b915050610a98565b61171286866117298488614156565b611aa4565b6000610aad84848461173f88611328565b6116e6565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036117b357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516117a6939291906142e2565b60405180910390a261123f565b60006117bf85856130c1565b905060006117cc866130d6565b905060005b81518110156118a15760008282815181106117ee576117ee614315565b6020026020010151905061181a6004826affffffffffffffffffffff191661315f90919063ffffffff16565b15611898576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611865908b908b908b908b9060040161432b565b600060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050505b506001016117d1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516118d6939291906142e2565b60405180910390a26118f1828565ffffffffffff168561317d565b60005b815181101561093a57600082828151811061191157611911614315565b6020026020010151905061193d6008826affffffffffffffffffffff191661315f90919063ffffffff16565b156119bb576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611988908b908b908b908b9060040161432b565b600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050505b506001016118f4565b6107598686868686866119d78d8d612369565b61237c565b6060600060606119f585856119f088611328565b6113ad565b9250925092509250925092565b6060610aad848484611a1388611328565b610d11565b6000611a2382613193565b9050611a2e82612130565b611a4657818260405160200161163491815260200190565b919050565b6000611a578585612369565b90506000611a74828560ff166028026038011c64ffffffffff1690565b9050610759868686611a8d8764ffffffffff8716614293565b60408051600081526020810190915288908861237c565b6000610aad826112a08686612369565b6000611abf82613225565b905080611a4657818260405160200161163491815260200190565b6000611ae68585612369565b90506000611b03828560ff166028026038011c64ffffffffff1690565b9050610759868686600085888861237c565b600060086001611b2760026020614293565b611b319190614293565b611b3b919061436f565b8260ff911c1692915050565b6060610815611b5686866130c1565b611b608486612b21565b60ff868116601b0360080286901c166127d8565b6000611b8084846132b7565b90506000815167ffffffffffffffff811115611b9e57611b9e613c5f565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b5090506000805b8351811015611ca6578473ffffffffffffffffffffffffffffffffffffffff16611c1f858381518110611c0357611c03614315565b60200260200101516affffffffffffffffffffff191660601c90565b73ffffffffffffffffffffffffffffffffffffffff1614611c9e57838181518110611c4c57611c4c614315565b6020026020010151838381518110611c6657611c66614315565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611bce565b5080825261075986868461331d565b80611cec576040517fa019e4da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf782612098565b90506005811115611d3e576040517f6793df620000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610602565b6000611d4983611b15565b90506000611d578383614261565b9050601c811115611d9e576040517fecd893b900000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610602565b6000805b83811015611e495760ff601b82900360080287901c166000819003611df6576040517f53b2dd0500000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b6020811115611e34576040517f7237f23700000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b611e3e8184614261565b925050600101611da2565b50611e5385612bfc565b8114611e9f57611e6285612bfc565b6040517feba964de000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610602565b825b601c8110156107595760ff601b82900360080287901c168015611ef3576040517f1d8d44db00000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b50600101611ea1565b80158015611f08575081155b15611f295760405163d498615960e01b815260006004820152602401610602565b6000611f3483612098565b90506005811115611f5b5760405163d498615960e01b815260048101829052602401610602565b6000611f6684611b15565b90506000611f748383614261565b9050601c811115611f9b5760405163d498615960e01b815260048101829052602401610602565b6000805b83811015612007576000611fb661107f89846120b5565b905080600003611ff2576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ffc8184614261565b925050600101611f9f565b5061201186612bfc565b811461203c5761202086612bfc565b60405163d498615960e01b815260040161060291815260200190565b825b8281101561093a57600061205561107f89846120b5565b9050801561208f576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161203e565b600060086001806120ab60026020614293565b611b279190614293565b6000601b8290036008028360ff911c1660c5811115610ab057610ab06141b0565b6000808260c58111156120eb576120eb6141b0565b60ff169050606181101561210557601f1660010192915050565b60618360c5811115612119576121196141b0565b036121275750601492915050565b50600092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061216957612169614315565b602090810291909101015260006121c17f746273746f72650000000000000000005265736f75726365496473000000000083837e010100010000000000000000000000000000000000000000000000000000006116b9565b9050610a988160f81c90565b6040805160208101879052808201869052606080820186905282518083039091018152608090910190915260006122048484613374565b905060006122128585613391565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811061224c5761224c614315565b60209081029190910101526122a47f746273746f72650000000000000000005461626c657300000000000000000000828686867e60030220202000000000000000000000000000000000000000000000000000612803565b50505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106122e6576122e6614315565b602002602001018181525050610a427f746273746f72650000000000000000005265736f75726365496473000000000060001b8260008560405160200161233491151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611313565b6000610ab061237884846133bd565b5490565b613a3160f11b877fffff00000000000000000000000000000000000000000000000000000000000016146123c457613a3160f11b8788604051602001610dfe91815260200190565b60006123df828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836123f89190614293565b6124029190614261565b905080821415801561242457508161241a8688614386565b64ffffffffff1614155b15612474576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610602565b818664ffffffffff1611156124c5576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610602565b60006124d2848984613413565b905060006124df8b6130d6565b905060005b81518110156125b757600082828151811061250157612501614315565b6020026020010151905061252d6010826affffffffffffffffffffff191661315f90919063ffffffff16565b156125ae57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161257b97969594939291906143ab565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b505050505b506001016124e4565b5064ffffffffff881660005b8a60ff168160ff1610156125f6576125ea878260ff166028026038011c64ffffffffff1690565b909101906001016125c3565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161263196959493929190614409565b60405180910390a25082841461265257600061264d8c8c6133bd565b839055505b600061265f8c8c8c612758565b9050612673818a64ffffffffff168961317d565b5060005b815181101561274a57600082828151811061269457612694614315565b602002602001015190506126c06020826affffffffffffffffffffff191661315f90919063ffffffff16565b1561274157606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161270e97969594939291906143ab565b600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b50600101612677565b505050505050505050505050565b6000838360405160200161276d929190614458565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f84840101166040528282526127fb85858584612c58565b509392505050565b611bdd60f21b867fffff000000000000000000000000000000000000000000000000000000000000160361287457857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516128679493929190614494565b60405180910390a2610759565b600061287f876130d6565b905060005b81518110156129585760008282815181106128a1576128a1614315565b602002602001015190506128cd6001826affffffffffffffffffffff191661315f90919063ffffffff16565b1561294f576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061291c908c908c908c908c908c908c906004016144d3565b600060405180830381600087803b15801561293657600080fd5b505af115801561294a573d6000803e3d6000fd5b505050505b50600101612884565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161298f9493929190614494565b60405180910390a260006129a388886130c1565b905060006020870190506129bb8260008951846134e1565b60006129c685612098565b1115612a4a5760006129d88a8a6133bd565b878155905060208601915060008060005b6129f288612098565b8160ff161015612a4557612a078d8d83612758565b9250612a228a8260ff166028026038011c64ffffffffff1690565b9150612a3183600084886134e1565b612a3b8286614261565b94506001016129e9565b505050505b60005b83518110156122a4576000848281518110612a6a57612a6a614315565b60200260200101519050612a966002826affffffffffffffffffffff191661315f90919063ffffffff16565b15612b18576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612ae5908e908e908e908e908e908e906004016144d3565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b505050505b50600101612a4d565b600080805b8360ff168110156127fb57612b4860ff601b83900360080287901c1683614261565b9150600101612b26565b60408051602081018490529081018290526000906060015b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612bd157602082048401935060208281612bcd57612bcd61452c565b0691505b508254600882021b6020829003808411156127fb576001850154600882021c82179150509392505050565b60006008612c0c60026020614293565b612c16919061436f565b9190911c919050565b606081600003612c3e5750604080516020810190915260008152610ab0565b6000612c4a85856130c1565b9050610815816000856127d8565b8215612cdf5760208310612c8257602083048401935060208381612c7e57612c7e61452c565b0692505b8215612cdf576020839003600081841015612ca55750600019600884021c612caf565b50600019600882021c5b8554600886021b818451168219821617845250818411612cd057505061123f565b50600194909401939182900391015b5b60208210612d015783548152600190930192601f1990910190602001612ce0565b811561123f576000600019600884021c8251865482191691161782525050505050565b611bdd60f21b837fffff0000000000000000000000000000000000000000000000000000000000001603612d8f57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612d829190614542565b60405180910390a2505050565b6000612d9a846130d6565b905060005b8151811015612e6d576000828281518110612dbc57612dbc614315565b60200260200101519050612de86040826affffffffffffffffffffff191661315f90919063ffffffff16565b15612e64576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612e3190899089908990600401614555565b600060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050505b50600101612d9f565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612e9e9190614542565b60405180910390a26000612eb285856130c1565b9050612f0b816000612ec386612bfc565b67ffffffffffffffff811115612edb57612edb613c5f565b6040519080825280601f01601f191660200182016040528015612f05576020820181803683370190505b5061317d565b6000612f1684612098565b1115612f37576000612f2886866133bd565b9050612f358160206135a0565b505b60005b8251811015610759576000838281518110612f5757612f57614315565b60200260200101519050612f836080826affffffffffffffffffffff191661315f90919063ffffffff16565b15612fff576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90612fcc908a908a908a90600401614555565b600060405180830381600087803b158015612fe657600080fd5b505af1158015612ffa573d6000803e3d6000fd5b505050505b50600101612f3a565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061303e5761303e614315565b602002602001018181525050610a427f746273746f726500000000000000000053746f7265486f6f6b7300000000000060001b826000856040516020016130ad91907fffffffffffffffffffffffffffffffffffffffffff000000000000000000000091909116815260150190565b604051602081830303815290604052611245565b60008282604051602001612b6a929190614458565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061311057613110614315565b602090810291909101015260006131487f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611280565b9050610a9861315a82600084516135dd565b61366b565b60008160ff16826131708560581c90565b1660ff1614905092915050565b610a428383835161318e8560200190565b6134e1565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106131cc576131cc614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360017e600302202020000000000000000000000000000000000000000000000000006116b9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061325e5761325e614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360027e600302202020000000000000000000000000000000000000000000000000006116b9565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132f1576132f1614315565b602002602001018181525050600061330b85836000611280565b905061081561315a82600084516135dd565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061335357613353614315565b60200260200101818152505061123f8482600061336f8661367c565b611ada565b8151815160009181810160389190911b1760609190911b17610ab0565b606082826040516020016133a692919061457e565b604051602081830303815290604052905092915050565b600082826040516020016133d2929190614458565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115613457576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106134895780850382019150613491565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561355b576020831061350b576020830484019350602083816135075761350761452c565b0692505b821561355b5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161354c57505061123f565b50600194909401939182900391015b5b6020821061357d5780518455600190930192601f199091019060200161355c565b811561123f576000600019600884021c8554835182191691161785555050505050565b600060206135af83601f614261565b6135b991906145ad565b6135c39084614261565b90505b80831015610a4257600083556001830192506135c6565b6000818311806135ed5750835182115b1561362a578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610602939291906145cf565b602084016136388482614261565b905060006136468585614293565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610ab0836015600061368c565b606081610ab08160156000613707565b6060600061369a8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816136c0576136c061452c565b04905060405193506020840160208202810160405281855260005b828110156136fb578451871c8252938701936020909101906001016136db565b50505050509392505050565b82516060906000613718858361436f565b9050604051925060208301601f19603f83860101166040528184526000602088015b848210156136fb578051871b8352918701916001919091019060200161373a565b60008083601f84011261376d57600080fd5b50813567ffffffffffffffff81111561378557600080fd5b6020830191508360208260051b85010111156137a057600080fd5b9250929050565b803560ff81168114611a4657600080fd5b6000806000806000608086880312156137d057600080fd5b85359450602086013567ffffffffffffffff8111156137ee57600080fd5b6137fa8882890161375b565b909550935061380d9050604087016137a7565b949793965091946060013592915050565b60005b83811015613839578181015183820152602001613821565b50506000910152565b6000815180845261385a81602086016020860161381e565b601f01601f19169290920160200192915050565b602081526000610ab06020830184613842565b73ffffffffffffffffffffffffffffffffffffffff811681146138a357600080fd5b50565b600080604083850312156138b957600080fd5b8235915060208301356138cb81613881565b809150509250929050565b60008060008060008060008060c0898b0312156138f257600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff8082111561392657600080fd5b6139328c838d0161375b565b909650945060a08b013591508082111561394b57600080fd5b506139588b828c0161375b565b999c989b5096995094979396929594505050565b60008083601f84011261397e57600080fd5b50813567ffffffffffffffff81111561399657600080fd5b6020830191508360208285010111156137a057600080fd5b600080600080600080608087890312156139c757600080fd5b86359550602087013567ffffffffffffffff808211156139e657600080fd5b6139f28a838b0161375b565b9097509550859150613a0660408a016137a7565b94506060890135915080821115613a1c57600080fd5b50613a2989828a0161396c565b979a9699509497509295939492505050565b60008060008060608587031215613a5157600080fd5b84359350602085013567ffffffffffffffff811115613a6f57600080fd5b613a7b8782880161375b565b9094509250613a8e9050604086016137a7565b905092959194509250565b60008060008060008060008060a0898b031215613ab557600080fd5b88359750602089013567ffffffffffffffff80821115613ad457600080fd5b613ae08c838d0161375b565b909950975060408b0135915080821115613af957600080fd5b613b058c838d0161396c565b909750955060608b0135945060808b0135915080821115613b2557600080fd5b506139588b828c0161396c565b600080600080600080600060a0888a031215613b4d57600080fd5b87359650602088013567ffffffffffffffff80821115613b6c57600080fd5b613b788b838c0161375b565b9098509650869150613b8c60408b016137a7565b955060608a0135915080821115613ba257600080fd5b50613baf8a828b0161396c565b989b979a50959894979596608090950135949350505050565b600060208284031215613bda57600080fd5b5035919050565b60008060008060608587031215613bf757600080fd5b84359350602085013567ffffffffffffffff811115613c1557600080fd5b613c218782880161375b565b9598909750949560400135949350505050565b606081526000613c476060830186613842565b84602084015282810360408401526104958185613842565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c9e57613c9e613c5f565b604052919050565b600067ffffffffffffffff821115613cc057613cc0613c5f565b5060051b60200190565b600082601f830112613cdb57600080fd5b81356020613cf0613ceb83613ca6565b613c75565b8083825260208201915060208460051b870101935086841115613d1257600080fd5b602086015b84811015613d2e5780358352918301918301613d17565b509695505050505050565b600080600080600060a08688031215613d5157600080fd5b85359450602086013567ffffffffffffffff811115613d6f57600080fd5b613d7b88828901613cca565b945050613d8a604087016137a7565b94979396509394606081013594506080013592915050565b60008060408385031215613db557600080fd5b82359150602083013567ffffffffffffffff811115613dd357600080fd5b613ddf85828601613cca565b9150509250929050565b600080600060608486031215613dfe57600080fd5b833592506020840135613e1081613881565b9150613e1e604085016137a7565b90509250925092565b60008060008060808587031215613e3d57600080fd5b84359350602085013567ffffffffffffffff811115613e5b57600080fd5b613e6787828801613cca565b935050613e76604086016137a7565b9396929550929360600135925050565b600080600060608486031215613e9b57600080fd5b83359250602084013567ffffffffffffffff811115613eb957600080fd5b613ec586828701613cca565b925050613e1e604085016137a7565b60008060008060008060808789031215613eed57600080fd5b86359550602087013567ffffffffffffffff80821115613f0c57600080fd5b613f188a838b0161375b565b90975095506040890135915065ffffffffffff82168214613f3857600080fd5b90935060608801359080821115613a1c57600080fd5b803564ffffffffff81168114611a4657600080fd5b60008060008060008060008060c0898b031215613f7f57600080fd5b88359750602089013567ffffffffffffffff80821115613f9e57600080fd5b613faa8c838d0161375b565b9099509750879150613fbe60408c016137a7565b9650613fcc60608c01613f4e565b9550613fda60808c01613f4e565b945060a08b0135915080821115613b2557600080fd5b60008060006040848603121561400557600080fd5b83359250602084013567ffffffffffffffff81111561402357600080fd5b61402f8682870161375b565b9497909650939450505050565b600061404a613ceb84613ca6565b80848252602080830192508560051b85013681111561406857600080fd5b855b818110156140fb57803567ffffffffffffffff8082111561408b5760008081fd5b90880190601f36818401126140a05760008081fd5b8235828111156140b2576140b2613c5f565b6140c387601f198484011601613c75565b925080835236878286010111156140dc57600091508182fd5b808785018885013760009083018701525086525093820193820161406a565b50919695505050505050565b6000825161411981846020870161381e565b9190910192915050565b60006020828403121561413557600080fd5b8151610ab081613881565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156109c3576109c3614140565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108156060830184613842565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610aad6040830184613842565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614254577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614242858351613842565b94509285019290850190600101614208565b5092979650505050505050565b808201808211156109c3576109c3614140565b600060ff821660ff810361428a5761428a614140565b60010192915050565b818103818111156109c3576109c3614140565b60008151808452602080850194506020840160005b838110156142d7578151875295820195908201906001016142bb565b509495945050505050565b6060815260006142f560608301866142a6565b65ffffffffffff8516602084015282810360408401526104958185613842565b634e487b7160e01b600052603260045260246000fd5b84815260806020820152600061434460808301866142a6565b65ffffffffffff8516604084015282810360608401526143648185613842565b979650505050505050565b80820281158282048414176109c3576109c3614140565b64ffffffffff8181168382160190808211156143a4576143a4614140565b5092915050565b87815260e0602082015260006143c460e08301896142a6565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526143fb8185613842565b9a9950505050505050505050565b60c08152600061441c60c08301896142a6565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526115ab8185613842565b8281526000602080830184516020860160005b828110156144875781518452928401929084019060010161446b565b5091979650505050505050565b6080815260006144a760808301876142a6565b82810360208401526144b98187613842565b905084604084015282810360608401526143648185613842565b86815260c0602082015260006144ec60c08301886142a6565b82810360408401526144fe8188613842565b905085606084015282810360808401526145188186613842565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601260045260246000fd5b602081526000610ab060208301846142a6565b83815260606020820152600061456e60608301856142a6565b9050826040830152949350505050565b6000835161459081846020880161381e565b8351908301906145a481836020880161381e565b01949350505050565b6000826145ca57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006145e26060830186613842565b6020830194909452506040015291905056fea164736f6c6343000818000a608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b506117cd806100416000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610163578063e20c9f711461017b578063fa7626d41461018357600080fd5b8063916a17c614610126578063b07ed3a91461012e578063b5508aa91461015b57600080fd5b80633f7286f4116100b25780633f7286f4146100f457806366d9a9a0146100fc57806385226c811461011157600080fd5b80631ed7831c146100ce5780633e5e3c23146100ec575b600080fd5b6100d6610190565b6040516100e39190610fbc565b60405180910390f35b6100d66101ff565b6100d661026c565b6101046102d9565b6040516100e39190611016565b6101196103ea565b6040516100e39190611140565b6101046104ba565b6101366105c2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e3565b610119610617565b61016b6106e7565b60405190151581526020016100e3565b6100d6610829565b60005461016b9060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156101f557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103c957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103765790505b505050505081525050815260200190600101906102fd565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461042d906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610459906111a4565b80156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50505050508152602001906001019061040e565b60606013805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105aa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105575790505b505050505081525050815260200190600101906104de565b60006106026040518060400160405280601181526020017f6765742053746f72652061646472657373000000000000000000000000000000815250610896565b61060a610b66565b9050610614610bad565b90565b60606010805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461065a906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906111a4565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b50505050508152602001906001019061063b565b60008054610100900460ff16156107075750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108245760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c65640000000000000000000000000000000000000000000000000000828401528251808303840181526060830190935260009290916107ac917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016111f7565b60408051601f19818403018152908290526107c69161123f565b6000604051808303816000865af19150503d8060008114610803576040519150601f19603f3d011682016040523d82523d6000602084013e610808565b606091505b5091505080806020019051810190610820919061125b565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061125b565b6109625750565b601b805461096f906111a4565b9050600014601b6040516020016109869190611315565b604051602081830303815290604052906109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b60405180910390fd5b50601d816040516109e7919061123f565b90815260200160405180910390205460001481604051602001610a0a91906113ad565b60405160208183030381529060405290610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b50601b610a5e8282611498565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610824573391505090565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c78919061125b565b610c7f5750565b600060a082601c54610c919190611587565b610c9b9190611587565b610ca69060016115a0565b905060008111610d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e277420757365206761730000000000000060448201526064016109cd565b80601d601b604051610d2491906115b3565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e35001610d71601b826115bf565b50610e05601b8054610d82906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906111a4565b8015610dfb5780601f10610dd057610100808354040283529160200191610dfb565b820191906000526020600020905b815481529060010190602001808311610dde57829003601f168201915b5050505050610e26565b604080516020810190915260008152601b90610e219082611498565b505050565b610f2c7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae601d84604051610e78919061123f565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252610ec19160040190815260200190565b600060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f069190810190611692565b82604051602001610f1892919061173f565b604051602081830303815290604052610f2f565b50565b610f2c81604051602401610f43919061139a565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6020808252825182820181905260009190848201906040850190845b8181101561100a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610fd8565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156110e157898403603f190186528251805173ffffffffffffffffffffffffffffffffffffffff168552880151888501889052805188860181905290890190839060608701905b808310156110cc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061108a565b50978a01979550505091870191600101611040565b50919998505050505050505050565b60005b8381101561110b5781810151838201526020016110f3565b50506000910152565b6000815180845261112c8160208601602086016110f0565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561119757603f19888603018452611185858351611114565b94509285019290850190600101611169565b5092979650505050505050565b600181811c908216806111b857607f821691505b6020821081036111f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff0000000000000000000000000000000000000000000000000000000083168152600082516112318160048501602087016110f0565b919091016004019392505050565b600082516112518184602087016110f0565b9190910192915050565b60006020828403121561126d57600080fd5b8151801515811461127d57600080fd5b9392505050565b60008154611291816111a4565b600182811680156112a957600181146112dc5761130b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061130b565b8560005260208060002060005b858110156113025781548a8201529084019082016112e9565b50505082870194505b5050505092915050565b7f676173207265706f72742022000000000000000000000000000000000000000081526000611347600c830184611284565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600061127d6020830184611114565b7f676173207265706f7274202200000000000000000000000000000000000000008152600082516113e581600c8501602087016110f0565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610e21576000816000526020600020601f850160051c810160208610156114715750805b601f850160051c820191505b818110156114905782815560010161147d565b505050505050565b815167ffffffffffffffff8111156114b2576114b2611419565b6114c6816114c084546111a4565b84611448565b602080601f8311600181146114fb57600084156114e35750858301515b600019600386901b1c1916600185901b178555611490565b600085815260208120601f198616915b8281101561152a5788860151825594840194600190910190840161150b565b50858210156115485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561159a5761159a611558565b92915050565b8082018082111561159a5761159a611558565b600061127d8284611284565b8181036115ca575050565b6115d482546111a4565b67ffffffffffffffff8111156115ec576115ec611419565b6115fa816114c084546111a4565b6000601f82116001811461162e57600083156116165750848201545b600019600385901b1c1916600184901b178455610b5f565b600085815260209020601f19841690600086815260209020845b838110156116685782860154825560019586019590910190602001611648565b50858310156115485793015460001960f8600387901b161c19169092555050600190811b01905550565b6000602082840312156116a457600080fd5b815167ffffffffffffffff808211156116bc57600080fd5b818401915084601f8301126116d057600080fd5b8151818111156116e2576116e2611419565b604051601f8201601f19908116603f0116810190838211818310171561170a5761170a611419565b8160405282815287602084870101111561172357600080fd5b6117348360208301602088016110f0565b979650505050505050565b7f474153205245504f52543a20000000000000000000000000000000000000000081526000835161177781600c8501602088016110f0565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516117b481600d8401602088016110f0565b01600d0194935050505056fea164736f6c6343000818000a8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175746273746f72650000000000000000005265736f757263654964730000000000a164736f6c6343000818000a","sourceMap":"1308:491:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1389:69;;;:::i;:::-;;2170:134:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1606::87;;;:::i;2939:133:8:-;;;:::i;2640:141::-;;;:::i;2456:178::-;;;:::i;:::-;;;;;;;:::i;2310:140::-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;1462:140:87:-;;;:::i;1875:141:8:-;;;:::i;1819:584:2:-;;;:::i;:::-;;;3957:14:102;;3950:22;3932:41;;3920:2;3905:18;1819:584:2;3792:187:102;2022:142:8;;;:::i;1572:26:2:-;;;;;;;;;1389:69:87;1427:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1419:5:87;:34;;;;-1:-1:-1;;;;;1419:34:87;;;;;;;;;;1389:69::o;2170:134:8:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2262:35:8;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;1606::87:-;1672:5;;:19;;;;;;;;1649:20;;-1:-1:-1;;;;;1672:5:87;;:17;;:19;;;;;;;;;;;;;;1649:20;1672:5;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1728:5;;1649:42;;-1:-1:-1;1697:38:87;;1649:42;;-1:-1:-1;;;;;1728:5:87;1697:8;:38::i;:::-;1643:97;1606:134::o;2939:133:8:-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3030:35:8;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2735:39:8;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;2456:178::-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2572:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;2310:140::-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2887:39:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1462:140:87;1526:5;;:27;;;;;;;;1503:20;;-1:-1:-1;;;;;1526:5:87;;:25;;:27;;;;;;;;;;;;;;1503:20;1526:5;:27;;;;;;;;;;;;;;1875:141:8;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:2;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:2;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;4918:74:102;;;2221:17:2;5008:18:102;;;5001:34;2196:43:2;;;;;;;;;4891:18:102;;;2196:43:2;;;-1:-1:-1;;1671:64:2;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:2;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:2:o;2022:142:8:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2118:39:8;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;3622:277:2:-;3690:1;-1:-1:-1;;;;;3685:6:2;:1;-1:-1:-1;;;;;3685:6:2;;3681:212;;3712:44;;;;;6257:2:102;6239:21;;;6296:2;6276:18;;;6269:30;6335:34;6330:2;6315:18;;6308:62;6406:7;6401:2;6386:18;;6379:35;6446:3;6431:19;;6055:401;3712:44:2;;;;;;;;3775:34;;;6673:21:102;;;6730:2;6710:18;;;6703:30;6769:12;6764:2;6749:18;;6742:40;-1:-1:-1;;;;;6856:55:102;;6849:4;6834:20;;6827:85;3775:34:2;;;;;;;6814:3:102;3775:34:2;;;3828;;;7135:21:102;;;7192:2;7172:18;;;7165:30;7231:12;7226:2;7211:18;;7204:40;-1:-1:-1;;;;;7318:55:102;;7311:4;7296:20;;7289:85;3828:34:2;;;;;;;7276:3:102;3828:34:2;;;3876:6;:4;:6::i;:::-;3622:277;;:::o;2409:432::-;2997:42;2985:55;3066:16;2452:359;;2652:67;;;1671:64;2652:67;;;7587:74:102;;;2677:17:2;7677:18:102;;;7670:34;;;;2712:4:2;7720:18:102;;;7713:34;2489:11:2;;1671:64;2586:43;;7560:18:102;;2652:67:2;;;-1:-1:-1;;2652:67:2;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:2;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:2;2820:7;:14;;;;;;;;2409:432::o;-1:-1:-1:-;;;;;;;;:::o;14:681:102:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:102;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:102;;14:681;-1:-1:-1;;;;;;14:681:102:o;700:1695::-;902:4;931:2;971;960:9;956:18;1001:2;990:9;983:21;1024:6;1059;1053:13;1090:6;1082;1075:22;1116:2;1106:12;;1149:2;1138:9;1134:18;1127:25;;1211:2;1201:6;1198:1;1194:14;1183:9;1179:30;1175:39;1249:2;1241:6;1237:15;1270:1;1291;1301:1065;1317:6;1312:3;1309:15;1301:1065;;;1386:22;;;-1:-1:-1;;1382:95:102;1370:108;;1501:13;;1588:9;;-1:-1:-1;;;;;1584:58:102;1569:74;;1682:11;;1676:18;1714:15;;;1707:27;;;1795:19;;1541:15;;;1827:24;;;1917:21;;;;1962:1;;1885:2;1873:15;;;1976:282;1992:8;1987:3;1984:17;1976:282;;;2073:15;;2090:66;2069:88;2055:103;;2227:17;;;;2020:1;2011:11;;;;;2184:14;;;;1976:282;;;-1:-1:-1;2344:12:102;;;;2281:5;-1:-1:-1;;;2309:15:102;;;;1343:1;1334:11;1301:1065;;;-1:-1:-1;2383:6:102;;700:1695;-1:-1:-1;;;;;;;;;700:1695:102:o;2400:250::-;2485:1;2495:113;2509:6;2506:1;2503:13;2495:113;;;2585:11;;;2579:18;2566:11;;;2559:39;2531:2;2524:10;2495:113;;;-1:-1:-1;;2642:1:102;2624:16;;2617:27;2400:250::o;2655:1132::-;2817:4;2846:2;2886;2875:9;2871:18;2916:2;2905:9;2898:21;2939:6;2974;2968:13;3005:6;2997;2990:22;3043:2;3032:9;3028:18;3021:25;;3105:2;3095:6;3092:1;3088:14;3077:9;3073:30;3069:39;3055:53;;3143:2;3135:6;3131:15;3164:1;3174:584;3188:6;3185:1;3182:13;3174:584;;;-1:-1:-1;;3265:9:102;3257:6;3253:22;3249:95;3244:3;3237:108;3374:6;3368:13;3416:2;3410:9;3447:8;3439:6;3432:24;3469:74;3534:8;3529:2;3521:6;3517:15;3512:2;3508;3504:11;3469:74;:::i;:::-;3600:2;3586:17;-1:-1:-1;;3582:90:102;3570:103;;;;3566:112;;;-1:-1:-1;3736:12:102;;;;3701:15;;;;3210:1;3203:9;3174:584;;;-1:-1:-1;3775:6:102;;2655:1132;-1:-1:-1;;;;;;;2655:1132:102:o;3984:313::-;4054:6;4107:2;4095:9;4086:7;4082:23;4078:32;4075:52;;;4123:1;4120;4113:12;4075:52;4155:9;4149:16;-1:-1:-1;;;;;4198:5:102;4194:54;4187:5;4184:65;4174:93;;4263:1;4260;4253:12;4174:93;4286:5;3984:313;-1:-1:-1;;;3984:313:102:o;4302:437::-;4381:1;4377:12;;;;4424;;;4445:61;;4499:4;4491:6;4487:17;4477:27;;4445:61;4552:2;4544:6;4541:14;4521:18;4518:38;4515:218;;4589:77;4586:1;4579:88;4690:4;4687:1;4680:15;4718:4;4715:1;4708:15;4515:218;;4302:437;;;:::o;5046:430::-;5243:66;5235:6;5231:79;5226:3;5219:92;5201:3;5340:6;5334:13;5356:74;5423:6;5419:1;5414:3;5410:11;5403:4;5395:6;5391:17;5356:74;:::i;:::-;5450:16;;;;5468:1;5446:24;;5046:430;-1:-1:-1;;;5046:430:102:o;5481:287::-;5610:3;5648:6;5642:13;5664:66;5723:6;5718:3;5711:4;5703:6;5699:17;5664:66;:::i;:::-;5746:16;;;;;5481:287;-1:-1:-1;;5481:287:102:o;5773:277::-;5840:6;5893:2;5881:9;5872:7;5868:23;5864:32;5861:52;;;5909:1;5906;5899:12;5861:52;5941:9;5935:16;5994:5;5987:13;5980:21;5973:5;5970:32;5960:60;;6016:1;6013;6006:12","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testDelegatecall()":"a1382b5a","testNoDelegatecall()":"227d7758"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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\":\"testDelegatecall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testNoDelegatecall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/StoreSwitch.t.sol\":\"StoreSwitchTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/gas-report/src/GasReporter.sol\":{\"keccak256\":\"0x2ce3fbd09098ce05ae68684405728c73470ff9ee8c9b1359ff230ecfa5d4d5dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7cf74103308e356e0f30d237f0fdc9864a9cee6a8bafe76baeb71f62b8c6d798\",\"dweb:/ipfs/QmTcACXKUxBZTwfdvJxiHiU8zXMzk732HUzcdiTU9vh55W\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"node_modules/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"node_modules/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"node_modules/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"node_modules/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"node_modules/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"node_modules/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"node_modules/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"node_modules/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"src/Store.sol\":{\"keccak256\":\"0x8dcf87de5dbb768ea776ba17498a19cf74fbc454b1dfb239d52e42b7eaeeff0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c868cb7b9f67cc71603aa86f1e5a38caff01133434067359fbfe816dd5562116\",\"dweb:/ipfs/QmWo8pkuJYYCzunTw2dHVKyP6DbwHFAD328Xay3tHApeGr\"]},\"src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"src/StoreKernel.sol\":{\"keccak256\":\"0xeeb12eb8f8254eea33f4d3b80504962733c191f7cd4f4b1bc3033237e648ff0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01b41567453f8f4f8c55b30d88d891b1ea87f2b5354ee8ce67ca58aedfb296ec\",\"dweb:/ipfs/QmZkGP7yKZUUnVxwAV4AVhHfc8Dnz1TtbyooeGBm33EUE7\"]},\"src/StoreRead.sol\":{\"keccak256\":\"0xb27eeadfa0075d2ac085b155e42e195b9bc6511640097af6646936f5ceb3afc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdca315a580d561a7ec3d488ad6ea6996a4611031218547d6b942c7654750a18\",\"dweb:/ipfs/QmUrW9strzNK1guqRZ7jRC4GZ9SvAraxah3rfsw4eBGjZM\"]},\"src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"test/StoreMock.sol\":{\"keccak256\":\"0x62f8499d3e156cdc90d081afbb836f1425698d24812dd479d6c299d0a2745b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0540c99beddefea43c509ec192f3fa4d8d885fdaf16fedb1e12fca72efd5bd67\",\"dweb:/ipfs/Qmaw9p8gW9RiQVMHM14L6K8TwiHgD7MWMrFbZ3nuW7WdHe\"]},\"test/StoreSwitch.t.sol\":{\"keccak256\":\"0xf8fff815f5e2f37995f0fa59b7c3d3c57203bc169c0c82c4815669869564fa24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7858715120e2483a9cd638ec799c3d7268906699c9ca5c6b7f5be4832e4b35da\",\"dweb:/ipfs/QmafHcJRmtoyNfoHkpoYxNePt8BswqJS8VTh8XcnT5bPu1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"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":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":"testDelegatecall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testNoDelegatecall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/StoreSwitch.t.sol":"StoreSwitchTest"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/gas-report/src/GasReporter.sol":{"keccak256":"0x2ce3fbd09098ce05ae68684405728c73470ff9ee8c9b1359ff230ecfa5d4d5dd","urls":["bzz-raw://7cf74103308e356e0f30d237f0fdc9864a9cee6a8bafe76baeb71f62b8c6d798","dweb:/ipfs/QmTcACXKUxBZTwfdvJxiHiU8zXMzk732HUzcdiTU9vh55W"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/forge-std/src/StdChains.sol":{"keccak256":"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6","urls":["bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d","dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx"],"license":"MIT"},"node_modules/forge-std/src/StdCheats.sol":{"keccak256":"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5","urls":["bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a","dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe"],"license":"MIT"},"node_modules/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/forge-std/src/StdInvariant.sol":{"keccak256":"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1","urls":["bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c","dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss"],"license":"MIT"},"node_modules/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"node_modules/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/forge-std/src/StdStorage.sol":{"keccak256":"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d","urls":["bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26","dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"],"license":"MIT"},"node_modules/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/forge-std/src/StdUtils.sol":{"keccak256":"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1","urls":["bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140","dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi"],"license":"MIT"},"node_modules/forge-std/src/Test.sol":{"keccak256":"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24","urls":["bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb","dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x"],"license":"MIT"},"node_modules/forge-std/src/Vm.sol":{"keccak256":"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5","urls":["bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c","dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"],"license":"MIT"},"node_modules/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"src/Store.sol":{"keccak256":"0x8dcf87de5dbb768ea776ba17498a19cf74fbc454b1dfb239d52e42b7eaeeff0d","urls":["bzz-raw://c868cb7b9f67cc71603aa86f1e5a38caff01133434067359fbfe816dd5562116","dweb:/ipfs/QmWo8pkuJYYCzunTw2dHVKyP6DbwHFAD328Xay3tHApeGr"],"license":"MIT"},"src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"src/StoreKernel.sol":{"keccak256":"0xeeb12eb8f8254eea33f4d3b80504962733c191f7cd4f4b1bc3033237e648ff0b","urls":["bzz-raw://01b41567453f8f4f8c55b30d88d891b1ea87f2b5354ee8ce67ca58aedfb296ec","dweb:/ipfs/QmZkGP7yKZUUnVxwAV4AVhHfc8Dnz1TtbyooeGBm33EUE7"],"license":"MIT"},"src/StoreRead.sol":{"keccak256":"0xb27eeadfa0075d2ac085b155e42e195b9bc6511640097af6646936f5ceb3afc6","urls":["bzz-raw://cdca315a580d561a7ec3d488ad6ea6996a4611031218547d6b942c7654750a18","dweb:/ipfs/QmUrW9strzNK1guqRZ7jRC4GZ9SvAraxah3rfsw4eBGjZM"],"license":"MIT"},"src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"test/StoreMock.sol":{"keccak256":"0x62f8499d3e156cdc90d081afbb836f1425698d24812dd479d6c299d0a2745b14","urls":["bzz-raw://0540c99beddefea43c509ec192f3fa4d8d885fdaf16fedb1e12fca72efd5bd67","dweb:/ipfs/Qmaw9p8gW9RiQVMHM14L6K8TwiHgD7MWMrFbZ3nuW7WdHe"],"license":"MIT"},"test/StoreSwitch.t.sol":{"keccak256":"0xf8fff815f5e2f37995f0fa59b7c3d3c57203bc169c0c82c4815669869564fa24","urls":["bzz-raw://7858715120e2483a9cd638ec799c3d7268906699c9ca5c6b7f5be4832e4b35da","dweb:/ipfs/QmafHcJRmtoyNfoHkpoYxNePt8BswqJS8VTh8XcnT5bPu1"],"license":"MIT"}},"version":1},"id":87}
|
1
|
+
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"testDelegatecall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testNoDelegatecall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"0x608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b50618f1f806100416000396000f3fe60806040523480156200001157600080fd5b5060043610620000f15760003560e01c806385226c811162000097578063b5508aa9116200006e578063b5508aa91462000188578063ba414fa61462000192578063e20c9f7114620001ad578063fa7626d414620001b757600080fd5b806385226c81146200015b578063916a17c61462000174578063a1382b5a146200017e57600080fd5b80633e5e3c2311620000cc5780633e5e3c23146200012e5780633f7286f4146200013857806366d9a9a0146200014257600080fd5b80630a9254e414620000f65780631ed7831c1462000102578063227d77581462000124575b600080fd5b62000100620001c5565b005b6200010c6200022b565b6040516200011b919062000cb2565b60405180910390f35b620001006200028f565b6200010c62000339565b6200010c6200039b565b6200014c620003fd565b6040516200011b919062000d01565b6200016562000505565b6040516200011b919062000df8565b6200014c620005df565b62000100620006de565b6200016562000743565b6200019c6200081d565b60405190151581526020016200011b565b6200010c62000969565b6000546200019c9060ff1681565b604051620001d39062000ca4565b604051809103906000f080158015620001f0573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200028557602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000266575b5050505050905090565b601f54604080517f102f59a900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163102f59a9916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000e76565b601f54909150620003369082906001600160a01b0316620009cb565b50565b6060600f80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620004e357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200048f5790505b5050505050815250508152602001906001019062000421565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5783829060005260206000200180546200054b9062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620005799062000ea8565b8015620005ca5780601f106200059e57610100808354040283529160200191620005ca565b820191906000526020600020905b815481529060010190602001808311620005ac57829003601f168201915b50505050508152602001906001019062000529565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620006c557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620006715790505b5050505050815250508152602001906001019062000603565b601f54604080517f0ca3976900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691630ca39769916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b60606010805480602002602001604051908101604052809291908181526020016000905b82821015620004fc578382906000526020600020018054620007899062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620007b79062000ea8565b8015620008085780601f10620007dc5761010080835404028352916020019162000808565b820191906000526020600020905b815481529060010190602001808311620007ea57829003601f168201915b50505050508152602001906001019062000767565b60008054610100900460ff16156200083e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620009645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091620008e6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162000efd565b60408051601f1981840301815290829052620009029162000f47565b6000604051808303816000865af19150503d806000811462000941576040519150601f19603f3d011682016040523d82523d6000602084013e62000946565b606091505b509150508080602001905181019062000960919062000f65565b9150505b919050565b6060600c80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b806001600160a01b0316826001600160a01b03161462000b59577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162000a6b9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b61646460408201527f726573735d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a160408051818152600a818301527f2020202020204c6566740000000000000000000000000000000000000000000060608201526001600160a01b038416602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a160408051818152600a818301527f202020202052696768740000000000000000000000000000000000000000000060608201526001600160a01b038316602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a162000b5962000b5d565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000c765760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262000c11929160200162000efd565b60408051601f198184030181529082905262000c2d9162000f47565b6000604051808303816000865af19150503d806000811462000c6c576040519150601f19603f3d011682016040523d82523d6000602084013e62000c71565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b617f898062000f8a83390190565b6020808252825182820181905260009190848201906040850190845b8181101562000cf55783516001600160a01b03168352928401929184019160010162000cce565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562000dc357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562000dad5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062000d69565b50978a0197955050509187019160010162000d2b565b50919998505050505050505050565b60005b8381101562000def57818101518382015260200162000dd5565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101562000e6957603f198886030184528151805180875262000e49818989018a850162000dd2565b601f01601f19169590950186019450928501929085019060010162000e1f565b5092979650505050505050565b60006020828403121562000e8957600080fd5b81516001600160a01b038116811462000ea157600080fd5b9392505050565b600181811c9082168062000ebd57607f821691505b60208210810362000ef7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162000f3981600485016020870162000dd2565b919091016004019392505050565b6000825162000f5b81846020870162000dd2565b9190910192915050565b60006020828403121562000f7857600080fd5b8151801515811462000ea157600080fdfe6080604052604051620000129062001ce3565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790553480156200005d57600080fd5b506200008460008051602062007f4983398151915280546001600160a01b03191630179055565b60405164191718171960d91b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2620000dd60008051602062007f4983398151915280546001600160a01b03191630179055565b620000e76200010f565b60008051602062007f4983398151915280546001600160a01b03191630179055620020ea565b565b6200013a7f746273746f72650000000000000000005461626c6573000000000000000000006200033a565b15620001a257604080517f746273746f72650000000000000000005461626c6573000000000000000000006020820181905291015b60408051601f198184030181529082905263dfaaf9cf60e01b825262000199929160040162001d45565b60405180910390fd5b620001bc60008051602062007f698339815191526200033a565b15620001e5576040805160008051602062007f698339815191526020820181905291016200016f565b620002867f746273746f72650000000000000000005461626c6573000000000000000000006503001811010160cd1b632001005f60d81b671800c097d7d7f13160ba1b62000232620003b7565b60405160200162000244919062001dbe565b60408051601f198184030181529190526200025e6200042a565b60405160200162000270919062001dbe565b60408051601f19818403018152919052620005bf565b620002e760008051602062007f69833981519152630101000160d81b632001005f60d81b6208080360dd1b620002bb62000695565b604051602001620002cd919062001dbe565b60408051601f198184030181529190526200025e620006fd565b620003147f746273746f72650000000000000000005461626c657300000000000000000000600162000761565b6200033060008051602062007f69833981519152600162000761565b6200010d620007fc565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062000376576200037662001dd3565b60209081029190910101526000620003a760008051602062007f698339815191528383630101000160d81b6200084d565b905060f881901c5b949350505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620003ce579050509050604051806040016040528060078152602001661d18589b19525960ca1b815250816000815181106200041c576200041c62001dd3565b602002602001018190525090565b60408051600580825260c08201909252606091816020015b6060815260200190600190039081620004425790505090506040518060400160405280600b81526020016a199a595b1913185e5bdd5d60aa1b8152508160008151811062000494576200049462001dd3565b6020026020010181905250604051806040016040528060098152602001686b6579536368656d6160b81b81525081600181518110620004d757620004d762001dd3565b60200260200101819052506040518060400160405280600b81526020016a76616c7565536368656d6160a81b815250816002815181106200051c576200051c62001dd3565b602002602001018190525060405180604001604052806012815260200171616269456e636f6465644b65794e616d657360701b8152508160038151811062000568576200056862001dd3565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106200041c576200041c62001dd3565b604080516020810187905280820186905260608082018690528251808303909101815260809091019091526000620005f8848462000889565b90506000620006088585620008a6565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811062000645576200064562001dd3565b6020908102919091010152620006897f746273746f72650000000000000000005461626c657300000000000000000000828686866503001811010160cd1b620008d5565b50505050505050505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620006ac5790505090506040518060400160405280600a8152602001691c995cdbdd5c98d9525960b21b815250816000815181106200041c576200041c62001dd3565b604080516001808252818301909252606091816020015b6060815260200190600190039081620007145790505090506040518060400160405280600681526020016565786973747360d01b815250816000815181106200041c576200041c62001dd3565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106200079a576200079a62001dd3565b602002602001018181525050620007f760008051602062007f6983398151915260001b82600085604051602001620007d991151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b62000bb5565b505050565b6200010d7f746273746f726500000000000000000053746f7265486f6f6b73000000000000600160e01b632001005f60d81b60db60d91b6200083d620003b7565b6200084762000bd5565b62000c38565b6000620008806200085f868662000ce3565b60ff858116601b0360080285901c166200087a858762000d3b565b62000d78565b95945050505050565b60006200089f8351835162000dce60201b60201c565b9392505050565b60608282604051602001620008bd92919062001de9565b60405160208183030381529060405290505b92915050565b611bdd60f21b866001600160f01b0319160362000921578560008051602062007f298339815191528686868660405162000913949392919062001e5a565b60405180910390a262000bad565b60006200092e8762000de3565b905060005b8151811015620009f057600082828151811062000954576200095462001dd3565b60209081029190910101519050620009786001600160581b03198216600162000e7b565b15620009e6576040516315c19b2760e21b8152606082901c906357066c9c90620009b1908c908c908c908c908c908c9060040162001eaa565b600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b505050505b5060010162000933565b508660008051602062007f298339815191528787878760405162000a18949392919062001e5a565b60405180910390a2600062000a2e888862000ce3565b9050600060208701905062000a4e82600089518462000ea060201b60201c565b600062000a5b8562000f69565b111562000aed57600062000a708a8a62000fae565b878155905060208601915060008060005b62000a8c8862000f69565b8160ff16101562000ae85762000aa48d8d8362001006565b925062000ac08a8260ff166028026038011c64ffffffffff1690565b915062000ad1836000848862000ea0565b62000add828662001f1f565b945060010162000a81565b505050505b60005b83518110156200068957600084828151811062000b115762000b1162001dd3565b6020908102919091010151905062000b356001600160581b03198216600262000e7b565b1562000ba357604051635b28cdaf60e01b8152606082901c90635b28cdaf9062000b6e908e908e908e908e908e908e9060040162001eaa565b600060405180830381600087803b15801562000b8957600080fd5b505af115801562000b9e573d6000803e3d6000fd5b505050505b5060010162000af0565b505050505050565b62000bce858562000bc7848762000d3b565b8562001070565b5050505050565b604080516001808252818301909252606091816020015b606081526020019060019003908162000bec57905050905060405180604001604052806005815260200164686f6f6b7360d81b815250816000815181106200041c576200041c62001dd3565b600062000c4462001294565b9050306001600160a01b0382160362000c6d5762000c67878787878787620012c3565b62000cda565b604051630ba51f4960e01b81526001600160a01b03821690630ba51f499062000ca5908a908a908a908a908a908a9060040162001f35565b600060405180830381600087803b15801562000cc057600080fd5b505af115801562000cd5573d6000803e3d6000fd5b505050505b50505050505050565b6000828260405160200162000cfa92919062001f83565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101562000d705762000d6560ff601b83900360080287901c168362001f1f565b915060010162000d40565b509392505050565b60006020821062000da25760208204840193506020828162000d9e5762000d9e62001fc1565b0691505b508254600882021b60208290038084111562000d70576001850154600882021c82179150509392505050565b606081901b603883901b838301171792915050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062000e205762000e2062001dd3565b6020908102919091010152600062000e5a7f746273746f726500000000000000000053746f7265486f6f6b73000000000000838362001670565b9050620003af62000e758260008451620016b160201b60201c565b62001725565b600060ff82168262000e8d8560581c90565b1660ff1614905092915050565b60200190565b821562000f22576020831062000ecf5760208304840193506020838162000ecb5762000ecb62001fc1565b0692505b821562000f225760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841162000f1357505062000f63565b50600194909401939182900391015b5b6020821062000f465780518455600190930192601f199091019060200162000f23565b811562000f635783548151600019600885021c9182169119161784555b50505050565b6000600860018062000f7e6002602062001fd7565b62000f8a919062001fd7565b62000f96919062001fd7565b62000fa2919062001fed565b8260ff911c1692915050565b6000828260405160200162000fc592919062001f83565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600083836040516020016200101d92919062001f83565b604051602081830303815290604052805190602001208260f81b6001600160f81b0319167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b611bdd60f21b846001600160f01b03191603620010ba578360008051602062007f09833981519152848484604051620010ac9392919062002007565b60405180910390a262000f63565b6000620010c8858562000ce3565b90506000620010d78662000de3565b905060005b815181101562001195576000828281518110620010fd57620010fd62001dd3565b60209081029190910101519050620011216001600160581b03198216600462000e7b565b156200118b5760405163964f667d60e01b8152606082901c9063964f667d9062001156908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200117157600080fd5b505af115801562001186573d6000803e3d6000fd5b505050505b50600101620010dc565b508560008051602062007f09833981519152868686604051620011bb9392919062002007565b60405180910390a2620011d88265ffffffffffff86168562001737565b60005b815181101562000cda576000828281518110620011fc57620011fc62001dd3565b60209081029190910101519050620012206001600160581b03198216600862000e7b565b156200128a5760405163a8ba872160e01b8152606082901c9063a8ba87219062001255908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200127057600080fd5b505af115801562001285573d6000803e3d6000fd5b505050505b50600101620011db565b60008051602062007f49833981519152546000906001600160a01b031680620012be573391505090565b919050565b613a3160f11b866001600160f01b03191614801590620012f25750611bdd60f21b866001600160f01b03191614155b156200133e57613a3160f11b86876040516020016200131391815260200190565b60408051601f19818403018152908290526331b4668360e01b82526200019993929160040162002085565b620013498562001756565b620013568460016200190b565b620013638360006200190b565b60e084901c60e885901c0160ff16825114620013ac5760e084901c60e885901c0160ff1682516040516301ee597360e31b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff16815114620013f45760e085901c60e886901c0160ff168151604051621f7b1360ea1b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614620014555760e085901c60e886901c0160ff1660e084901c60e885901c0160ff16604051631e53a9b160e31b81526004810192909252602482015260440162000199565b620014608562001a96565b6200146b8462001a96565b14620014aa576200147c8562001a96565b620014878462001a96565b6040516365cc0adf60e01b81526004810192909252602482015260440162000199565b620014b58562000f69565b620014c08462000f69565b14620014ff57620014d18562000f69565b620014dc8462000f69565b60405163edea958760e01b81526004810192909252602482015260440162000199565b60005b6200150d8662001a96565b8110156200159d576200153f62001525858362001aaa565b60c5811115620015395762001539620020ad565b62001ace565b6008601b8390030287901c60ff161462001594576008601b8290030286901c60ff166200157162001525868462001aaa565b6040516309531f6d60e21b81526004810192909252602482015260440162000199565b60010162001502565b506000620015c9613a3160f11b620015b58960101b90565b60101c6001600160f01b0319919091161790565b90506000620015e2611bdd60f21b620015b58a60101b90565b9050620015ef826200033a565b8062001601575062001601816200033a565b156200161c5787886040516020016200016f91815260200190565b62001659888888888860405160200162001637919062001dbe565b6040516020818303038152906040528860405160200162000270919062001dbe565b6200166688600162000761565b5050505050505050565b6060620003af6200168385858562001006565b6000620016ab8562001696898962001b30565b9060ff166028026038011c64ffffffffff1690565b62001b46565b600081831180620016c25750835182115b15620016e9578383836040516323230fa360e01b81526004016200019993929190620020c3565b60208401620016f9848262001f1f565b9050600062001709858562001fd7565b6001600160801b031660809290921b9190911795945050505050565b606060006200089f8360158362001b6b565b620007f783838351620017508562000e9a60201b60201c565b62000ea0565b80620017755760405163500cf26d60e11b815260040160405180910390fd5b6000620017828262000f69565b90506005811115620017b2576040516333c9efb160e11b8152600481018290526005602482015260440162000199565b6000620017bf8362001a96565b90506000620017cf838362001f1f565b9050601c811115620017ff5760405163ecd893b960e01b815260048101829052601c602482015260440162000199565b6000805b83811015620018805760ff601b82900360080287901c16600081900362001841576040516353b2dd0560e01b81526004810183905260240162000199565b60208111156200186857604051637237f23760e01b81526004810183905260240162000199565b62001874818462001f1f565b92505060010162001803565b506200188c8562001be3565b8114620018c3576200189e8562001be3565b6040516375d4b26f60e11b815260048101919091526024810182905260440162000199565b825b601c81101562000bad5760ff601b82900360080287901c1680156200190157604051631d8d44db60e01b81526004810183905260240162000199565b50600101620018c5565b8015801562001918575081155b156200193b5760405163d498615960e01b81526000600482015260240162000199565b6000620019488362000f69565b90506005811115620019715760405163d498615960e01b81526004810182905260240162000199565b60006200197e8462001a96565b905060006200198e838362001f1f565b9050601c811115620019b75760405163d498615960e01b81526004810182905260240162000199565b6000805b8381101562001a12576000620019d662001525898462001aaa565b905080600003620019fa576040516307a25a1160e51b815260040160405180910390fd5b62001a06818462001f1f565b925050600101620019bb565b5062001a1e8662001be3565b811462001a4d5762001a308662001be3565b60405163d498615960e01b81526004016200019991815260200190565b825b8281101562000cda57600062001a6a62001525898462001aaa565b9050801562001a8c576040516307a25a1160e51b815260040160405180910390fd5b5060010162001a4f565b60006008600162000f8a6002602062001fd7565b6000601b8290036008028360ff911c1660c58111156200089f576200089f620020ad565b6000808260c581111562001ae65762001ae6620020ad565b60ff169050606181101562001b0157601f1660010192915050565b60618360c581111562001b185762001b18620020ad565b0362001b275750601492915050565b50600092915050565b60006200089f62001b42848462000fae565b5490565b60405160208101601f19603f848401011660405282825262000d708585858462001c0a565b6060600062001b7a8560801c90565b90506001600160801b038516600085828162001b9a5762001b9a62001fc1565b04905060405193506020840160208202810160405281855260005b8281101562001bd7578451871c82529387019360209091019060010162001bb5565b50505050509392505050565b6000600862001bf56002602062001fd7565b62001c01919062001fed565b9190911c919050565b821562001c9b576020831062001c395760208304840193506020838162001c355762001c3562001fc1565b0692505b821562001c9b57602083900360008184101562001c5f5750600019600884021c62001c69565b50600019600882021c5b8554600886021b81845116821982161784525081841162001c8c57505062000f63565b50600194909401939182900391015b5b6020821062001cbf5783548152600190930192601f199091019060200162001c9c565b811562000f63576000600019600884021c8251865482191691161782525050505050565b61180e80620066fb83390190565b60005b8381101562001d0e57818101518382015260200162001cf4565b50506000910152565b6000815180845262001d3181602086016020860162001cf1565b601f01601f19169290920160200192915050565b828152604060208201526000620003af604083018462001d17565b60008282518085526020808601955060208260051b8401016020860160005b8481101562001db157601f1986840301895262001d9e83835162001d17565b9884019892509083019060010162001d7f565b5090979650505050505050565b6020815260006200089f602083018462001d60565b634e487b7160e01b600052603260045260246000fd5b6000835162001dfd81846020880162001cf1565b83519083019062001e1381836020880162001cf1565b01949350505050565b60008151808452602080850194506020840160005b8381101562001e4f5781518752958201959082019060010162001e31565b509495945050505050565b60808152600062001e6f608083018762001e1c565b828103602084015262001e83818762001d17565b9050846040840152828103606084015262001e9f818562001d17565b979650505050505050565b86815260c06020820152600062001ec560c083018862001e1c565b828103604084015262001ed9818862001d17565b9050856060840152828103608084015262001ef5818662001d17565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008cf57620008cf62001f09565b86815285602082015284604082015283606082015260c06080820152600062001f6260c083018562001d60565b82810360a084015262001f76818562001d60565b9998505050505050505050565b8281526000602080830184516020860160005b8281101562001fb45781518452928401929084019060010162001f96565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b81810381811115620008cf57620008cf62001f09565b8082028115828204841417620008cf57620008cf62001f09565b6060815260006200201c606083018662001e1c565b65ffffffffffff8516602084015282810360408401526200203e818562001d17565b9695505050505050565b84815260806020820152600062002063608083018662001e1c565b65ffffffffffff85166040840152828103606084015262001e9f818562001d17565b61ffff60f01b8416815282602082015260606040820152600062000880606083018462001d17565b634e487b7160e01b600052602160045260246000fd5b606081526000620020d8606083018662001d17565b60208301949094525060400152919050565b61460180620020fa6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063505a181d11610104578063c1122229116100a2578063d9c03a0411610071578063d9c03a0414610406578063dbbf0e2114610419578063e228a4a31461042c578063ef6ea8621461043f57600080fd5b8063c1122229146103a7578063cc49db7e146103cd578063d03edb8c146103e0578063d4285dc2146103f357600080fd5b80639f1fcf0a116100de5780639f1fcf0a1461035b578063a53417ed1461036e578063b047c1eb14610381578063c0a2895a1461039457600080fd5b8063505a181d14610322578063530f4b60146103355780638c364d591461034857600080fd5b80631e78897711610171578063390baae01161014b578063390baae0146102b95780633a77c2c2146102cc578063419b58fd146102ed5780634dc77d971461030f57600080fd5b80631e78897714610280578063298314fb146102935780633708196e146102a657600080fd5b80630ca39769116101ad5780630ca3976914610225578063102f59a914610252578063114a72661461025a578063150f32621461026d57600080fd5b806305242d2f146101d457806305609129146101fd5780630ba51f4914610212575b600080fd5b6101e76101e23660046137b8565b610452565b6040516101f4919061386e565b60405180910390f35b61021061020b3660046138a6565b61049f565b005b6102106102203660046138d6565b6104ad565b61022d6104d7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61022d610626565b6102106102683660046139ae565b6106e6565b61021061027b3660046139ae565b610761565b6101e761028e366004613a3b565b6107d4565b6102106102a1366004613a99565b61081e565b6102106102b4366004613b32565b6108c5565b6102106102c7366004613b32565b610943565b6102df6102da366004613bc8565b6109b8565b6040519081526020016101f4565b6103006102fb366004613be1565b6109c9565b6040516101f493929190613c34565b6101e761031d366004613d39565b610a1e565b610210610330366004613da2565b610a2d565b610210610343366004613de9565b610a37565b6102df6103563660046137b8565b610a47565b6102df610369366004613e27565b610a8a565b6102df61037c366004613e86565b610aa0565b61021061038f366004613ed4565b610ab7565b6102106103a2366004613f63565b610b2a565b7f322e302e320000000000000000000000000000000000000000000000000000006102df565b6103006103db366004613ff0565b610ba0565b6101e76103ee366004613a3b565b610bf2565b6102df610401366004613bc8565b610c33565b6102106104143660046137b8565b610c3e565b6102df610427366004613e86565b610c86565b6102df61043a366004613bc8565b610c93565b61021061044d3660046139ae565b610c9e565b606061049586868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250879150610d119050565b9695505050505050565b6104a98282610d56565b5050565b6104cd888888886104be888a61403c565b6104c8878961403c565b610d81565b5050505050505050565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff9091169161055a9190614107565b600060405180830381855af49150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b606091505b50915091508161060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f64656c656761746563616c6c206661696c65640000000000000000000000000060448201526064015b60405180910390fd5b8080602001905181019061061f9190614123565b9250505090565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff909116916106a99190614107565b6000604051808303816000865af19150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061122a92505050565b505050505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061124592505050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611280915050565b95945050505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506112ba92505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506112d0915050565b50505050505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611313915050565b60006109c382611328565b92915050565b606060006060610a0e878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506113ad915050565b9250925092509450945094915050565b606061049586868686866114b5565b6104a982826115b8565b610a428383836115cb565b505050565b6000610495868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116b99050565b6000610815858585856116e6565b949350505050565b6000610aad84848461172e565b90505b9392505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061174492505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506119c492505050565b606060006060610be3868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119dc92505050565b92509250925093509350939050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611a02915050565b60006109c382611a18565b610c7f85858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250869150611a4b9050565b5050505050565b6000610aad848484611aa4565b60006109c382611ab4565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611ada92505050565b6060610d1c82611b15565b8360ff161015610d3957610d3285858585611b47565b9050610a98565b610d328585610d4785611b15565b610d519087614156565b611280565b6104a97f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611b74565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610ddf5750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610e4057613a3160f11b8687604051602001610dfe91815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261060293929160040161416f565b610e4985611cb5565b610e54846001611efc565b610e5f836000611efc565b60e084901c60e885901c0160ff16825114610ebf5760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff16815114610f1f5760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610f975760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b610fa085611b15565b610fa984611b15565b14610ffb57610fb785611b15565b610fc084611b15565b6040517f65cc0adf00000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b61100485612098565b61100d84612098565b1461105f5761101b85612098565b61102484612098565b6040517fedea958700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60005b61106b86611b15565b8110156111065761109561107f85836120b5565b60c5811115611090576110906141b0565b6120d6565b6008601b8390030287901c60ff16146110fe576008601b8290030286901c60ff166110c361107f86846120b5565b6040517f254c7db400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600101611062565b506000611148613a3160f11b61111c8960101b90565b60101c7fffff000000000000000000000000000000000000000000000000000000000000919091161790565b9050600061115f611bdd60f21b61111c8a60101b90565b905061116a82612130565b80611179575061117981612130565b156111d357878860405160200161119291815260200190565b60408051601f19818403018152908290527fdfaaf9cf00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b61121f88888888886040516020016111eb91906141df565b6040516020818303038152906040528860405160200161120b91906141df565b6040516020818303038152906040526121cd565b6104cd8860016122b0565b61123f8484848461123a89611328565b6112d0565b50505050565b60006112518585612369565b9050600061126e828560ff166028026038011c64ffffffffff1690565b9050610759868686846000888861237c565b6060610aad611290858585612758565b60006112b5856112a08989612369565b9060ff166028026038011c64ffffffffff1690565b6127d8565b610c7f85858585856112cb8b611328565b612803565b6112d981611b15565b8360ff1610156112f5576112f08585858585611313565b610c7f565b610c7f858561130384611b15565b61130d9087614156565b85611ada565b610c7f85856113228487612b21565b85611744565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161137757507e60030220202000000000000000000000000000000000000000000000000000919050565b6109c36113a47f746273746f72650000000000000000005461626c65730000000000000000000084612b52565b60206000612bab565b60606000606060006113be85612bfc565b90506113cb878783612c1f565b935060006113d886612098565b905080156114aa576113ea8888612369565b935066ffffffffffffff841667ffffffffffffffff81111561140e5761140e613c5f565b6040519080825280601f01601f191660200182016040528015611438576020820181803683370190505b5092506020830160005b828160ff1610156114a757600061145a8b8b84612758565b90506000611477888460ff166028026038011c64ffffffffff1690565b90506114868260008387612c58565b6114908185614261565b93505050808061149f90614274565b915050611442565b50505b505093509350939050565b6060818311156114fb576040517fa8c547820000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610602565b60006115078787612369565b90506000611524828760ff166028026038011c64ffffffffff1690565b9050808510158061153457508084115b1561158f5780818610156115525761154d600186614293565b611554565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600061159c898989612758565b90506115ab81878888036127d8565b9998505050505050505050565b6104a982826115c685611328565b612d24565b613a3160f11b837fffff000000000000000000000000000000000000000000000000000000000000161461161357613a3160f11b8384604051602001610dfe91815260200190565b61161c83612130565b61167557828360405160200161163491815260200190565b60408051601f19818403018152908290527f41e713ad00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b610a42837fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166bff0000000000000000000000605885901b1617613008565b60006108156116c886866130c1565b60ff858116601b0360080285901c166116e18587612b21565b612bab565b6000806116f283611b15565b90508060ff168460ff16101561171a5760ff848116601b0360080284901c165b915050610a98565b61171286866117298488614156565b611aa4565b6000610aad84848461173f88611328565b6116e6565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036117b357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516117a6939291906142e2565b60405180910390a261123f565b60006117bf85856130c1565b905060006117cc866130d6565b905060005b81518110156118a15760008282815181106117ee576117ee614315565b6020026020010151905061181a6004826affffffffffffffffffffff191661315f90919063ffffffff16565b15611898576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611865908b908b908b908b9060040161432b565b600060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050505b506001016117d1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516118d6939291906142e2565b60405180910390a26118f1828565ffffffffffff168561317d565b60005b815181101561093a57600082828151811061191157611911614315565b6020026020010151905061193d6008826affffffffffffffffffffff191661315f90919063ffffffff16565b156119bb576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611988908b908b908b908b9060040161432b565b600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050505b506001016118f4565b6107598686868686866119d78d8d612369565b61237c565b6060600060606119f585856119f088611328565b6113ad565b9250925092509250925092565b6060610aad848484611a1388611328565b610d11565b6000611a2382613193565b9050611a2e82612130565b611a4657818260405160200161163491815260200190565b919050565b6000611a578585612369565b90506000611a74828560ff166028026038011c64ffffffffff1690565b9050610759868686611a8d8764ffffffffff8716614293565b60408051600081526020810190915288908861237c565b6000610aad826112a08686612369565b6000611abf82613225565b905080611a4657818260405160200161163491815260200190565b6000611ae68585612369565b90506000611b03828560ff166028026038011c64ffffffffff1690565b9050610759868686600085888861237c565b600060086001611b2760026020614293565b611b319190614293565b611b3b919061436f565b8260ff911c1692915050565b6060610815611b5686866130c1565b611b608486612b21565b60ff868116601b0360080286901c166127d8565b6000611b8084846132b7565b90506000815167ffffffffffffffff811115611b9e57611b9e613c5f565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b5090506000805b8351811015611ca6578473ffffffffffffffffffffffffffffffffffffffff16611c1f858381518110611c0357611c03614315565b60200260200101516affffffffffffffffffffff191660601c90565b73ffffffffffffffffffffffffffffffffffffffff1614611c9e57838181518110611c4c57611c4c614315565b6020026020010151838381518110611c6657611c66614315565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611bce565b5080825261075986868461331d565b80611cec576040517fa019e4da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf782612098565b90506005811115611d3e576040517f6793df620000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610602565b6000611d4983611b15565b90506000611d578383614261565b9050601c811115611d9e576040517fecd893b900000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610602565b6000805b83811015611e495760ff601b82900360080287901c166000819003611df6576040517f53b2dd0500000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b6020811115611e34576040517f7237f23700000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b611e3e8184614261565b925050600101611da2565b50611e5385612bfc565b8114611e9f57611e6285612bfc565b6040517feba964de000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610602565b825b601c8110156107595760ff601b82900360080287901c168015611ef3576040517f1d8d44db00000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b50600101611ea1565b80158015611f08575081155b15611f295760405163d498615960e01b815260006004820152602401610602565b6000611f3483612098565b90506005811115611f5b5760405163d498615960e01b815260048101829052602401610602565b6000611f6684611b15565b90506000611f748383614261565b9050601c811115611f9b5760405163d498615960e01b815260048101829052602401610602565b6000805b83811015612007576000611fb661107f89846120b5565b905080600003611ff2576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ffc8184614261565b925050600101611f9f565b5061201186612bfc565b811461203c5761202086612bfc565b60405163d498615960e01b815260040161060291815260200190565b825b8281101561093a57600061205561107f89846120b5565b9050801561208f576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161203e565b600060086001806120ab60026020614293565b611b279190614293565b6000601b8290036008028360ff911c1660c5811115610ab057610ab06141b0565b6000808260c58111156120eb576120eb6141b0565b60ff169050606181101561210557601f1660010192915050565b60618360c5811115612119576121196141b0565b036121275750601492915050565b50600092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061216957612169614315565b602090810291909101015260006121c17f746273746f72650000000000000000005265736f75726365496473000000000083837e010100010000000000000000000000000000000000000000000000000000006116b9565b9050610a988160f81c90565b6040805160208101879052808201869052606080820186905282518083039091018152608090910190915260006122048484613374565b905060006122128585613391565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811061224c5761224c614315565b60209081029190910101526122a47f746273746f72650000000000000000005461626c657300000000000000000000828686867e60030220202000000000000000000000000000000000000000000000000000612803565b50505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106122e6576122e6614315565b602002602001018181525050610a427f746273746f72650000000000000000005265736f75726365496473000000000060001b8260008560405160200161233491151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611313565b6000610ab061237884846133bd565b5490565b613a3160f11b877fffff00000000000000000000000000000000000000000000000000000000000016146123c457613a3160f11b8788604051602001610dfe91815260200190565b60006123df828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836123f89190614293565b6124029190614261565b905080821415801561242457508161241a8688614386565b64ffffffffff1614155b15612474576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610602565b818664ffffffffff1611156124c5576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610602565b60006124d2848984613413565b905060006124df8b6130d6565b905060005b81518110156125b757600082828151811061250157612501614315565b6020026020010151905061252d6010826affffffffffffffffffffff191661315f90919063ffffffff16565b156125ae57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161257b97969594939291906143ab565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b505050505b506001016124e4565b5064ffffffffff881660005b8a60ff168160ff1610156125f6576125ea878260ff166028026038011c64ffffffffff1690565b909101906001016125c3565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161263196959493929190614409565b60405180910390a25082841461265257600061264d8c8c6133bd565b839055505b600061265f8c8c8c612758565b9050612673818a64ffffffffff168961317d565b5060005b815181101561274a57600082828151811061269457612694614315565b602002602001015190506126c06020826affffffffffffffffffffff191661315f90919063ffffffff16565b1561274157606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161270e97969594939291906143ab565b600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b50600101612677565b505050505050505050505050565b6000838360405160200161276d929190614458565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f84840101166040528282526127fb85858584612c58565b509392505050565b611bdd60f21b867fffff000000000000000000000000000000000000000000000000000000000000160361287457857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516128679493929190614494565b60405180910390a2610759565b600061287f876130d6565b905060005b81518110156129585760008282815181106128a1576128a1614315565b602002602001015190506128cd6001826affffffffffffffffffffff191661315f90919063ffffffff16565b1561294f576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061291c908c908c908c908c908c908c906004016144d3565b600060405180830381600087803b15801561293657600080fd5b505af115801561294a573d6000803e3d6000fd5b505050505b50600101612884565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161298f9493929190614494565b60405180910390a260006129a388886130c1565b905060006020870190506129bb8260008951846134e1565b60006129c685612098565b1115612a4a5760006129d88a8a6133bd565b878155905060208601915060008060005b6129f288612098565b8160ff161015612a4557612a078d8d83612758565b9250612a228a8260ff166028026038011c64ffffffffff1690565b9150612a3183600084886134e1565b612a3b8286614261565b94506001016129e9565b505050505b60005b83518110156122a4576000848281518110612a6a57612a6a614315565b60200260200101519050612a966002826affffffffffffffffffffff191661315f90919063ffffffff16565b15612b18576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612ae5908e908e908e908e908e908e906004016144d3565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b505050505b50600101612a4d565b600080805b8360ff168110156127fb57612b4860ff601b83900360080287901c1683614261565b9150600101612b26565b60408051602081018490529081018290526000906060015b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612bd157602082048401935060208281612bcd57612bcd61452c565b0691505b508254600882021b6020829003808411156127fb576001850154600882021c82179150509392505050565b60006008612c0c60026020614293565b612c16919061436f565b9190911c919050565b606081600003612c3e5750604080516020810190915260008152610ab0565b6000612c4a85856130c1565b9050610815816000856127d8565b8215612cdf5760208310612c8257602083048401935060208381612c7e57612c7e61452c565b0692505b8215612cdf576020839003600081841015612ca55750600019600884021c612caf565b50600019600882021c5b8554600886021b818451168219821617845250818411612cd057505061123f565b50600194909401939182900391015b5b60208210612d015783548152600190930192601f1990910190602001612ce0565b811561123f576000600019600884021c8251865482191691161782525050505050565b611bdd60f21b837fffff0000000000000000000000000000000000000000000000000000000000001603612d8f57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612d829190614542565b60405180910390a2505050565b6000612d9a846130d6565b905060005b8151811015612e6d576000828281518110612dbc57612dbc614315565b60200260200101519050612de86040826affffffffffffffffffffff191661315f90919063ffffffff16565b15612e64576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612e3190899089908990600401614555565b600060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050505b50600101612d9f565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612e9e9190614542565b60405180910390a26000612eb285856130c1565b9050612f0b816000612ec386612bfc565b67ffffffffffffffff811115612edb57612edb613c5f565b6040519080825280601f01601f191660200182016040528015612f05576020820181803683370190505b5061317d565b6000612f1684612098565b1115612f37576000612f2886866133bd565b9050612f358160206135a0565b505b60005b8251811015610759576000838281518110612f5757612f57614315565b60200260200101519050612f836080826affffffffffffffffffffff191661315f90919063ffffffff16565b15612fff576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90612fcc908a908a908a90600401614555565b600060405180830381600087803b158015612fe657600080fd5b505af1158015612ffa573d6000803e3d6000fd5b505050505b50600101612f3a565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061303e5761303e614315565b602002602001018181525050610a427f746273746f726500000000000000000053746f7265486f6f6b7300000000000060001b826000856040516020016130ad91907fffffffffffffffffffffffffffffffffffffffffff000000000000000000000091909116815260150190565b604051602081830303815290604052611245565b60008282604051602001612b6a929190614458565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061311057613110614315565b602090810291909101015260006131487f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611280565b9050610a9861315a82600084516135dd565b61366b565b60008160ff16826131708560581c90565b1660ff1614905092915050565b610a428383835161318e8560200190565b6134e1565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106131cc576131cc614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360017e600302202020000000000000000000000000000000000000000000000000006116b9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061325e5761325e614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360027e600302202020000000000000000000000000000000000000000000000000006116b9565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132f1576132f1614315565b602002602001018181525050600061330b85836000611280565b905061081561315a82600084516135dd565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061335357613353614315565b60200260200101818152505061123f8482600061336f8661367c565b611ada565b8151815160009181810160389190911b1760609190911b17610ab0565b606082826040516020016133a692919061457e565b604051602081830303815290604052905092915050565b600082826040516020016133d2929190614458565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115613457576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106134895780850382019150613491565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561355b576020831061350b576020830484019350602083816135075761350761452c565b0692505b821561355b5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161354c57505061123f565b50600194909401939182900391015b5b6020821061357d5780518455600190930192601f199091019060200161355c565b811561123f576000600019600884021c8554835182191691161785555050505050565b600060206135af83601f614261565b6135b991906145ad565b6135c39084614261565b90505b80831015610a4257600083556001830192506135c6565b6000818311806135ed5750835182115b1561362a578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610602939291906145cf565b602084016136388482614261565b905060006136468585614293565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610ab0836015600061368c565b606081610ab08160156000613707565b6060600061369a8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816136c0576136c061452c565b04905060405193506020840160208202810160405281855260005b828110156136fb578451871c8252938701936020909101906001016136db565b50505050509392505050565b82516060906000613718858361436f565b9050604051925060208301601f19603f83860101166040528184526000602088015b848210156136fb578051871b8352918701916001919091019060200161373a565b60008083601f84011261376d57600080fd5b50813567ffffffffffffffff81111561378557600080fd5b6020830191508360208260051b85010111156137a057600080fd5b9250929050565b803560ff81168114611a4657600080fd5b6000806000806000608086880312156137d057600080fd5b85359450602086013567ffffffffffffffff8111156137ee57600080fd5b6137fa8882890161375b565b909550935061380d9050604087016137a7565b949793965091946060013592915050565b60005b83811015613839578181015183820152602001613821565b50506000910152565b6000815180845261385a81602086016020860161381e565b601f01601f19169290920160200192915050565b602081526000610ab06020830184613842565b73ffffffffffffffffffffffffffffffffffffffff811681146138a357600080fd5b50565b600080604083850312156138b957600080fd5b8235915060208301356138cb81613881565b809150509250929050565b60008060008060008060008060c0898b0312156138f257600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff8082111561392657600080fd5b6139328c838d0161375b565b909650945060a08b013591508082111561394b57600080fd5b506139588b828c0161375b565b999c989b5096995094979396929594505050565b60008083601f84011261397e57600080fd5b50813567ffffffffffffffff81111561399657600080fd5b6020830191508360208285010111156137a057600080fd5b600080600080600080608087890312156139c757600080fd5b86359550602087013567ffffffffffffffff808211156139e657600080fd5b6139f28a838b0161375b565b9097509550859150613a0660408a016137a7565b94506060890135915080821115613a1c57600080fd5b50613a2989828a0161396c565b979a9699509497509295939492505050565b60008060008060608587031215613a5157600080fd5b84359350602085013567ffffffffffffffff811115613a6f57600080fd5b613a7b8782880161375b565b9094509250613a8e9050604086016137a7565b905092959194509250565b60008060008060008060008060a0898b031215613ab557600080fd5b88359750602089013567ffffffffffffffff80821115613ad457600080fd5b613ae08c838d0161375b565b909950975060408b0135915080821115613af957600080fd5b613b058c838d0161396c565b909750955060608b0135945060808b0135915080821115613b2557600080fd5b506139588b828c0161396c565b600080600080600080600060a0888a031215613b4d57600080fd5b87359650602088013567ffffffffffffffff80821115613b6c57600080fd5b613b788b838c0161375b565b9098509650869150613b8c60408b016137a7565b955060608a0135915080821115613ba257600080fd5b50613baf8a828b0161396c565b989b979a50959894979596608090950135949350505050565b600060208284031215613bda57600080fd5b5035919050565b60008060008060608587031215613bf757600080fd5b84359350602085013567ffffffffffffffff811115613c1557600080fd5b613c218782880161375b565b9598909750949560400135949350505050565b606081526000613c476060830186613842565b84602084015282810360408401526104958185613842565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c9e57613c9e613c5f565b604052919050565b600067ffffffffffffffff821115613cc057613cc0613c5f565b5060051b60200190565b600082601f830112613cdb57600080fd5b81356020613cf0613ceb83613ca6565b613c75565b8083825260208201915060208460051b870101935086841115613d1257600080fd5b602086015b84811015613d2e5780358352918301918301613d17565b509695505050505050565b600080600080600060a08688031215613d5157600080fd5b85359450602086013567ffffffffffffffff811115613d6f57600080fd5b613d7b88828901613cca565b945050613d8a604087016137a7565b94979396509394606081013594506080013592915050565b60008060408385031215613db557600080fd5b82359150602083013567ffffffffffffffff811115613dd357600080fd5b613ddf85828601613cca565b9150509250929050565b600080600060608486031215613dfe57600080fd5b833592506020840135613e1081613881565b9150613e1e604085016137a7565b90509250925092565b60008060008060808587031215613e3d57600080fd5b84359350602085013567ffffffffffffffff811115613e5b57600080fd5b613e6787828801613cca565b935050613e76604086016137a7565b9396929550929360600135925050565b600080600060608486031215613e9b57600080fd5b83359250602084013567ffffffffffffffff811115613eb957600080fd5b613ec586828701613cca565b925050613e1e604085016137a7565b60008060008060008060808789031215613eed57600080fd5b86359550602087013567ffffffffffffffff80821115613f0c57600080fd5b613f188a838b0161375b565b90975095506040890135915065ffffffffffff82168214613f3857600080fd5b90935060608801359080821115613a1c57600080fd5b803564ffffffffff81168114611a4657600080fd5b60008060008060008060008060c0898b031215613f7f57600080fd5b88359750602089013567ffffffffffffffff80821115613f9e57600080fd5b613faa8c838d0161375b565b9099509750879150613fbe60408c016137a7565b9650613fcc60608c01613f4e565b9550613fda60808c01613f4e565b945060a08b0135915080821115613b2557600080fd5b60008060006040848603121561400557600080fd5b83359250602084013567ffffffffffffffff81111561402357600080fd5b61402f8682870161375b565b9497909650939450505050565b600061404a613ceb84613ca6565b80848252602080830192508560051b85013681111561406857600080fd5b855b818110156140fb57803567ffffffffffffffff8082111561408b5760008081fd5b90880190601f36818401126140a05760008081fd5b8235828111156140b2576140b2613c5f565b6140c387601f198484011601613c75565b925080835236878286010111156140dc57600091508182fd5b808785018885013760009083018701525086525093820193820161406a565b50919695505050505050565b6000825161411981846020870161381e565b9190910192915050565b60006020828403121561413557600080fd5b8151610ab081613881565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156109c3576109c3614140565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108156060830184613842565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610aad6040830184613842565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614254577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614242858351613842565b94509285019290850190600101614208565b5092979650505050505050565b808201808211156109c3576109c3614140565b600060ff821660ff810361428a5761428a614140565b60010192915050565b818103818111156109c3576109c3614140565b60008151808452602080850194506020840160005b838110156142d7578151875295820195908201906001016142bb565b509495945050505050565b6060815260006142f560608301866142a6565b65ffffffffffff8516602084015282810360408401526104958185613842565b634e487b7160e01b600052603260045260246000fd5b84815260806020820152600061434460808301866142a6565b65ffffffffffff8516604084015282810360608401526143648185613842565b979650505050505050565b80820281158282048414176109c3576109c3614140565b64ffffffffff8181168382160190808211156143a4576143a4614140565b5092915050565b87815260e0602082015260006143c460e08301896142a6565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526143fb8185613842565b9a9950505050505050505050565b60c08152600061441c60c08301896142a6565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526115ab8185613842565b8281526000602080830184516020860160005b828110156144875781518452928401929084019060010161446b565b5091979650505050505050565b6080815260006144a760808301876142a6565b82810360208401526144b98187613842565b905084604084015282810360608401526143648185613842565b86815260c0602082015260006144ec60c08301886142a6565b82810360408401526144fe8188613842565b905085606084015282810360808401526145188186613842565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601260045260246000fd5b602081526000610ab060208301846142a6565b83815260606020820152600061456e60608301856142a6565b9050826040830152949350505050565b6000835161459081846020880161381e565b8351908301906145a481836020880161381e565b01949350505050565b6000826145ca57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006145e26060830186613842565b6020830194909452506040015291905056fea164736f6c6343000818000a608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b506117cd806100416000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610163578063e20c9f711461017b578063fa7626d41461018357600080fd5b8063916a17c614610126578063b07ed3a91461012e578063b5508aa91461015b57600080fd5b80633f7286f4116100b25780633f7286f4146100f457806366d9a9a0146100fc57806385226c811461011157600080fd5b80631ed7831c146100ce5780633e5e3c23146100ec575b600080fd5b6100d6610190565b6040516100e39190610fbc565b60405180910390f35b6100d66101ff565b6100d661026c565b6101046102d9565b6040516100e39190611016565b6101196103ea565b6040516100e39190611140565b6101046104ba565b6101366105c2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e3565b610119610617565b61016b6106e7565b60405190151581526020016100e3565b6100d6610829565b60005461016b9060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156101f557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103c957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103765790505b505050505081525050815260200190600101906102fd565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461042d906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610459906111a4565b80156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50505050508152602001906001019061040e565b60606013805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105aa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105575790505b505050505081525050815260200190600101906104de565b60006106026040518060400160405280601181526020017f6765742053746f72652061646472657373000000000000000000000000000000815250610896565b61060a610b66565b9050610614610bad565b90565b60606010805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461065a906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906111a4565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b50505050508152602001906001019061063b565b60008054610100900460ff16156107075750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108245760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c65640000000000000000000000000000000000000000000000000000828401528251808303840181526060830190935260009290916107ac917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016111f7565b60408051601f19818403018152908290526107c69161123f565b6000604051808303816000865af19150503d8060008114610803576040519150601f19603f3d011682016040523d82523d6000602084013e610808565b606091505b5091505080806020019051810190610820919061125b565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061125b565b6109625750565b601b805461096f906111a4565b9050600014601b6040516020016109869190611315565b604051602081830303815290604052906109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b60405180910390fd5b50601d816040516109e7919061123f565b90815260200160405180910390205460001481604051602001610a0a91906113ad565b60405160208183030381529060405290610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b50601b610a5e8282611498565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610824573391505090565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c78919061125b565b610c7f5750565b600060a082601c54610c919190611587565b610c9b9190611587565b610ca69060016115a0565b905060008111610d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e277420757365206761730000000000000060448201526064016109cd565b80601d601b604051610d2491906115b3565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e35001610d71601b826115bf565b50610e05601b8054610d82906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906111a4565b8015610dfb5780601f10610dd057610100808354040283529160200191610dfb565b820191906000526020600020905b815481529060010190602001808311610dde57829003601f168201915b5050505050610e26565b604080516020810190915260008152601b90610e219082611498565b505050565b610f2c7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae601d84604051610e78919061123f565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252610ec19160040190815260200190565b600060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f069190810190611692565b82604051602001610f1892919061173f565b604051602081830303815290604052610f2f565b50565b610f2c81604051602401610f43919061139a565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6020808252825182820181905260009190848201906040850190845b8181101561100a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610fd8565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156110e157898403603f190186528251805173ffffffffffffffffffffffffffffffffffffffff168552880151888501889052805188860181905290890190839060608701905b808310156110cc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061108a565b50978a01979550505091870191600101611040565b50919998505050505050505050565b60005b8381101561110b5781810151838201526020016110f3565b50506000910152565b6000815180845261112c8160208601602086016110f0565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561119757603f19888603018452611185858351611114565b94509285019290850190600101611169565b5092979650505050505050565b600181811c908216806111b857607f821691505b6020821081036111f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff0000000000000000000000000000000000000000000000000000000083168152600082516112318160048501602087016110f0565b919091016004019392505050565b600082516112518184602087016110f0565b9190910192915050565b60006020828403121561126d57600080fd5b8151801515811461127d57600080fd5b9392505050565b60008154611291816111a4565b600182811680156112a957600181146112dc5761130b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061130b565b8560005260208060002060005b858110156113025781548a8201529084019082016112e9565b50505082870194505b5050505092915050565b7f676173207265706f72742022000000000000000000000000000000000000000081526000611347600c830184611284565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600061127d6020830184611114565b7f676173207265706f7274202200000000000000000000000000000000000000008152600082516113e581600c8501602087016110f0565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610e21576000816000526020600020601f850160051c810160208610156114715750805b601f850160051c820191505b818110156114905782815560010161147d565b505050505050565b815167ffffffffffffffff8111156114b2576114b2611419565b6114c6816114c084546111a4565b84611448565b602080601f8311600181146114fb57600084156114e35750858301515b600019600386901b1c1916600185901b178555611490565b600085815260208120601f198616915b8281101561152a5788860151825594840194600190910190840161150b565b50858210156115485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561159a5761159a611558565b92915050565b8082018082111561159a5761159a611558565b600061127d8284611284565b8181036115ca575050565b6115d482546111a4565b67ffffffffffffffff8111156115ec576115ec611419565b6115fa816114c084546111a4565b6000601f82116001811461162e57600083156116165750848201545b600019600385901b1c1916600184901b178455610b5f565b600085815260209020601f19841690600086815260209020845b838110156116685782860154825560019586019590910190602001611648565b50858310156115485793015460001960f8600387901b161c19169092555050600190811b01905550565b6000602082840312156116a457600080fd5b815167ffffffffffffffff808211156116bc57600080fd5b818401915084601f8301126116d057600080fd5b8151818111156116e2576116e2611419565b604051601f8201601f19908116603f0116810190838211818310171561170a5761170a611419565b8160405282815287602084870101111561172357600080fd5b6117348360208301602088016110f0565b979650505050505050565b7f474153205245504f52543a20000000000000000000000000000000000000000081526000835161177781600c8501602088016110f0565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516117b481600d8401602088016110f0565b01600d0194935050505056fea164736f6c6343000818000a8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175746273746f72650000000000000000005265736f757263654964730000000000a164736f6c6343000818000a","sourceMap":"1308:491:87:-:0;;;1572:26:2;;;1594:4;-1:-1:-1;;1572:26:2;;;;;;;;3126:44:5;;;;;;;;;;;228:9:0;186:51;;1308:491:87;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620000f15760003560e01c806385226c811162000097578063b5508aa9116200006e578063b5508aa91462000188578063ba414fa61462000192578063e20c9f7114620001ad578063fa7626d414620001b757600080fd5b806385226c81146200015b578063916a17c61462000174578063a1382b5a146200017e57600080fd5b80633e5e3c2311620000cc5780633e5e3c23146200012e5780633f7286f4146200013857806366d9a9a0146200014257600080fd5b80630a9254e414620000f65780631ed7831c1462000102578063227d77581462000124575b600080fd5b62000100620001c5565b005b6200010c6200022b565b6040516200011b919062000cb2565b60405180910390f35b620001006200028f565b6200010c62000339565b6200010c6200039b565b6200014c620003fd565b6040516200011b919062000d01565b6200016562000505565b6040516200011b919062000df8565b6200014c620005df565b62000100620006de565b6200016562000743565b6200019c6200081d565b60405190151581526020016200011b565b6200010c62000969565b6000546200019c9060ff1681565b604051620001d39062000ca4565b604051809103906000f080158015620001f0573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200028557602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000266575b5050505050905090565b601f54604080517f102f59a900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163102f59a9916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000e76565b601f54909150620003369082906001600160a01b0316620009cb565b50565b6060600f80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620004e357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200048f5790505b5050505050815250508152602001906001019062000421565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5783829060005260206000200180546200054b9062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620005799062000ea8565b8015620005ca5780601f106200059e57610100808354040283529160200191620005ca565b820191906000526020600020905b815481529060010190602001808311620005ac57829003601f168201915b50505050508152602001906001019062000529565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620004fc5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620006c557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620006715790505b5050505050815250508152602001906001019062000603565b601f54604080517f0ca3976900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691630ca39769916004808301926020929190829003018187875af1158015620002f4573d6000803e3d6000fd5b60606010805480602002602001604051908101604052809291908181526020016000905b82821015620004fc578382906000526020600020018054620007899062000ea8565b80601f0160208091040260200160405190810160405280929190818152602001828054620007b79062000ea8565b8015620008085780601f10620007dc5761010080835404028352916020019162000808565b820191906000526020600020905b815481529060010190602001808311620007ea57829003601f168201915b50505050508152602001906001019062000767565b60008054610100900460ff16156200083e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620009645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091620008e6917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162000efd565b60408051601f1981840301815290829052620009029162000f47565b6000604051808303816000865af19150503d806000811462000941576040519150601f19603f3d011682016040523d82523d6000602084013e62000946565b606091505b509150508080602001905181019062000960919062000f65565b9150505b919050565b6060600c80548060200260200160405190810160405280929190818152602001828054801562000285576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162000266575050505050905090565b806001600160a01b0316826001600160a01b03161462000b59577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162000a6b9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b61646460408201527f726573735d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a160408051818152600a818301527f2020202020204c6566740000000000000000000000000000000000000000000060608201526001600160a01b038416602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a160408051818152600a818301527f202020202052696768740000000000000000000000000000000000000000000060608201526001600160a01b038316602082015290517f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9181900360800190a162000b5962000b5d565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000c765760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262000c11929160200162000efd565b60408051601f198184030181529082905262000c2d9162000f47565b6000604051808303816000865af19150503d806000811462000c6c576040519150601f19603f3d011682016040523d82523d6000602084013e62000c71565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b617f898062000f8a83390190565b6020808252825182820181905260009190848201906040850190845b8181101562000cf55783516001600160a01b03168352928401929184019160010162000cce565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562000dc357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562000dad5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062000d69565b50978a0197955050509187019160010162000d2b565b50919998505050505050505050565b60005b8381101562000def57818101518382015260200162000dd5565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101562000e6957603f198886030184528151805180875262000e49818989018a850162000dd2565b601f01601f19169590950186019450928501929085019060010162000e1f565b5092979650505050505050565b60006020828403121562000e8957600080fd5b81516001600160a01b038116811462000ea157600080fd5b9392505050565b600181811c9082168062000ebd57607f821691505b60208210810362000ef7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162000f3981600485016020870162000dd2565b919091016004019392505050565b6000825162000f5b81846020870162000dd2565b9190910192915050565b60006020828403121562000f7857600080fd5b8151801515811462000ea157600080fdfe6080604052604051620000129062001ce3565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790553480156200005d57600080fd5b506200008460008051602062007f4983398151915280546001600160a01b03191630179055565b60405164191718171960d91b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2620000dd60008051602062007f4983398151915280546001600160a01b03191630179055565b620000e76200010f565b60008051602062007f4983398151915280546001600160a01b03191630179055620020ea565b565b6200013a7f746273746f72650000000000000000005461626c6573000000000000000000006200033a565b15620001a257604080517f746273746f72650000000000000000005461626c6573000000000000000000006020820181905291015b60408051601f198184030181529082905263dfaaf9cf60e01b825262000199929160040162001d45565b60405180910390fd5b620001bc60008051602062007f698339815191526200033a565b15620001e5576040805160008051602062007f698339815191526020820181905291016200016f565b620002867f746273746f72650000000000000000005461626c6573000000000000000000006503001811010160cd1b632001005f60d81b671800c097d7d7f13160ba1b62000232620003b7565b60405160200162000244919062001dbe565b60408051601f198184030181529190526200025e6200042a565b60405160200162000270919062001dbe565b60408051601f19818403018152919052620005bf565b620002e760008051602062007f69833981519152630101000160d81b632001005f60d81b6208080360dd1b620002bb62000695565b604051602001620002cd919062001dbe565b60408051601f198184030181529190526200025e620006fd565b620003147f746273746f72650000000000000000005461626c657300000000000000000000600162000761565b6200033060008051602062007f69833981519152600162000761565b6200010d620007fc565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062000376576200037662001dd3565b60209081029190910101526000620003a760008051602062007f698339815191528383630101000160d81b6200084d565b905060f881901c5b949350505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620003ce579050509050604051806040016040528060078152602001661d18589b19525960ca1b815250816000815181106200041c576200041c62001dd3565b602002602001018190525090565b60408051600580825260c08201909252606091816020015b6060815260200190600190039081620004425790505090506040518060400160405280600b81526020016a199a595b1913185e5bdd5d60aa1b8152508160008151811062000494576200049462001dd3565b6020026020010181905250604051806040016040528060098152602001686b6579536368656d6160b81b81525081600181518110620004d757620004d762001dd3565b60200260200101819052506040518060400160405280600b81526020016a76616c7565536368656d6160a81b815250816002815181106200051c576200051c62001dd3565b602002602001018190525060405180604001604052806012815260200171616269456e636f6465644b65794e616d657360701b8152508160038151811062000568576200056862001dd3565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106200041c576200041c62001dd3565b604080516020810187905280820186905260608082018690528251808303909101815260809091019091526000620005f8848462000889565b90506000620006088585620008a6565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811062000645576200064562001dd3565b6020908102919091010152620006897f746273746f72650000000000000000005461626c657300000000000000000000828686866503001811010160cd1b620008d5565b50505050505050505050565b604080516001808252818301909252606091816020015b6060815260200190600190039081620006ac5790505090506040518060400160405280600a8152602001691c995cdbdd5c98d9525960b21b815250816000815181106200041c576200041c62001dd3565b604080516001808252818301909252606091816020015b6060815260200190600190039081620007145790505090506040518060400160405280600681526020016565786973747360d01b815250816000815181106200041c576200041c62001dd3565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106200079a576200079a62001dd3565b602002602001018181525050620007f760008051602062007f6983398151915260001b82600085604051602001620007d991151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b62000bb5565b505050565b6200010d7f746273746f726500000000000000000053746f7265486f6f6b73000000000000600160e01b632001005f60d81b60db60d91b6200083d620003b7565b6200084762000bd5565b62000c38565b6000620008806200085f868662000ce3565b60ff858116601b0360080285901c166200087a858762000d3b565b62000d78565b95945050505050565b60006200089f8351835162000dce60201b60201c565b9392505050565b60608282604051602001620008bd92919062001de9565b60405160208183030381529060405290505b92915050565b611bdd60f21b866001600160f01b0319160362000921578560008051602062007f298339815191528686868660405162000913949392919062001e5a565b60405180910390a262000bad565b60006200092e8762000de3565b905060005b8151811015620009f057600082828151811062000954576200095462001dd3565b60209081029190910101519050620009786001600160581b03198216600162000e7b565b15620009e6576040516315c19b2760e21b8152606082901c906357066c9c90620009b1908c908c908c908c908c908c9060040162001eaa565b600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b505050505b5060010162000933565b508660008051602062007f298339815191528787878760405162000a18949392919062001e5a565b60405180910390a2600062000a2e888862000ce3565b9050600060208701905062000a4e82600089518462000ea060201b60201c565b600062000a5b8562000f69565b111562000aed57600062000a708a8a62000fae565b878155905060208601915060008060005b62000a8c8862000f69565b8160ff16101562000ae85762000aa48d8d8362001006565b925062000ac08a8260ff166028026038011c64ffffffffff1690565b915062000ad1836000848862000ea0565b62000add828662001f1f565b945060010162000a81565b505050505b60005b83518110156200068957600084828151811062000b115762000b1162001dd3565b6020908102919091010151905062000b356001600160581b03198216600262000e7b565b1562000ba357604051635b28cdaf60e01b8152606082901c90635b28cdaf9062000b6e908e908e908e908e908e908e9060040162001eaa565b600060405180830381600087803b15801562000b8957600080fd5b505af115801562000b9e573d6000803e3d6000fd5b505050505b5060010162000af0565b505050505050565b62000bce858562000bc7848762000d3b565b8562001070565b5050505050565b604080516001808252818301909252606091816020015b606081526020019060019003908162000bec57905050905060405180604001604052806005815260200164686f6f6b7360d81b815250816000815181106200041c576200041c62001dd3565b600062000c4462001294565b9050306001600160a01b0382160362000c6d5762000c67878787878787620012c3565b62000cda565b604051630ba51f4960e01b81526001600160a01b03821690630ba51f499062000ca5908a908a908a908a908a908a9060040162001f35565b600060405180830381600087803b15801562000cc057600080fd5b505af115801562000cd5573d6000803e3d6000fd5b505050505b50505050505050565b6000828260405160200162000cfa92919062001f83565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101562000d705762000d6560ff601b83900360080287901c168362001f1f565b915060010162000d40565b509392505050565b60006020821062000da25760208204840193506020828162000d9e5762000d9e62001fc1565b0691505b508254600882021b60208290038084111562000d70576001850154600882021c82179150509392505050565b606081901b603883901b838301171792915050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062000e205762000e2062001dd3565b6020908102919091010152600062000e5a7f746273746f726500000000000000000053746f7265486f6f6b73000000000000838362001670565b9050620003af62000e758260008451620016b160201b60201c565b62001725565b600060ff82168262000e8d8560581c90565b1660ff1614905092915050565b60200190565b821562000f22576020831062000ecf5760208304840193506020838162000ecb5762000ecb62001fc1565b0692505b821562000f225760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841162000f1357505062000f63565b50600194909401939182900391015b5b6020821062000f465780518455600190930192601f199091019060200162000f23565b811562000f635783548151600019600885021c9182169119161784555b50505050565b6000600860018062000f7e6002602062001fd7565b62000f8a919062001fd7565b62000f96919062001fd7565b62000fa2919062001fed565b8260ff911c1692915050565b6000828260405160200162000fc592919062001f83565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600083836040516020016200101d92919062001f83565b604051602081830303815290604052805190602001208260f81b6001600160f81b0319167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b611bdd60f21b846001600160f01b03191603620010ba578360008051602062007f09833981519152848484604051620010ac9392919062002007565b60405180910390a262000f63565b6000620010c8858562000ce3565b90506000620010d78662000de3565b905060005b815181101562001195576000828281518110620010fd57620010fd62001dd3565b60209081029190910101519050620011216001600160581b03198216600462000e7b565b156200118b5760405163964f667d60e01b8152606082901c9063964f667d9062001156908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200117157600080fd5b505af115801562001186573d6000803e3d6000fd5b505050505b50600101620010dc565b508560008051602062007f09833981519152868686604051620011bb9392919062002007565b60405180910390a2620011d88265ffffffffffff86168562001737565b60005b815181101562000cda576000828281518110620011fc57620011fc62001dd3565b60209081029190910101519050620012206001600160581b03198216600862000e7b565b156200128a5760405163a8ba872160e01b8152606082901c9063a8ba87219062001255908b908b908b908b9060040162002048565b600060405180830381600087803b1580156200127057600080fd5b505af115801562001285573d6000803e3d6000fd5b505050505b50600101620011db565b60008051602062007f49833981519152546000906001600160a01b031680620012be573391505090565b919050565b613a3160f11b866001600160f01b03191614801590620012f25750611bdd60f21b866001600160f01b03191614155b156200133e57613a3160f11b86876040516020016200131391815260200190565b60408051601f19818403018152908290526331b4668360e01b82526200019993929160040162002085565b620013498562001756565b620013568460016200190b565b620013638360006200190b565b60e084901c60e885901c0160ff16825114620013ac5760e084901c60e885901c0160ff1682516040516301ee597360e31b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff16815114620013f45760e085901c60e886901c0160ff168151604051621f7b1360ea1b81526004810192909252602482015260440162000199565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614620014555760e085901c60e886901c0160ff1660e084901c60e885901c0160ff16604051631e53a9b160e31b81526004810192909252602482015260440162000199565b620014608562001a96565b6200146b8462001a96565b14620014aa576200147c8562001a96565b620014878462001a96565b6040516365cc0adf60e01b81526004810192909252602482015260440162000199565b620014b58562000f69565b620014c08462000f69565b14620014ff57620014d18562000f69565b620014dc8462000f69565b60405163edea958760e01b81526004810192909252602482015260440162000199565b60005b6200150d8662001a96565b8110156200159d576200153f62001525858362001aaa565b60c5811115620015395762001539620020ad565b62001ace565b6008601b8390030287901c60ff161462001594576008601b8290030286901c60ff166200157162001525868462001aaa565b6040516309531f6d60e21b81526004810192909252602482015260440162000199565b60010162001502565b506000620015c9613a3160f11b620015b58960101b90565b60101c6001600160f01b0319919091161790565b90506000620015e2611bdd60f21b620015b58a60101b90565b9050620015ef826200033a565b8062001601575062001601816200033a565b156200161c5787886040516020016200016f91815260200190565b62001659888888888860405160200162001637919062001dbe565b6040516020818303038152906040528860405160200162000270919062001dbe565b6200166688600162000761565b5050505050505050565b6060620003af6200168385858562001006565b6000620016ab8562001696898962001b30565b9060ff166028026038011c64ffffffffff1690565b62001b46565b600081831180620016c25750835182115b15620016e9578383836040516323230fa360e01b81526004016200019993929190620020c3565b60208401620016f9848262001f1f565b9050600062001709858562001fd7565b6001600160801b031660809290921b9190911795945050505050565b606060006200089f8360158362001b6b565b620007f783838351620017508562000e9a60201b60201c565b62000ea0565b80620017755760405163500cf26d60e11b815260040160405180910390fd5b6000620017828262000f69565b90506005811115620017b2576040516333c9efb160e11b8152600481018290526005602482015260440162000199565b6000620017bf8362001a96565b90506000620017cf838362001f1f565b9050601c811115620017ff5760405163ecd893b960e01b815260048101829052601c602482015260440162000199565b6000805b83811015620018805760ff601b82900360080287901c16600081900362001841576040516353b2dd0560e01b81526004810183905260240162000199565b60208111156200186857604051637237f23760e01b81526004810183905260240162000199565b62001874818462001f1f565b92505060010162001803565b506200188c8562001be3565b8114620018c3576200189e8562001be3565b6040516375d4b26f60e11b815260048101919091526024810182905260440162000199565b825b601c81101562000bad5760ff601b82900360080287901c1680156200190157604051631d8d44db60e01b81526004810183905260240162000199565b50600101620018c5565b8015801562001918575081155b156200193b5760405163d498615960e01b81526000600482015260240162000199565b6000620019488362000f69565b90506005811115620019715760405163d498615960e01b81526004810182905260240162000199565b60006200197e8462001a96565b905060006200198e838362001f1f565b9050601c811115620019b75760405163d498615960e01b81526004810182905260240162000199565b6000805b8381101562001a12576000620019d662001525898462001aaa565b905080600003620019fa576040516307a25a1160e51b815260040160405180910390fd5b62001a06818462001f1f565b925050600101620019bb565b5062001a1e8662001be3565b811462001a4d5762001a308662001be3565b60405163d498615960e01b81526004016200019991815260200190565b825b8281101562000cda57600062001a6a62001525898462001aaa565b9050801562001a8c576040516307a25a1160e51b815260040160405180910390fd5b5060010162001a4f565b60006008600162000f8a6002602062001fd7565b6000601b8290036008028360ff911c1660c58111156200089f576200089f620020ad565b6000808260c581111562001ae65762001ae6620020ad565b60ff169050606181101562001b0157601f1660010192915050565b60618360c581111562001b185762001b18620020ad565b0362001b275750601492915050565b50600092915050565b60006200089f62001b42848462000fae565b5490565b60405160208101601f19603f848401011660405282825262000d708585858462001c0a565b6060600062001b7a8560801c90565b90506001600160801b038516600085828162001b9a5762001b9a62001fc1565b04905060405193506020840160208202810160405281855260005b8281101562001bd7578451871c82529387019360209091019060010162001bb5565b50505050509392505050565b6000600862001bf56002602062001fd7565b62001c01919062001fed565b9190911c919050565b821562001c9b576020831062001c395760208304840193506020838162001c355762001c3562001fc1565b0692505b821562001c9b57602083900360008184101562001c5f5750600019600884021c62001c69565b50600019600882021c5b8554600886021b81845116821982161784525081841162001c8c57505062000f63565b50600194909401939182900391015b5b6020821062001cbf5783548152600190930192601f199091019060200162001c9c565b811562000f63576000600019600884021c8251865482191691161782525050505050565b61180e80620066fb83390190565b60005b8381101562001d0e57818101518382015260200162001cf4565b50506000910152565b6000815180845262001d3181602086016020860162001cf1565b601f01601f19169290920160200192915050565b828152604060208201526000620003af604083018462001d17565b60008282518085526020808601955060208260051b8401016020860160005b8481101562001db157601f1986840301895262001d9e83835162001d17565b9884019892509083019060010162001d7f565b5090979650505050505050565b6020815260006200089f602083018462001d60565b634e487b7160e01b600052603260045260246000fd5b6000835162001dfd81846020880162001cf1565b83519083019062001e1381836020880162001cf1565b01949350505050565b60008151808452602080850194506020840160005b8381101562001e4f5781518752958201959082019060010162001e31565b509495945050505050565b60808152600062001e6f608083018762001e1c565b828103602084015262001e83818762001d17565b9050846040840152828103606084015262001e9f818562001d17565b979650505050505050565b86815260c06020820152600062001ec560c083018862001e1c565b828103604084015262001ed9818862001d17565b9050856060840152828103608084015262001ef5818662001d17565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008cf57620008cf62001f09565b86815285602082015284604082015283606082015260c06080820152600062001f6260c083018562001d60565b82810360a084015262001f76818562001d60565b9998505050505050505050565b8281526000602080830184516020860160005b8281101562001fb45781518452928401929084019060010162001f96565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b81810381811115620008cf57620008cf62001f09565b8082028115828204841417620008cf57620008cf62001f09565b6060815260006200201c606083018662001e1c565b65ffffffffffff8516602084015282810360408401526200203e818562001d17565b9695505050505050565b84815260806020820152600062002063608083018662001e1c565b65ffffffffffff85166040840152828103606084015262001e9f818562001d17565b61ffff60f01b8416815282602082015260606040820152600062000880606083018462001d17565b634e487b7160e01b600052602160045260246000fd5b606081526000620020d8606083018662001d17565b60208301949094525060400152919050565b61460180620020fa6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063505a181d11610104578063c1122229116100a2578063d9c03a0411610071578063d9c03a0414610406578063dbbf0e2114610419578063e228a4a31461042c578063ef6ea8621461043f57600080fd5b8063c1122229146103a7578063cc49db7e146103cd578063d03edb8c146103e0578063d4285dc2146103f357600080fd5b80639f1fcf0a116100de5780639f1fcf0a1461035b578063a53417ed1461036e578063b047c1eb14610381578063c0a2895a1461039457600080fd5b8063505a181d14610322578063530f4b60146103355780638c364d591461034857600080fd5b80631e78897711610171578063390baae01161014b578063390baae0146102b95780633a77c2c2146102cc578063419b58fd146102ed5780634dc77d971461030f57600080fd5b80631e78897714610280578063298314fb146102935780633708196e146102a657600080fd5b80630ca39769116101ad5780630ca3976914610225578063102f59a914610252578063114a72661461025a578063150f32621461026d57600080fd5b806305242d2f146101d457806305609129146101fd5780630ba51f4914610212575b600080fd5b6101e76101e23660046137b8565b610452565b6040516101f4919061386e565b60405180910390f35b61021061020b3660046138a6565b61049f565b005b6102106102203660046138d6565b6104ad565b61022d6104d7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b61022d610626565b6102106102683660046139ae565b6106e6565b61021061027b3660046139ae565b610761565b6101e761028e366004613a3b565b6107d4565b6102106102a1366004613a99565b61081e565b6102106102b4366004613b32565b6108c5565b6102106102c7366004613b32565b610943565b6102df6102da366004613bc8565b6109b8565b6040519081526020016101f4565b6103006102fb366004613be1565b6109c9565b6040516101f493929190613c34565b6101e761031d366004613d39565b610a1e565b610210610330366004613da2565b610a2d565b610210610343366004613de9565b610a37565b6102df6103563660046137b8565b610a47565b6102df610369366004613e27565b610a8a565b6102df61037c366004613e86565b610aa0565b61021061038f366004613ed4565b610ab7565b6102106103a2366004613f63565b610b2a565b7f322e302e320000000000000000000000000000000000000000000000000000006102df565b6103006103db366004613ff0565b610ba0565b6101e76103ee366004613a3b565b610bf2565b6102df610401366004613bc8565b610c33565b6102106104143660046137b8565b610c3e565b6102df610427366004613e86565b610c86565b6102df61043a366004613bc8565b610c93565b61021061044d3660046139ae565b610c9e565b606061049586868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250879150610d119050565b9695505050505050565b6104a98282610d56565b5050565b6104cd888888886104be888a61403c565b6104c8878961403c565b610d81565b5050505050505050565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff9091169161055a9190614107565b600060405180830381855af49150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b606091505b50915091508161060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f64656c656761746563616c6c206661696c65640000000000000000000000000060448201526064015b60405180910390fd5b8080602001905181019061061f9190614123565b9250505090565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb07ed3a90000000000000000000000000000000000000000000000000000000017905290518392839273ffffffffffffffffffffffffffffffffffffffff909116916106a99190614107565b6000604051808303816000865af19150503d8060008114610595576040519150601f19603f3d011682016040523d82523d6000602084013e61059a565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061122a92505050565b505050505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061124592505050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611280915050565b95945050505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506112ba92505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506112d0915050565b50505050505050565b61093a8787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611313915050565b60006109c382611328565b92915050565b606060006060610a0e878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506113ad915050565b9250925092509450945094915050565b606061049586868686866114b5565b6104a982826115b8565b610a428383836115cb565b505050565b6000610495868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116b99050565b6000610815858585856116e6565b949350505050565b6000610aad84848461172e565b90505b9392505050565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061174492505050565b6104cd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506119c492505050565b606060006060610be3868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119dc92505050565b92509250925093509350939050565b606061081585858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611a02915050565b60006109c382611a18565b610c7f85858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250869150611a4b9050565b5050505050565b6000610aad848484611aa4565b60006109c382611ab4565b6107598686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611ada92505050565b6060610d1c82611b15565b8360ff161015610d3957610d3285858585611b47565b9050610a98565b610d328585610d4785611b15565b610d519087614156565b611280565b6104a97f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611b74565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610ddf5750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610e4057613a3160f11b8687604051602001610dfe91815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261060293929160040161416f565b610e4985611cb5565b610e54846001611efc565b610e5f836000611efc565b60e084901c60e885901c0160ff16825114610ebf5760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff16815114610f1f5760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610f975760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b610fa085611b15565b610fa984611b15565b14610ffb57610fb785611b15565b610fc084611b15565b6040517f65cc0adf00000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b61100485612098565b61100d84612098565b1461105f5761101b85612098565b61102484612098565b6040517fedea958700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b60005b61106b86611b15565b8110156111065761109561107f85836120b5565b60c5811115611090576110906141b0565b6120d6565b6008601b8390030287901c60ff16146110fe576008601b8290030286901c60ff166110c361107f86846120b5565b6040517f254c7db400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600101611062565b506000611148613a3160f11b61111c8960101b90565b60101c7fffff000000000000000000000000000000000000000000000000000000000000919091161790565b9050600061115f611bdd60f21b61111c8a60101b90565b905061116a82612130565b80611179575061117981612130565b156111d357878860405160200161119291815260200190565b60408051601f19818403018152908290527fdfaaf9cf00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b61121f88888888886040516020016111eb91906141df565b6040516020818303038152906040528860405160200161120b91906141df565b6040516020818303038152906040526121cd565b6104cd8860016122b0565b61123f8484848461123a89611328565b6112d0565b50505050565b60006112518585612369565b9050600061126e828560ff166028026038011c64ffffffffff1690565b9050610759868686846000888861237c565b6060610aad611290858585612758565b60006112b5856112a08989612369565b9060ff166028026038011c64ffffffffff1690565b6127d8565b610c7f85858585856112cb8b611328565b612803565b6112d981611b15565b8360ff1610156112f5576112f08585858585611313565b610c7f565b610c7f858561130384611b15565b61130d9087614156565b85611ada565b610c7f85856113228487612b21565b85611744565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161137757507e60030220202000000000000000000000000000000000000000000000000000919050565b6109c36113a47f746273746f72650000000000000000005461626c65730000000000000000000084612b52565b60206000612bab565b60606000606060006113be85612bfc565b90506113cb878783612c1f565b935060006113d886612098565b905080156114aa576113ea8888612369565b935066ffffffffffffff841667ffffffffffffffff81111561140e5761140e613c5f565b6040519080825280601f01601f191660200182016040528015611438576020820181803683370190505b5092506020830160005b828160ff1610156114a757600061145a8b8b84612758565b90506000611477888460ff166028026038011c64ffffffffff1690565b90506114868260008387612c58565b6114908185614261565b93505050808061149f90614274565b915050611442565b50505b505093509350939050565b6060818311156114fb576040517fa8c547820000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610602565b60006115078787612369565b90506000611524828760ff166028026038011c64ffffffffff1690565b9050808510158061153457508084115b1561158f5780818610156115525761154d600186614293565b611554565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610602565b600061159c898989612758565b90506115ab81878888036127d8565b9998505050505050505050565b6104a982826115c685611328565b612d24565b613a3160f11b837fffff000000000000000000000000000000000000000000000000000000000000161461161357613a3160f11b8384604051602001610dfe91815260200190565b61161c83612130565b61167557828360405160200161163491815260200190565b60408051601f19818403018152908290527f41e713ad00000000000000000000000000000000000000000000000000000000825261060292916004016141c6565b610a42837fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166bff0000000000000000000000605885901b1617613008565b60006108156116c886866130c1565b60ff858116601b0360080285901c166116e18587612b21565b612bab565b6000806116f283611b15565b90508060ff168460ff16101561171a5760ff848116601b0360080284901c165b915050610a98565b61171286866117298488614156565b611aa4565b6000610aad84848461173f88611328565b6116e6565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036117b357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516117a6939291906142e2565b60405180910390a261123f565b60006117bf85856130c1565b905060006117cc866130d6565b905060005b81518110156118a15760008282815181106117ee576117ee614315565b6020026020010151905061181a6004826affffffffffffffffffffff191661315f90919063ffffffff16565b15611898576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611865908b908b908b908b9060040161432b565b600060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050505b506001016117d1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516118d6939291906142e2565b60405180910390a26118f1828565ffffffffffff168561317d565b60005b815181101561093a57600082828151811061191157611911614315565b6020026020010151905061193d6008826affffffffffffffffffffff191661315f90919063ffffffff16565b156119bb576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611988908b908b908b908b9060040161432b565b600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050505b506001016118f4565b6107598686868686866119d78d8d612369565b61237c565b6060600060606119f585856119f088611328565b6113ad565b9250925092509250925092565b6060610aad848484611a1388611328565b610d11565b6000611a2382613193565b9050611a2e82612130565b611a4657818260405160200161163491815260200190565b919050565b6000611a578585612369565b90506000611a74828560ff166028026038011c64ffffffffff1690565b9050610759868686611a8d8764ffffffffff8716614293565b60408051600081526020810190915288908861237c565b6000610aad826112a08686612369565b6000611abf82613225565b905080611a4657818260405160200161163491815260200190565b6000611ae68585612369565b90506000611b03828560ff166028026038011c64ffffffffff1690565b9050610759868686600085888861237c565b600060086001611b2760026020614293565b611b319190614293565b611b3b919061436f565b8260ff911c1692915050565b6060610815611b5686866130c1565b611b608486612b21565b60ff868116601b0360080286901c166127d8565b6000611b8084846132b7565b90506000815167ffffffffffffffff811115611b9e57611b9e613c5f565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b5090506000805b8351811015611ca6578473ffffffffffffffffffffffffffffffffffffffff16611c1f858381518110611c0357611c03614315565b60200260200101516affffffffffffffffffffff191660601c90565b73ffffffffffffffffffffffffffffffffffffffff1614611c9e57838181518110611c4c57611c4c614315565b6020026020010151838381518110611c6657611c66614315565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611bce565b5080825261075986868461331d565b80611cec576040517fa019e4da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf782612098565b90506005811115611d3e576040517f6793df620000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610602565b6000611d4983611b15565b90506000611d578383614261565b9050601c811115611d9e576040517fecd893b900000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610602565b6000805b83811015611e495760ff601b82900360080287901c166000819003611df6576040517f53b2dd0500000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b6020811115611e34576040517f7237f23700000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b611e3e8184614261565b925050600101611da2565b50611e5385612bfc565b8114611e9f57611e6285612bfc565b6040517feba964de000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610602565b825b601c8110156107595760ff601b82900360080287901c168015611ef3576040517f1d8d44db00000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b50600101611ea1565b80158015611f08575081155b15611f295760405163d498615960e01b815260006004820152602401610602565b6000611f3483612098565b90506005811115611f5b5760405163d498615960e01b815260048101829052602401610602565b6000611f6684611b15565b90506000611f748383614261565b9050601c811115611f9b5760405163d498615960e01b815260048101829052602401610602565b6000805b83811015612007576000611fb661107f89846120b5565b905080600003611ff2576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ffc8184614261565b925050600101611f9f565b5061201186612bfc565b811461203c5761202086612bfc565b60405163d498615960e01b815260040161060291815260200190565b825b8281101561093a57600061205561107f89846120b5565b9050801561208f576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161203e565b600060086001806120ab60026020614293565b611b279190614293565b6000601b8290036008028360ff911c1660c5811115610ab057610ab06141b0565b6000808260c58111156120eb576120eb6141b0565b60ff169050606181101561210557601f1660010192915050565b60618360c5811115612119576121196141b0565b036121275750601492915050565b50600092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061216957612169614315565b602090810291909101015260006121c17f746273746f72650000000000000000005265736f75726365496473000000000083837e010100010000000000000000000000000000000000000000000000000000006116b9565b9050610a988160f81c90565b6040805160208101879052808201869052606080820186905282518083039091018152608090910190915260006122048484613374565b905060006122128585613391565b6040805160018082528183019092529192506000919060208083019080368337019050509050898160008151811061224c5761224c614315565b60209081029190910101526122a47f746273746f72650000000000000000005461626c657300000000000000000000828686867e60030220202000000000000000000000000000000000000000000000000000612803565b50505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106122e6576122e6614315565b602002602001018181525050610a427f746273746f72650000000000000000005265736f75726365496473000000000060001b8260008560405160200161233491151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611313565b6000610ab061237884846133bd565b5490565b613a3160f11b877fffff00000000000000000000000000000000000000000000000000000000000016146123c457613a3160f11b8788604051602001610dfe91815260200190565b60006123df828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836123f89190614293565b6124029190614261565b905080821415801561242457508161241a8688614386565b64ffffffffff1614155b15612474576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610602565b818664ffffffffff1611156124c5576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610602565b60006124d2848984613413565b905060006124df8b6130d6565b905060005b81518110156125b757600082828151811061250157612501614315565b6020026020010151905061252d6010826affffffffffffffffffffff191661315f90919063ffffffff16565b156125ae57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161257b97969594939291906143ab565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b505050505b506001016124e4565b5064ffffffffff881660005b8a60ff168160ff1610156125f6576125ea878260ff166028026038011c64ffffffffff1690565b909101906001016125c3565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161263196959493929190614409565b60405180910390a25082841461265257600061264d8c8c6133bd565b839055505b600061265f8c8c8c612758565b9050612673818a64ffffffffff168961317d565b5060005b815181101561274a57600082828151811061269457612694614315565b602002602001015190506126c06020826affffffffffffffffffffff191661315f90919063ffffffff16565b1561274157606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161270e97969594939291906143ab565b600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b50600101612677565b505050505050505050505050565b6000838360405160200161276d929190614458565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f84840101166040528282526127fb85858584612c58565b509392505050565b611bdd60f21b867fffff000000000000000000000000000000000000000000000000000000000000160361287457857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516128679493929190614494565b60405180910390a2610759565b600061287f876130d6565b905060005b81518110156129585760008282815181106128a1576128a1614315565b602002602001015190506128cd6001826affffffffffffffffffffff191661315f90919063ffffffff16565b1561294f576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061291c908c908c908c908c908c908c906004016144d3565b600060405180830381600087803b15801561293657600080fd5b505af115801561294a573d6000803e3d6000fd5b505050505b50600101612884565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161298f9493929190614494565b60405180910390a260006129a388886130c1565b905060006020870190506129bb8260008951846134e1565b60006129c685612098565b1115612a4a5760006129d88a8a6133bd565b878155905060208601915060008060005b6129f288612098565b8160ff161015612a4557612a078d8d83612758565b9250612a228a8260ff166028026038011c64ffffffffff1690565b9150612a3183600084886134e1565b612a3b8286614261565b94506001016129e9565b505050505b60005b83518110156122a4576000848281518110612a6a57612a6a614315565b60200260200101519050612a966002826affffffffffffffffffffff191661315f90919063ffffffff16565b15612b18576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612ae5908e908e908e908e908e908e906004016144d3565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b505050505b50600101612a4d565b600080805b8360ff168110156127fb57612b4860ff601b83900360080287901c1683614261565b9150600101612b26565b60408051602081018490529081018290526000906060015b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612bd157602082048401935060208281612bcd57612bcd61452c565b0691505b508254600882021b6020829003808411156127fb576001850154600882021c82179150509392505050565b60006008612c0c60026020614293565b612c16919061436f565b9190911c919050565b606081600003612c3e5750604080516020810190915260008152610ab0565b6000612c4a85856130c1565b9050610815816000856127d8565b8215612cdf5760208310612c8257602083048401935060208381612c7e57612c7e61452c565b0692505b8215612cdf576020839003600081841015612ca55750600019600884021c612caf565b50600019600882021c5b8554600886021b818451168219821617845250818411612cd057505061123f565b50600194909401939182900391015b5b60208210612d015783548152600190930192601f1990910190602001612ce0565b811561123f576000600019600884021c8251865482191691161782525050505050565b611bdd60f21b837fffff0000000000000000000000000000000000000000000000000000000000001603612d8f57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612d829190614542565b60405180910390a2505050565b6000612d9a846130d6565b905060005b8151811015612e6d576000828281518110612dbc57612dbc614315565b60200260200101519050612de86040826affffffffffffffffffffff191661315f90919063ffffffff16565b15612e64576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612e3190899089908990600401614555565b600060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050505b50600101612d9f565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612e9e9190614542565b60405180910390a26000612eb285856130c1565b9050612f0b816000612ec386612bfc565b67ffffffffffffffff811115612edb57612edb613c5f565b6040519080825280601f01601f191660200182016040528015612f05576020820181803683370190505b5061317d565b6000612f1684612098565b1115612f37576000612f2886866133bd565b9050612f358160206135a0565b505b60005b8251811015610759576000838281518110612f5757612f57614315565b60200260200101519050612f836080826affffffffffffffffffffff191661315f90919063ffffffff16565b15612fff576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90612fcc908a908a908a90600401614555565b600060405180830381600087803b158015612fe657600080fd5b505af1158015612ffa573d6000803e3d6000fd5b505050505b50600101612f3a565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061303e5761303e614315565b602002602001018181525050610a427f746273746f726500000000000000000053746f7265486f6f6b7300000000000060001b826000856040516020016130ad91907fffffffffffffffffffffffffffffffffffffffffff000000000000000000000091909116815260150190565b604051602081830303815290604052611245565b60008282604051602001612b6a929190614458565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061311057613110614315565b602090810291909101015260006131487f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611280565b9050610a9861315a82600084516135dd565b61366b565b60008160ff16826131708560581c90565b1660ff1614905092915050565b610a428383835161318e8560200190565b6134e1565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106131cc576131cc614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360017e600302202020000000000000000000000000000000000000000000000000006116b9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061325e5761325e614315565b60209081029190910101526000610a987f746273746f72650000000000000000005461626c6573000000000000000000008360027e600302202020000000000000000000000000000000000000000000000000006116b9565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132f1576132f1614315565b602002602001018181525050600061330b85836000611280565b905061081561315a82600084516135dd565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061335357613353614315565b60200260200101818152505061123f8482600061336f8661367c565b611ada565b8151815160009181810160389190911b1760609190911b17610ab0565b606082826040516020016133a692919061457e565b604051602081830303815290604052905092915050565b600082826040516020016133d2929190614458565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115613457576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610602565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106134895780850382019150613491565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561355b576020831061350b576020830484019350602083816135075761350761452c565b0692505b821561355b5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161354c57505061123f565b50600194909401939182900391015b5b6020821061357d5780518455600190930192601f199091019060200161355c565b811561123f576000600019600884021c8554835182191691161785555050505050565b600060206135af83601f614261565b6135b991906145ad565b6135c39084614261565b90505b80831015610a4257600083556001830192506135c6565b6000818311806135ed5750835182115b1561362a578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610602939291906145cf565b602084016136388482614261565b905060006136468585614293565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610ab0836015600061368c565b606081610ab08160156000613707565b6060600061369a8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816136c0576136c061452c565b04905060405193506020840160208202810160405281855260005b828110156136fb578451871c8252938701936020909101906001016136db565b50505050509392505050565b82516060906000613718858361436f565b9050604051925060208301601f19603f83860101166040528184526000602088015b848210156136fb578051871b8352918701916001919091019060200161373a565b60008083601f84011261376d57600080fd5b50813567ffffffffffffffff81111561378557600080fd5b6020830191508360208260051b85010111156137a057600080fd5b9250929050565b803560ff81168114611a4657600080fd5b6000806000806000608086880312156137d057600080fd5b85359450602086013567ffffffffffffffff8111156137ee57600080fd5b6137fa8882890161375b565b909550935061380d9050604087016137a7565b949793965091946060013592915050565b60005b83811015613839578181015183820152602001613821565b50506000910152565b6000815180845261385a81602086016020860161381e565b601f01601f19169290920160200192915050565b602081526000610ab06020830184613842565b73ffffffffffffffffffffffffffffffffffffffff811681146138a357600080fd5b50565b600080604083850312156138b957600080fd5b8235915060208301356138cb81613881565b809150509250929050565b60008060008060008060008060c0898b0312156138f257600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff8082111561392657600080fd5b6139328c838d0161375b565b909650945060a08b013591508082111561394b57600080fd5b506139588b828c0161375b565b999c989b5096995094979396929594505050565b60008083601f84011261397e57600080fd5b50813567ffffffffffffffff81111561399657600080fd5b6020830191508360208285010111156137a057600080fd5b600080600080600080608087890312156139c757600080fd5b86359550602087013567ffffffffffffffff808211156139e657600080fd5b6139f28a838b0161375b565b9097509550859150613a0660408a016137a7565b94506060890135915080821115613a1c57600080fd5b50613a2989828a0161396c565b979a9699509497509295939492505050565b60008060008060608587031215613a5157600080fd5b84359350602085013567ffffffffffffffff811115613a6f57600080fd5b613a7b8782880161375b565b9094509250613a8e9050604086016137a7565b905092959194509250565b60008060008060008060008060a0898b031215613ab557600080fd5b88359750602089013567ffffffffffffffff80821115613ad457600080fd5b613ae08c838d0161375b565b909950975060408b0135915080821115613af957600080fd5b613b058c838d0161396c565b909750955060608b0135945060808b0135915080821115613b2557600080fd5b506139588b828c0161396c565b600080600080600080600060a0888a031215613b4d57600080fd5b87359650602088013567ffffffffffffffff80821115613b6c57600080fd5b613b788b838c0161375b565b9098509650869150613b8c60408b016137a7565b955060608a0135915080821115613ba257600080fd5b50613baf8a828b0161396c565b989b979a50959894979596608090950135949350505050565b600060208284031215613bda57600080fd5b5035919050565b60008060008060608587031215613bf757600080fd5b84359350602085013567ffffffffffffffff811115613c1557600080fd5b613c218782880161375b565b9598909750949560400135949350505050565b606081526000613c476060830186613842565b84602084015282810360408401526104958185613842565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c9e57613c9e613c5f565b604052919050565b600067ffffffffffffffff821115613cc057613cc0613c5f565b5060051b60200190565b600082601f830112613cdb57600080fd5b81356020613cf0613ceb83613ca6565b613c75565b8083825260208201915060208460051b870101935086841115613d1257600080fd5b602086015b84811015613d2e5780358352918301918301613d17565b509695505050505050565b600080600080600060a08688031215613d5157600080fd5b85359450602086013567ffffffffffffffff811115613d6f57600080fd5b613d7b88828901613cca565b945050613d8a604087016137a7565b94979396509394606081013594506080013592915050565b60008060408385031215613db557600080fd5b82359150602083013567ffffffffffffffff811115613dd357600080fd5b613ddf85828601613cca565b9150509250929050565b600080600060608486031215613dfe57600080fd5b833592506020840135613e1081613881565b9150613e1e604085016137a7565b90509250925092565b60008060008060808587031215613e3d57600080fd5b84359350602085013567ffffffffffffffff811115613e5b57600080fd5b613e6787828801613cca565b935050613e76604086016137a7565b9396929550929360600135925050565b600080600060608486031215613e9b57600080fd5b83359250602084013567ffffffffffffffff811115613eb957600080fd5b613ec586828701613cca565b925050613e1e604085016137a7565b60008060008060008060808789031215613eed57600080fd5b86359550602087013567ffffffffffffffff80821115613f0c57600080fd5b613f188a838b0161375b565b90975095506040890135915065ffffffffffff82168214613f3857600080fd5b90935060608801359080821115613a1c57600080fd5b803564ffffffffff81168114611a4657600080fd5b60008060008060008060008060c0898b031215613f7f57600080fd5b88359750602089013567ffffffffffffffff80821115613f9e57600080fd5b613faa8c838d0161375b565b9099509750879150613fbe60408c016137a7565b9650613fcc60608c01613f4e565b9550613fda60808c01613f4e565b945060a08b0135915080821115613b2557600080fd5b60008060006040848603121561400557600080fd5b83359250602084013567ffffffffffffffff81111561402357600080fd5b61402f8682870161375b565b9497909650939450505050565b600061404a613ceb84613ca6565b80848252602080830192508560051b85013681111561406857600080fd5b855b818110156140fb57803567ffffffffffffffff8082111561408b5760008081fd5b90880190601f36818401126140a05760008081fd5b8235828111156140b2576140b2613c5f565b6140c387601f198484011601613c75565b925080835236878286010111156140dc57600091508182fd5b808785018885013760009083018701525086525093820193820161406a565b50919695505050505050565b6000825161411981846020870161381e565b9190910192915050565b60006020828403121561413557600080fd5b8151610ab081613881565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156109c3576109c3614140565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108156060830184613842565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610aad6040830184613842565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614254577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614242858351613842565b94509285019290850190600101614208565b5092979650505050505050565b808201808211156109c3576109c3614140565b600060ff821660ff810361428a5761428a614140565b60010192915050565b818103818111156109c3576109c3614140565b60008151808452602080850194506020840160005b838110156142d7578151875295820195908201906001016142bb565b509495945050505050565b6060815260006142f560608301866142a6565b65ffffffffffff8516602084015282810360408401526104958185613842565b634e487b7160e01b600052603260045260246000fd5b84815260806020820152600061434460808301866142a6565b65ffffffffffff8516604084015282810360608401526143648185613842565b979650505050505050565b80820281158282048414176109c3576109c3614140565b64ffffffffff8181168382160190808211156143a4576143a4614140565b5092915050565b87815260e0602082015260006143c460e08301896142a6565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526143fb8185613842565b9a9950505050505050505050565b60c08152600061441c60c08301896142a6565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526115ab8185613842565b8281526000602080830184516020860160005b828110156144875781518452928401929084019060010161446b565b5091979650505050505050565b6080815260006144a760808301876142a6565b82810360208401526144b98187613842565b905084604084015282810360608401526143648185613842565b86815260c0602082015260006144ec60c08301886142a6565b82810360408401526144fe8188613842565b905085606084015282810360808401526145188186613842565b9150508260a0830152979650505050505050565b634e487b7160e01b600052601260045260246000fd5b602081526000610ab060208301846142a6565b83815260606020820152600061456e60608301856142a6565b9050826040830152949350505050565b6000835161459081846020880161381e565b8351908301906145a481836020880161381e565b01949350505050565b6000826145ca57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006145e26060830186613842565b6020830194909452506040015291905056fea164736f6c6343000818000a608060405260008054600160ff1991821681179092556004805490911690911790555a601c5534801561003157600080fd5b506117cd806100416000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610163578063e20c9f711461017b578063fa7626d41461018357600080fd5b8063916a17c614610126578063b07ed3a91461012e578063b5508aa91461015b57600080fd5b80633f7286f4116100b25780633f7286f4146100f457806366d9a9a0146100fc57806385226c811461011157600080fd5b80631ed7831c146100ce5780633e5e3c23146100ec575b600080fd5b6100d6610190565b6040516100e39190610fbc565b60405180910390f35b6100d66101ff565b6100d661026c565b6101046102d9565b6040516100e39190611016565b6101196103ea565b6040516100e39190611140565b6101046104ba565b6101366105c2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e3565b610119610617565b61016b6106e7565b60405190151581526020016100e3565b6100d6610829565b60005461016b9060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156101f557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103c957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103765790505b505050505081525050815260200190600101906102fd565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461042d906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610459906111a4565b80156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50505050508152602001906001019061040e565b60606013805480602002602001604051908101604052809291908181526020016000905b828210156103e157600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105aa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105575790505b505050505081525050815260200190600101906104de565b60006106026040518060400160405280601181526020017f6765742053746f72652061646472657373000000000000000000000000000000815250610896565b61060a610b66565b9050610614610bad565b90565b60606010805480602002602001604051908101604052809291908181526020016000905b828210156103e157838290600052602060002001805461065a906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906111a4565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b50505050508152602001906001019061063b565b60008054610100900460ff16156107075750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108245760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c65640000000000000000000000000000000000000000000000000000828401528251808303840181526060830190935260009290916107ac917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016111f7565b60408051601f19818403018152908290526107c69161123f565b6000604051808303816000865af19150503d8060008114610803576040519150601f19603f3d011682016040523d82523d6000602084013e610808565b606091505b5091505080806020019051810190610820919061125b565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156101f55760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101ca575050505050905090565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061125b565b6109625750565b601b805461096f906111a4565b9050600014601b6040516020016109869190611315565b604051602081830303815290604052906109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b60405180910390fd5b50601d816040516109e7919061123f565b90815260200160405180910390205460001481604051602001610a0a91906113ad565b60405160208183030381529060405290610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd919061139a565b50601b610a5e8282611498565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610824573391505090565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c78919061125b565b610c7f5750565b600060a082601c54610c919190611587565b610c9b9190611587565b610ca69060016115a0565b905060008111610d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e277420757365206761730000000000000060448201526064016109cd565b80601d601b604051610d2491906115b3565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e35001610d71601b826115bf565b50610e05601b8054610d82906111a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906111a4565b8015610dfb5780601f10610dd057610100808354040283529160200191610dfb565b820191906000526020600020905b815481529060010190602001808311610dde57829003601f168201915b5050505050610e26565b604080516020810190915260008152601b90610e219082611498565b505050565b610f2c7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae601d84604051610e78919061123f565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252610ec19160040190815260200190565b600060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f069190810190611692565b82604051602001610f1892919061173f565b604051602081830303815290604052610f2f565b50565b610f2c81604051602401610f43919061139a565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6020808252825182820181905260009190848201906040850190845b8181101561100a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610fd8565b50909695505050505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156110e157898403603f190186528251805173ffffffffffffffffffffffffffffffffffffffff168552880151888501889052805188860181905290890190839060608701905b808310156110cc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061108a565b50978a01979550505091870191600101611040565b50919998505050505050505050565b60005b8381101561110b5781810151838201526020016110f3565b50506000910152565b6000815180845261112c8160208601602086016110f0565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561119757603f19888603018452611185858351611114565b94509285019290850190600101611169565b5092979650505050505050565b600181811c908216806111b857607f821691505b6020821081036111f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffff0000000000000000000000000000000000000000000000000000000083168152600082516112318160048501602087016110f0565b919091016004019392505050565b600082516112518184602087016110f0565b9190910192915050565b60006020828403121561126d57600080fd5b8151801515811461127d57600080fd5b9392505050565b60008154611291816111a4565b600182811680156112a957600181146112dc5761130b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061130b565b8560005260208060002060005b858110156113025781548a8201529084019082016112e9565b50505082870194505b5050505092915050565b7f676173207265706f72742022000000000000000000000000000000000000000081526000611347600c830184611284565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600061127d6020830184611114565b7f676173207265706f7274202200000000000000000000000000000000000000008152600082516113e581600c8501602087016110f0565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610e21576000816000526020600020601f850160051c810160208610156114715750805b601f850160051c820191505b818110156114905782815560010161147d565b505050505050565b815167ffffffffffffffff8111156114b2576114b2611419565b6114c6816114c084546111a4565b84611448565b602080601f8311600181146114fb57600084156114e35750858301515b600019600386901b1c1916600185901b178555611490565b600085815260208120601f198616915b8281101561152a5788860151825594840194600190910190840161150b565b50858210156115485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561159a5761159a611558565b92915050565b8082018082111561159a5761159a611558565b600061127d8284611284565b8181036115ca575050565b6115d482546111a4565b67ffffffffffffffff8111156115ec576115ec611419565b6115fa816114c084546111a4565b6000601f82116001811461162e57600083156116165750848201545b600019600385901b1c1916600184901b178455610b5f565b600085815260209020601f19841690600086815260209020845b838110156116685782860154825560019586019590910190602001611648565b50858310156115485793015460001960f8600387901b161c19169092555050600190811b01905550565b6000602082840312156116a457600080fd5b815167ffffffffffffffff808211156116bc57600080fd5b818401915084601f8301126116d057600080fd5b8151818111156116e2576116e2611419565b604051601f8201601f19908116603f0116810190838211818310171561170a5761170a611419565b8160405282815287602084870101111561172357600080fd5b6117348360208301602088016110f0565b979650505050505050565b7f474153205245504f52543a20000000000000000000000000000000000000000081526000835161177781600c8501602088016110f0565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516117b481600d8401602088016110f0565b01600d0194935050505056fea164736f6c6343000818000a8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175746273746f72650000000000000000005265736f757263654964730000000000a164736f6c6343000818000a","sourceMap":"1308:491:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1389:69;;;:::i;:::-;;2170:134:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1606::87;;;:::i;2939:133:8:-;;;:::i;2640:141::-;;;:::i;2456:178::-;;;:::i;:::-;;;;;;;:::i;2310:140::-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;1462:140:87:-;;;:::i;1875:141:8:-;;;:::i;1819:584:2:-;;;:::i;:::-;;;3957:14:102;;3950:22;3932:41;;3920:2;3905:18;1819:584:2;3792:187:102;2022:142:8;;;:::i;1572:26:2:-;;;;;;;;;1389:69:87;1427:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1419:5:87;:34;;;;-1:-1:-1;;;;;1419:34:87;;;;;;;;;;1389:69::o;2170:134:8:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2262:35:8;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;1606::87:-;1672:5;;:19;;;;;;;;1649:20;;-1:-1:-1;;;;;1672:5:87;;:17;;:19;;;;;;;;;;;;;;1649:20;1672:5;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1728:5;;1649:42;;-1:-1:-1;1697:38:87;;1649:42;;-1:-1:-1;;;;;1728:5:87;1697:8;:38::i;:::-;1643:97;1606:134::o;2939:133:8:-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3030:35:8;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2735:39:8;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;2456:178::-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2572:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;2310:140::-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2887:39:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1462:140:87;1526:5;;:27;;;;;;;;1503:20;;-1:-1:-1;;;;;1526:5:87;;:25;;:27;;;;;;;;;;;;;;1503:20;1526:5;:27;;;;;;;;;;;;;;1875:141:8;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:2;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:2;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;4918:74:102;;;2221:17:2;5008:18:102;;;5001:34;2196:43:2;;;;;;;;;4891:18:102;;;2196:43:2;;;-1:-1:-1;;1671:64:2;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:2;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:2:o;2022:142:8:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2118:39:8;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;3622:277:2:-;3690:1;-1:-1:-1;;;;;3685:6:2;:1;-1:-1:-1;;;;;3685:6:2;;3681:212;;3712:44;;;;;6257:2:102;6239:21;;;6296:2;6276:18;;;6269:30;6335:34;6330:2;6315:18;;6308:62;6406:7;6401:2;6386:18;;6379:35;6446:3;6431:19;;6055:401;3712:44:2;;;;;;;;3775:34;;;6673:21:102;;;6730:2;6710:18;;;6703:30;6769:12;6764:2;6749:18;;6742:40;-1:-1:-1;;;;;6856:55:102;;6849:4;6834:20;;6827:85;3775:34:2;;;;;;;6814:3:102;3775:34:2;;;3828;;;7135:21:102;;;7192:2;7172:18;;;7165:30;7231:12;7226:2;7211:18;;7204:40;-1:-1:-1;;;;;7318:55:102;;7311:4;7296:20;;7289:85;3828:34:2;;;;;;;7276:3:102;3828:34:2;;;3876:6;:4;:6::i;:::-;3622:277;;:::o;2409:432::-;2997:42;2985:55;3066:16;2452:359;;2652:67;;;1671:64;2652:67;;;7587:74:102;;;2677:17:2;7677:18:102;;;7670:34;;;;2712:4:2;7720:18:102;;;7713:34;2489:11:2;;1671:64;2586:43;;7560:18:102;;2652:67:2;;;-1:-1:-1;;2652:67:2;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:2;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:2;2820:7;:14;;;;;;;;2409:432::o;-1:-1:-1:-;;;;;;;;:::o;14:681:102:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:102;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:102;;14:681;-1:-1:-1;;;;;;14:681:102:o;700:1695::-;902:4;931:2;971;960:9;956:18;1001:2;990:9;983:21;1024:6;1059;1053:13;1090:6;1082;1075:22;1116:2;1106:12;;1149:2;1138:9;1134:18;1127:25;;1211:2;1201:6;1198:1;1194:14;1183:9;1179:30;1175:39;1249:2;1241:6;1237:15;1270:1;1291;1301:1065;1317:6;1312:3;1309:15;1301:1065;;;1386:22;;;-1:-1:-1;;1382:95:102;1370:108;;1501:13;;1588:9;;-1:-1:-1;;;;;1584:58:102;1569:74;;1682:11;;1676:18;1714:15;;;1707:27;;;1795:19;;1541:15;;;1827:24;;;1917:21;;;;1962:1;;1885:2;1873:15;;;1976:282;1992:8;1987:3;1984:17;1976:282;;;2073:15;;2090:66;2069:88;2055:103;;2227:17;;;;2020:1;2011:11;;;;;2184:14;;;;1976:282;;;-1:-1:-1;2344:12:102;;;;2281:5;-1:-1:-1;;;2309:15:102;;;;1343:1;1334:11;1301:1065;;;-1:-1:-1;2383:6:102;;700:1695;-1:-1:-1;;;;;;;;;700:1695:102:o;2400:250::-;2485:1;2495:113;2509:6;2506:1;2503:13;2495:113;;;2585:11;;;2579:18;2566:11;;;2559:39;2531:2;2524:10;2495:113;;;-1:-1:-1;;2642:1:102;2624:16;;2617:27;2400:250::o;2655:1132::-;2817:4;2846:2;2886;2875:9;2871:18;2916:2;2905:9;2898:21;2939:6;2974;2968:13;3005:6;2997;2990:22;3043:2;3032:9;3028:18;3021:25;;3105:2;3095:6;3092:1;3088:14;3077:9;3073:30;3069:39;3055:53;;3143:2;3135:6;3131:15;3164:1;3174:584;3188:6;3185:1;3182:13;3174:584;;;-1:-1:-1;;3265:9:102;3257:6;3253:22;3249:95;3244:3;3237:108;3374:6;3368:13;3416:2;3410:9;3447:8;3439:6;3432:24;3469:74;3534:8;3529:2;3521:6;3517:15;3512:2;3508;3504:11;3469:74;:::i;:::-;3600:2;3586:17;-1:-1:-1;;3582:90:102;3570:103;;;;3566:112;;;-1:-1:-1;3736:12:102;;;;3701:15;;;;3210:1;3203:9;3174:584;;;-1:-1:-1;3775:6:102;;2655:1132;-1:-1:-1;;;;;;;2655:1132:102:o;3984:313::-;4054:6;4107:2;4095:9;4086:7;4082:23;4078:32;4075:52;;;4123:1;4120;4113:12;4075:52;4155:9;4149:16;-1:-1:-1;;;;;4198:5:102;4194:54;4187:5;4184:65;4174:93;;4263:1;4260;4253:12;4174:93;4286:5;3984:313;-1:-1:-1;;;3984:313:102:o;4302:437::-;4381:1;4377:12;;;;4424;;;4445:61;;4499:4;4491:6;4487:17;4477:27;;4445:61;4552:2;4544:6;4541:14;4521:18;4518:38;4515:218;;4589:77;4586:1;4579:88;4690:4;4687:1;4680:15;4718:4;4715:1;4708:15;4515:218;;4302:437;;;:::o;5046:430::-;5243:66;5235:6;5231:79;5226:3;5219:92;5201:3;5340:6;5334:13;5356:74;5423:6;5419:1;5414:3;5410:11;5403:4;5395:6;5391:17;5356:74;:::i;:::-;5450:16;;;;5468:1;5446:24;;5046:430;-1:-1:-1;;;5046:430:102:o;5481:287::-;5610:3;5648:6;5642:13;5664:66;5723:6;5718:3;5711:4;5703:6;5699:17;5664:66;:::i;:::-;5746:16;;;;;5481:287;-1:-1:-1;;5481:287:102:o;5773:277::-;5840:6;5893:2;5881:9;5872:7;5868:23;5864:32;5861:52;;;5909:1;5906;5899:12;5861:52;5941:9;5935:16;5994:5;5987:13;5980:21;5973:5;5970:32;5960:60;;6016:1;6013;6006:12","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testDelegatecall()":"a1382b5a","testNoDelegatecall()":"227d7758"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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\":\"testDelegatecall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testNoDelegatecall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/StoreSwitch.t.sol\":\"StoreSwitchTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/gas-report/src/GasReporter.sol\":{\"keccak256\":\"0x2ce3fbd09098ce05ae68684405728c73470ff9ee8c9b1359ff230ecfa5d4d5dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7cf74103308e356e0f30d237f0fdc9864a9cee6a8bafe76baeb71f62b8c6d798\",\"dweb:/ipfs/QmTcACXKUxBZTwfdvJxiHiU8zXMzk732HUzcdiTU9vh55W\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"node_modules/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"node_modules/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"node_modules/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"node_modules/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"node_modules/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"node_modules/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"node_modules/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"node_modules/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"src/Store.sol\":{\"keccak256\":\"0x8dcf87de5dbb768ea776ba17498a19cf74fbc454b1dfb239d52e42b7eaeeff0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c868cb7b9f67cc71603aa86f1e5a38caff01133434067359fbfe816dd5562116\",\"dweb:/ipfs/QmWo8pkuJYYCzunTw2dHVKyP6DbwHFAD328Xay3tHApeGr\"]},\"src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"src/StoreKernel.sol\":{\"keccak256\":\"0xeeb12eb8f8254eea33f4d3b80504962733c191f7cd4f4b1bc3033237e648ff0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01b41567453f8f4f8c55b30d88d891b1ea87f2b5354ee8ce67ca58aedfb296ec\",\"dweb:/ipfs/QmZkGP7yKZUUnVxwAV4AVhHfc8Dnz1TtbyooeGBm33EUE7\"]},\"src/StoreRead.sol\":{\"keccak256\":\"0xb27eeadfa0075d2ac085b155e42e195b9bc6511640097af6646936f5ceb3afc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdca315a580d561a7ec3d488ad6ea6996a4611031218547d6b942c7654750a18\",\"dweb:/ipfs/QmUrW9strzNK1guqRZ7jRC4GZ9SvAraxah3rfsw4eBGjZM\"]},\"src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a\",\"dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo\"]},\"src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36\",\"dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD\"]},\"src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160\",\"dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV\"]},\"src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080\",\"dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw\"]},\"src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"test/StoreMock.sol\":{\"keccak256\":\"0x62f8499d3e156cdc90d081afbb836f1425698d24812dd479d6c299d0a2745b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0540c99beddefea43c509ec192f3fa4d8d885fdaf16fedb1e12fca72efd5bd67\",\"dweb:/ipfs/Qmaw9p8gW9RiQVMHM14L6K8TwiHgD7MWMrFbZ3nuW7WdHe\"]},\"test/StoreSwitch.t.sol\":{\"keccak256\":\"0xf8fff815f5e2f37995f0fa59b7c3d3c57203bc169c0c82c4815669869564fa24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7858715120e2483a9cd638ec799c3d7268906699c9ca5c6b7f5be4832e4b35da\",\"dweb:/ipfs/QmafHcJRmtoyNfoHkpoYxNePt8BswqJS8VTh8XcnT5bPu1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"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":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":"testDelegatecall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testNoDelegatecall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/StoreSwitch.t.sol":"StoreSwitchTest"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/gas-report/src/GasReporter.sol":{"keccak256":"0x2ce3fbd09098ce05ae68684405728c73470ff9ee8c9b1359ff230ecfa5d4d5dd","urls":["bzz-raw://7cf74103308e356e0f30d237f0fdc9864a9cee6a8bafe76baeb71f62b8c6d798","dweb:/ipfs/QmTcACXKUxBZTwfdvJxiHiU8zXMzk732HUzcdiTU9vh55W"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/forge-std/src/StdChains.sol":{"keccak256":"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6","urls":["bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d","dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx"],"license":"MIT"},"node_modules/forge-std/src/StdCheats.sol":{"keccak256":"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5","urls":["bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a","dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe"],"license":"MIT"},"node_modules/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/forge-std/src/StdInvariant.sol":{"keccak256":"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1","urls":["bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c","dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss"],"license":"MIT"},"node_modules/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"node_modules/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/forge-std/src/StdStorage.sol":{"keccak256":"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d","urls":["bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26","dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"],"license":"MIT"},"node_modules/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/forge-std/src/StdUtils.sol":{"keccak256":"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1","urls":["bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140","dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi"],"license":"MIT"},"node_modules/forge-std/src/Test.sol":{"keccak256":"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24","urls":["bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb","dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x"],"license":"MIT"},"node_modules/forge-std/src/Vm.sol":{"keccak256":"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5","urls":["bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c","dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"],"license":"MIT"},"node_modules/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"src/Store.sol":{"keccak256":"0x8dcf87de5dbb768ea776ba17498a19cf74fbc454b1dfb239d52e42b7eaeeff0d","urls":["bzz-raw://c868cb7b9f67cc71603aa86f1e5a38caff01133434067359fbfe816dd5562116","dweb:/ipfs/QmWo8pkuJYYCzunTw2dHVKyP6DbwHFAD328Xay3tHApeGr"],"license":"MIT"},"src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"src/StoreKernel.sol":{"keccak256":"0xeeb12eb8f8254eea33f4d3b80504962733c191f7cd4f4b1bc3033237e648ff0b","urls":["bzz-raw://01b41567453f8f4f8c55b30d88d891b1ea87f2b5354ee8ce67ca58aedfb296ec","dweb:/ipfs/QmZkGP7yKZUUnVxwAV4AVhHfc8Dnz1TtbyooeGBm33EUE7"],"license":"MIT"},"src/StoreRead.sol":{"keccak256":"0xb27eeadfa0075d2ac085b155e42e195b9bc6511640097af6646936f5ceb3afc6","urls":["bzz-raw://cdca315a580d561a7ec3d488ad6ea6996a4611031218547d6b942c7654750a18","dweb:/ipfs/QmUrW9strzNK1guqRZ7jRC4GZ9SvAraxah3rfsw4eBGjZM"],"license":"MIT"},"src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"src/codegen/tables/Hooks.sol":{"keccak256":"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d","urls":["bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a","dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo"],"license":"MIT"},"src/codegen/tables/ResourceIds.sol":{"keccak256":"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab","urls":["bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36","dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD"],"license":"MIT"},"src/codegen/tables/StoreHooks.sol":{"keccak256":"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b","urls":["bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160","dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV"],"license":"MIT"},"src/codegen/tables/Tables.sol":{"keccak256":"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc","urls":["bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080","dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw"],"license":"MIT"},"src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"test/StoreMock.sol":{"keccak256":"0x62f8499d3e156cdc90d081afbb836f1425698d24812dd479d6c299d0a2745b14","urls":["bzz-raw://0540c99beddefea43c509ec192f3fa4d8d885fdaf16fedb1e12fca72efd5bd67","dweb:/ipfs/Qmaw9p8gW9RiQVMHM14L6K8TwiHgD7MWMrFbZ3nuW7WdHe"],"license":"MIT"},"test/StoreSwitch.t.sol":{"keccak256":"0xf8fff815f5e2f37995f0fa59b7c3d3c57203bc169c0c82c4815669869564fa24","urls":["bzz-raw://7858715120e2483a9cd638ec799c3d7268906699c9ca5c6b7f5be4832e4b35da","dweb:/ipfs/QmafHcJRmtoyNfoHkpoYxNePt8BswqJS8VTh8XcnT5bPu1"],"license":"MIT"}},"version":1},"id":87}
|