@latticexyz/world-modules 2.0.0-main-57d8965d → 2.0.0-main-de2decea
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/out/ERC721.t.sol/ERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/ERC721Test.abi.json +1 -1
- package/out/ERC721.t.sol/ERC721Test.abi.json.d.ts +1 -1
- package/out/ERC721.t.sol/ERC721Test.json +1 -1
- package/out/ERC721.t.sol/ERC721TokenReceiver.json +1 -1
- package/out/ERC721.t.sol/NonERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/RevertingERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/WrongReturnDataERC721Recipient.json +1 -1
- package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.json +1 -1
- package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.json +1 -1
- package/out/PuppetModule.t.sol/PuppetModuleTest.json +1 -1
- package/out/PuppetModule.t.sol/PuppetTestSystem.json +1 -1
- package/out/StandardDelegationsModule.t.sol/StandardDelegationsModuleTest.json +1 -1
- package/out/SystemSwitch.t.sol/EchoSystem.json +1 -1
- package/out/SystemSwitch.t.sol/SystemSwitchTest.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityModuleTest.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.json +1 -1
- package/out/query.t.sol/QueryTest.json +1 -1
- package/package.json +8 -8
@@ -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":"testGetKeysWithValue","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetKeysWithValueGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTargetTableId","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testInstall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testInstallTwice","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMatchingByteSizes","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetAndDeleteRecordHook","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetField","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},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"FieldLayoutLib_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405260008054600160ff1991821681179092556004805490911690911790555a601c556040516200003390620000e8565b604051809103906000f08015801562000050573d6000803e3d6000fd5b50602080546001600160a01b0319166001600160a01b0392909216919091179055602180546001600160f01b03191665736f7572636560c01b1790557f9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb6586022557f4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d602455348015620000e157600080fd5b50620000f6565b613cef8062017d8683390190565b62017c7f80620001076000396000f3fe60806040523480156200001157600080fd5b50600436106200016c5760003560e01c8063786bd7bc11620000dd578063b5508aa9116200008b578063e004c9e9116200006e578063e004c9e91462000267578063e20c9f711462000271578063fa7626d4146200027b57600080fd5b8063b5508aa91462000242578063ba414fa6146200024c57600080fd5b806379fe553d11620000c057806379fe553d146200021557806385226c81146200021f578063916a17c6146200023857600080fd5b8063786bd7bc146200020157806378cdebf9146200020b57600080fd5b80633f7286f4116200013b578063615295ee116200011e578063615295ee14620001c757806366d9a9a014620001d157806376270d0114620001ea57600080fd5b80633f7286f414620001b35780634a8cf93d14620001bd57600080fd5b80630a9254e414620001715780631ed7831c146200017d57806339e2edb9146200019f5780633e5e3c2314620001a9575b600080fd5b6200017b62000289565b005b6200018762000531565b604051620001969190620038a5565b60405180910390f35b6200017b62000595565b62000187620005a3565b6200018762000605565b6200017b62000667565b6200017b62000cc9565b620001db62000f53565b604051620001969190620038f4565b6200017b620001fb366004620039e1565b6200105b565b6200017b620012b0565b6200017b620013c8565b6200017b6200159f565b62000229620015d5565b60405162000196919062003aa8565b620001db620016af565b62000229620017ae565b6200025662001888565b604051901515815260200162000196565b6200017b620019d4565b6200018762001c49565b600054620002569060ff1681565b620002976020600062001cab565b602655620002a6601f62001d09565b602755620002b5605f62001d09565b60285560215462000303907f746200000000000000000000000000000000000000000000000000000000000090609081901b906e010000000000000000000000000000900460801b62001d8c565b602981905562000335907f6b65797776616c000000000000000000000000000000000000000000000000009062001e14565b602a556040516200034690620037ee565b604051809103906000f08015801562000363573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905563c4d66de8620003aa62001efc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200040457600080fd5b505af115801562000419573d6000803e3d6000fd5b5050601f547f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055506200047d9050565b604080516001808252818301909252906020808301908036833750508151620004ae926023925060200190620037fc565b506022546023600081548110620004c957620004c962003ad3565b600091825260209091200155604080516001808252818301909252908160200160208202803683375050815162000508926025925060200190620037fc565b50602454602560008154811062000523576200052362003ad3565b600091825260209091200155565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200058b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200056c575b5050505050905090565b620005a160016200105b565b565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6200067162002007565b601f546029546040805160016020808301829052835180840390910181526000838501818152606085019586905263298314fb60e01b90955291956001600160a01b03169463298314fb94620006d39491936023939290919060640162003b2b565b600060405180830381600087803b158015620006ee57600080fd5b505af115801562000703573d6000803e3d6000fd5b50505050600062000740602a54836040516020016200072491815260200190565b60405160208183030381529060405280519060200120620021b5565b905062000786815160016040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525062002232565b620007e781600081518110620007a057620007a062003ad3565b60200260200101516022546040518060400160405280600181526020017f32000000000000000000000000000000000000000000000000000000000000008152506200227f565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200084694909360259392919060640162003b2b565b600060405180830381600087803b1580156200086157600080fd5b505af115801562000876573d6000803e3d6000fd5b5050505062000895602a54836040516020016200072491815260200190565b9050620008a581516002620022cc565b6200090681600081518110620008bf57620008bf62003ad3565b60200260200101516022546040518060400160405280600181526020017f33000000000000000000000000000000000000000000000000000000000000008152506200227f565b620009678160018151811062000920576200092062003ad3565b60200260200101516024546040518060400160405280600181526020017f34000000000000000000000000000000000000000000000000000000000000008152506200227f565b600060029050620009916040518060600160405280603d815260200162017bb8603d9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620009f094909360239392919060640162003b2b565b600060405180830381600087803b15801562000a0b57600080fd5b505af115801562000a20573d6000803e3d6000fd5b5050505062000a2e620026b9565b62000a49602a54846040516020016200072491815260200190565b915062000a8f825160016040518060400160405280600181526020017f350000000000000000000000000000000000000000000000000000000000000081525062002232565b62000af08260008151811062000aa95762000aa962003ad3565b60200260200101516024546040518060400160405280600181526020017f36000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000b0b602a54826040516020016200072491815260200190565b915062000b51825160016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525062002232565b62000bb28260008151811062000b6b5762000b6b62003ad3565b60200260200101516022546040518060400160405280600181526020017f38000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000bd66040518060600160405280603d815260200162017add603d9139620023de565b601f546029546040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163505a181d9162000c259160239060040162003b76565b600060405180830381600087803b15801562000c4057600080fd5b505af115801562000c55573d6000803e3d6000fd5b5050505062000c63620026b9565b62000c7e602a54826040516020016200072491815260200190565b915062000cc4825160006040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525062002232565b505050565b62000cd362002007565b60006001905062000cfd60405180606001604052806039815260200162017b5660399139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000d71939092602392600092909160440162003b91565b600060405180830381600087803b15801562000d8c57600080fd5b505af115801562000da1573d6000803e3d6000fd5b5050505062000daf620026b9565b600062000dcc602a54836040516020016200072491815260200190565b905062000ddc81516001620022cc565b62000e078160008151811062000df65762000df662003ad3565b602002602001015160225462002949565b60006002905062000e316040518060600160405280603c815260200162017b1a603c9139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000ea5939092602392600092909160440162003b91565b600060405180830381600087803b15801562000ec057600080fd5b505af115801562000ed5573d6000803e3d6000fd5b5050505062000ee3620026b9565b62000efe602a54846040516020016200072491815260200190565b915062000f0e82516000620022cc565b62000f29602a54826040516020016200072491815260200190565b915062000f3982516001620022cc565b62000cc48260008151811062000df65762000df662003ad3565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200103957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000fe55790505b5050505050815250508152602001906001019062000f77565b50505050905090565b6200106562002007565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620010c494909360239392919060640162003b2b565b600060405180830381600087803b158015620010df57600080fd5b505af1158015620010f4573d6000803e3d6000fd5b505050506200111c60405180606001604052806023815260200162017bf560239139620023de565b601f54602954604080516020810185905260009362001165936001600160a01b03909116929091015b60408051808303601f190181526000808452602084019092529162002a49565b905062001171620026b9565b6200117f81516001620022cc565b620011998160008151811062000df65762000df662003ad3565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620011f894909360259392919060640162003b2b565b600060405180830381600087803b1580156200121357600080fd5b505af115801562001228573d6000803e3d6000fd5b5050601f5460295460408051602081018890526200125795506001600160a01b03909316935090910162001145565b90506200126781516002620022cc565b620012818160008151811062000df65762000df662003ad3565b620012ac816001815181106200129b576200129b62003ad3565b602002602001015160245462002949565b5050565b620012ba62002007565b600060019050620012e46040518060600160405280603a815260200162017c18603a9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200134394909360239392919060640162003b2b565b600060405180830381600087803b1580156200135e57600080fd5b505af115801562001373573d6000803e3d6000fd5b5050505062001381620026b9565b60006200139e602a54836040516020016200072491815260200190565b9050620013ae81516001620022cc565b620012ac8160008151811062000df65762000df662003ad3565b601f54602080546029546040516001600160a01b039485169463af068c9e94931692620013fa92910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200142892919062003bdc565b600060405180830381600087803b1580156200144357600080fd5b505af115801562001458573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f14012068000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050601f5460208054602954604080518085019290925280518083039094018452818101908190527faf068c9e0000000000000000000000000000000000000000000000000000000090526001600160a01b03938416955063af068c9e94506200156993909116919060440162003bdc565b600060405180830381600087803b1580156200158457600080fd5b505af115801562001599573d6000803e3d6000fd5b50505050565b620005a160106080620015b460388062003c16565b620015c0919062003c16565b620015cc919062003c16565b610100620022cc565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620010525783829060005260206000200180546200161b9062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016499062003c2c565b80156200169a5780601f106200166e576101008083540402835291602001916200169a565b820191906000526020600020905b8154815290600101906020018083116200167c57829003601f168201915b505050505081526020019060010190620015f9565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200179557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017415790505b50505050508152505081526020019060010190620016d3565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101562001052578382906000526020600020018054620017f49062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620018229062003c2c565b8015620018735780601f10620018475761010080835404028352916020019162001873565b820191906000526020600020905b8154815290600101906020018083116200185557829003601f168201915b505050505081526020019060010190620017d2565b60008054610100900460ff1615620018a95750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620019cf5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000008284015282518083038401815260608301909352600092909162001951917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003c62565b60408051601f19818403018152908290526200196d9162003cac565b6000604051808303816000865af19150503d8060008114620019ac576040519150601f19603f3d011682016040523d82523d6000602084013e620019b1565b606091505b5091505080806020019051810190620019cb919062003cca565b9150505b919050565b620019f860405180606001604052806021815260200162017c5260219139620023de565b600062001a287f6b65797776616c0000000000000000000000000000000000000000000000000060295462001e14565b905062001a34620026b9565b62001abc817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f74620000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660405180606001604052806029815260200162017b8f602991396200227f565b60408051808201909152601f81527f6d6f64756c65206e616d65737061636520646f6573206e6f74206d6174636800602082015262001b45907fffffffffffffff00000000000000000000000000000000000000000000000000601084901b16907f6b65797776616c00000000000000000000000000000000000000000000000000906200227f565b62001bc562001b576038601062003c16565b60215460408051808201909152601e81527f7461626c65206e616d65737061636520646f6573206e6f74206d61746368000060208201529184901b7fffffffffffffff000000000000000000000000000000000000000000000000009081169260909290921b16906200227f565b62001c4662001bd48262002ad9565b6fffffffffffffffffffffffffffffffff19166021600e9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166040518060400160405280601981526020017f7461626c65206e616d6520646f6573206e6f74206d61746368000000000000008152506200227f565b50565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b60408051600180825281830190925260009182919060208083019080368337019050509050838160008151811062001ce75762001ce762003ad3565b60200260200101818152505062001cff818462002af2565b9150505b92915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062001d455762001d4562003ad3565b602002602001019060c581111562001d615762001d6162003cee565b908160c581111562001d775762001d7762003cee565b90525062001d858162002d1c565b9392505050565b600062001d9c6070601062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b60008062001e228362002ad9565b9050600062001e318460101b90565b9050603862001e4281601062003c16565b62001e4e919062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c62001e816038601062003c16565b7dffffffffffffff0000000000000000000000000000000000000000000000601088901c167fffffffffffffff00000000000000000000000000000000000000000000000000909316901c91909117177f74620000000000000000000000000000000000000000000000000000000000001791505092915050565b600060405162001f0c9062003848565b604051809103906000f08015801562001f29573d6000803e3d6000fd5b5060405162001f389062003856565b604051809103906000f08015801562001f55573d6000803e3d6000fd5b5060405162001f649062003864565b604051809103906000f08015801562001f81573d6000803e3d6000fd5b5060405162001f909062003872565b604051809103906000f08015801562001fad573d6000803e3d6000fd5b5060405162001fbc9062003880565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f08015801562002001573d6000803e3d6000fd5b50905090565b601f546029546026546028546027546040805160018082528183019092526001600160a01b0390961695630ba51f499594939291816020015b60608152602001906001900390816200204057505060408051600180825281830190925290602082015b60608152602001906001900390816200206a579050506040518763ffffffff1660e01b8152600401620020a39695949392919062003d04565b600060405180830381600087803b158015620020be57600080fd5b505af1158015620020d3573d6000803e3d6000fd5b50505050620021176040518060400160405280601e81526020017f696e7374616c6c206b65797320776974682076616c7565206d6f64756c650000815250620023de565b601f54602080546029546040516001600160a01b039485169463af068c9e949316926200214992910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200217792919062003bdc565b600060405180830381600087803b1580156200219257600080fd5b505af1158015620021a7573d6000803e3d6000fd5b50505050620005a1620026b9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110620021f257620021f262003ad3565b60200260200101818152505060006200220e8583600062002f32565b90506200222962002223826000845162003004565b6200309c565b95945050505050565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200226b919062003d52565b60405180910390a162000cc48383620022cc565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381604051620022b8919062003d52565b60405180910390a162000cc4838362002949565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200235a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e60408201527f745d000000000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162002393919062003d9b565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a881604051620023cc919062003de7565b60405180910390a1620012ac620030af565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024a6919062003cca565b620024ae5750565b601b8054620024bd9062003c2c565b9050600014601b604051602001620024d6919062003ebe565b6040516020818303038152906040529062002529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b60405180910390fd5b50601d816040516200253c919062003cac565b9081526020016040518091039020546000148160405160200162002561919062003f5a565b60405160208183030381529060405290620025ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b50601b620025ba82826200401a565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200261a57600080fd5b505af11580156200262f573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b1580156200269d57600080fd5b505af1158015620026b2573d6000803e3d6000fd5b5050505050565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002787919062003cca565b6200278f5750565b600060a082601c54620027a39190620040e7565b620027af9190620040e7565b620027bc90600162003c16565b9050600081116200282a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e2774207573652067617300000000000000604482015260640162002520565b80601d601b6040516200283e9190620040fd565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016200288d601b826200410b565b506200292b601b8054620028a19062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620028cf9062003c2c565b8015620029205780601f10620028f45761010080835404028352916020019162002920565b820191906000526020600020905b8154815290600101906020018083116200290257829003601f168201915b5050505050620031f6565b604080516020810190915260008152601b9062000cc490826200401a565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620029d79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201527f657333325d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162002a10919062003d9b565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f9981604051620023cc919062003de7565b6060600062002a797f6b65797776616c000000000000000000000000000000000000000000000000008762001e14565b9050606060008451111562002ab65785858560405160200162002a9f93929190620041ed565b604051602081830303815290604052905062002ab9565b50845b62002acd88838380519060200120620032f9565b98975050505050505050565b600062002ae96070601062003c16565b9190911b919050565b60008060008084865162002b07919062003c16565b9050601c81111562002b50576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c602482015260440162002520565b600585111562002b97576040517f7f2372c3000000000000000000000000000000000000000000000000000000008152600481018690526005602482015260440162002520565b60005b865181101562002c7d57600087828151811062002bbb5762002bbb62003ad3565b602002602001015190508060000362002c00576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111562002c3c576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030288838151811062002c605762002c6062003ad3565b6020026020010151901b8517945081806001019250505062002b9a565b50600862002c8e60026020620040e7565b62002c9a919062004228565b82901b92909217916008600162002cb460026020620040e7565b62002cc09190620040e7565b62002ccc919062004228565b8651901b9290921791600860018062002ce860026020620040e7565b62002cf49190620040e7565b62002d009190620040e7565b62002d0c919062004228565b9490941b91909117949350505050565b6000601c8251111562002d615781516040517f5318beb90000000000000000000000000000000000000000000000000000000081526004016200252091815260200190565b60008080805b855181101562002e4f57600062002dae87838151811062002d8c5762002d8c62003ad3565b602002602001015160c581111562002da85762002da862003cee565b620033f6565b90508060000362002dc55760019092019162002dfe565b821562002dfe576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811062002e225762002e2262003ad3565b602002602001015160c581111562002e3e5762002e3e62003cee565b901b94909417935060010162002d67565b50600581111562002e90576040517f5318beb90000000000000000000000000000000000000000000000000000000081526004810182905260240162002520565b8451819003600862002ea560026020620040e7565b62002eb1919062004228565b83901b93909317926008600162002ecb60026020620040e7565b62002ed79190620040e7565b62002ee3919062004228565b81901b9390931792600860018062002efe60026020620040e7565b62002f0a9190620040e7565b62002f169190620040e7565b62002f22919062004228565b9190911b92909217949350505050565b6060600062002f406200345e565b9050306001600160a01b0382160362002f695762002f608585856200349d565b91505062001d85565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779062002fb49088908890889060040162004274565b600060405180830381865afa15801562002fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002f6091908101906200431f565b509392505050565b600081831115801562003018575083518211155b62003057578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040162002520939291906200436d565b6020840162003067848262003c16565b90506000620030778585620040e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600062001d858360206000620034e6565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620031c85760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003163929160200162003c62565b60408051601f19818403018152908290526200317f9162003cac565b6000604051808303816000865af19150503d8060008114620031be576040519150601f19603f3d011682016040523d82523d6000602084013e620031c3565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b62001c467f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316636900a3ae601d846040516200323e919062003cac565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252620032889160040190815260200190565b600060405180830381865afa158015620032a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620032d091908101906200431f565b82604051602001620032e492919062004394565b60405160208183030381529060405262003567565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062003336576200333662003ad3565b60209081029190910101526040517f1e7889770000000000000000000000000000000000000000000000000000000081526000906001600160a01b03871690631e788977906200338f9088908690869060040162004274565b600060405180830381865afa158015620033ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620033d791908101906200431f565b9050620033ec62002223826000845162003004565b9695505050505050565b6000808260c58111156200340e576200340e62003cee565b60ff16905060618110156200342957601f1660010192915050565b60618360c581111562003440576200344062003cee565b036200344f5750601492915050565b50600092915050565b50919050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680620019cf573391505090565b5090565b6060620034de620034b0858585620035dc565b6000620034d885620034c389896200365e565b9060ff166028026038011c64ffffffffff1690565b62003674565b949350505050565b60606000620034f58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816200351e576200351e62004419565b04905060405193506020840160208202810160405281855260005b828110156200355b578451871c82529387019360209091019060010162003539565b50505050509392505050565b62001c46816040516024016200357e919062003f45565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905262003699565b60008383604051602001620035f39291906200442f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b600062001d85620036708484620036ba565b5490565b60405160208101601f19603f848401011660405282825262002ffc8585858462003712565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60008282604051602001620036d19291906200442f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215620037a5576020831062003741576020830484019350602083816200373d576200373d62004419565b0692505b8215620037a5576020839003600081841015620037685750600019600884021c1962003773565b50600019600882021c195b8554600886021b8119845116828216178452508184116200379657505062001599565b50600194909401939182900391015b5b60208210620037c95783548152600190930192601f1990910190602001620037a6565b811562001599576000600019600884021c198251865482169119161782525050505050565b61553a806200446083390190565b8280548282559060005260206000209081019282156200383a579160200282015b828111156200383a5782518255916020019190600101906200381d565b50620034999291506200388e565b611a79806200999a83390190565b6118cc806200b41383390190565b610b15806200ccdf83390190565b61567c806200d7f483390190565b614c6d8062012e7083390190565b5b808211156200349957600081556001016200388f565b6020808252825182820181905260009190848201906040850190845b81811015620038e85783516001600160a01b031683529284019291840191600101620038c1565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015620039d2578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620039bc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062003978565b50978a019795505050918701916001016200391c565b50919998505050505050505050565b600060208284031215620039f457600080fd5b5035919050565b60005b8381101562003a18578181015183820152602001620039fe565b50506000910152565b6000815180845262003a3b816020860160208601620039fb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101562003a9b57828403895262003a8884835162003a21565b9885019893509084019060010162003a6d565b5091979650505050505050565b60208152600062001d85602083018462003a4f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000815480845260208085019450836000528060002060005b8381101562003b205781548752958201956001918201910162003b02565b509495945050505050565b85815260a06020820152600062003b4660a083018762003ae9565b828103604084015262003b5a818762003a21565b9050846060840152828103608084015262002acd818562003a21565b828152604060208201526000620034de604083018462003ae9565b85815260a06020820152600062003bac60a083018762003ae9565b60ff86166040840152828103606084015262003bc9818662003a21565b9150508260808301529695505050505050565b6001600160a01b0383168152604060208201526000620034de604083018462003a21565b634e487b7160e01b600052601160045260246000fd5b8082018082111562001d035762001d0362003c00565b600181811c9082168062003c4157607f821691505b6020821081036200345857634e487b7160e01b600052602260045260246000fd5b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162003c9e816004850160208701620039fb565b919091016004019392505050565b6000825162003cc0818460208701620039fb565b9190910192915050565b60006020828403121562003cdd57600080fd5b8151801515811462001d8557600080fd5b634e487b7160e01b600052602160045260246000fd5b86815285602082015284604082015283606082015260c06080820152600062003d3160c083018562003a4f565b82810360a084015262003d45818562003a4f565b9998505050505050505050565b60408152600560408201527f4572726f72000000000000000000000000000000000000000000000000000000606082015260806020820152600062001d85608083018462003a21565b60408152600062003dd960408301600a81527f2020202020204c65667400000000000000000000000000000000000000000000602082015260400190565b905082602083015292915050565b60408152600062003dd960408301600a81527f2020202020526967687400000000000000000000000000000000000000000000602082015260400190565b6000815462003e348162003c2c565b6001828116801562003e4f576001811462003e835762003eb4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945062003eb4565b8560005260208060002060005b8581101562003eab5781548a82015290840190820162003e90565b50505082870194505b5050505092915050565b7f676173207265706f7274202200000000000000000000000000000000000000008152600062003ef2600c83018462003e25565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600062001d85602083018462003a21565b7f676173207265706f72742022000000000000000000000000000000000000000081526000825162003f9481600c850160208701620039fb565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b601f82111562000cc457600081815260208120601f850160051c8101602086101562003ff15750805b601f850160051c820191505b81811015620040125782815560010162003ffd565b505050505050565b815167ffffffffffffffff81111562004037576200403762003abd565b6200404f8162004048845462003c2c565b8462003fc8565b602080601f8311600181146200408757600084156200406e5750858301515b600019600386901b1c1916600185901b17855562004012565b600085815260208120601f198616915b82811015620040b85788860151825594840194600190910190840162004097565b5085821015620040d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111562001d035762001d0362003c00565b600062001d85828462003e25565b81810362004117575050565b62004123825462003c2c565b67ffffffffffffffff8111156200413e576200413e62003abd565b6200414f8162004048845462003c2c565b6000601f8211600181146200418657600083156200416d5750848201545b600019600385901b1c1916600184901b178455620026b2565b600085815260209020601f19841690600086815260209020845b83811015620041c25782860154825560019586019590910190602001620041a0565b5085831015620040d75793015460001960f8600387901b161c19169092555050600190811b01905550565b6000845162004201818460208901620039fb565b820184815283516200421b816020808501908801620039fb565b0160200195945050505050565b808202811582820484141762001d035762001d0362003c00565b600081518084526020808501945080840160005b8381101562003b205781518752958201959082019060010162004256565b8381526060602082015260006200428f606083018562004242565b905060ff83166040830152949350505050565b600067ffffffffffffffff80841115620042c057620042c062003abd565b604051601f8501601f19908116603f01168101908282118183101715620042eb57620042eb62003abd565b816040528093508581528686860111156200430557600080fd5b62004315866020830187620039fb565b5050509392505050565b6000602082840312156200433257600080fd5b815167ffffffffffffffff8111156200434a57600080fd5b8201601f810184136200435c57600080fd5b62001cff84825160208401620042a2565b60608152600062004382606083018662003a21565b60208301949094525060400152919050565b7f474153205245504f52543a200000000000000000000000000000000000000000815260008351620043ce81600c850160208801620039fb565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516200440d81600d840160208801620039fb565b01600d01949350505050565b634e487b7160e01b600052601260045260246000fd5b82815260006020808301845182860160005b8281101562003a9b578151845292840192908401906001016200444156fe60a060405234801561001057600080fd5b506100477f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580546001600160a01b03191630179055565b6040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2336080526040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907f7f8f36afe3fb61c459c1a54a60b8a477eab02cc58e49f547561a40906239cb8290600090a2608051615452620000e86000396000818161036f015261139601526154526000f3fe6080604052600436106101d15760003560e01c80638c364d59116100f7578063c4d66de811610095578063d9c03a0411610064578063d9c03a04146106d1578063dbbf0e21146105d1578063e228a4a3146106f1578063ef6ea8621461071157610266565b8063c4d66de814610651578063cc49db7e14610671578063d03edb8c14610691578063d4285dc2146106b157610266565b8063af068c9e116100d1578063af068c9e146105f1578063b047c1eb14610611578063c0a2895a14610631578063c11222291461054b57610266565b80638c364d59146105915780639f1fcf0a146105b1578063a53417ed146105d157610266565b8063390baae01161016f5780634dc77d971161013e5780634dc77d971461050b578063505a181d1461052b5780636951955d1461054b578063894ecc581461057e57610266565b8063390baae01461047b5780633a77c2c21461049b5780633ae7af08146104c9578063419b58fd146104dc57610266565b8063150f3262116101ab578063150f3262146103fb5780631e7889771461041b578063298314fb1461043b5780633708196e1461045b57610266565b806302d05d3f1461035d57806305242d2f146103ae578063114a7266146103db57610266565b366102665760408051616e7360f01b6020820152600060228201819052603082018190529161021891016040516020818303038152906040526102139061459d565b610731565b60408051616e7360f01b6020820152600060228201819052603082015291925061026491016040516020818303038152906040526102559061459d565b61025f34846145da565b61080f565b005b303303610299576040516327a1460b60e21b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6000806102b16000356001600160e01b031916610901565b91509150816000801b036102ff576040517ffdde54e20000000000000000000000000000000000000000000000000000000081526001600160e01b0319600035166004820152602401610290565b60006103436000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250869150610a119050565b9050600061035333858434610a44565b9050805160208201f35b34801561036957600080fd5b506103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103ce6103c936600461464a565b610a71565b6040516103a59190614700565b3480156103e757600080fd5b506102646103f6366004614755565b610ab4565b34801561040757600080fd5b50610264610416366004614755565b610b67565b34801561042757600080fd5b506103ce6104363660046147e2565b610c12565b34801561044757600080fd5b50610264610456366004614840565b610c5c565b34801561046757600080fd5b506102646104763660046148ed565b610d45565b34801561048757600080fd5b506102646104963660046148ed565b610dfb565b3480156104a757600080fd5b506104bb6104b6366004614983565b610ea8565b6040519081526020016103a5565b6103ce6104d7366004614a53565b610eb9565b3480156104e857600080fd5b506104fc6104f7366004614a9a565b610ef5565b6040516103a593929190614aed565b34801561051757600080fd5b506103ce610526366004614b8d565b610f4a565b34801561053757600080fd5b50610264610546366004614bf6565b610f59565b34801561055757600080fd5b507f312e302e302d756e6175646974656400000000000000000000000000000000006104bb565b6103ce61058c366004614c57565b610fce565b34801561059d57600080fd5b506104bb6105ac36600461464a565b61112a565b3480156105bd57600080fd5b506104bb6105cc366004614cb0565b61116d565b3480156105dd57600080fd5b506104bb6105ec366004614d0f565b61117b565b3480156105fd57600080fd5b5061026461060c366004614d66565b611188565b34801561061d57600080fd5b5061026461062c366004614da0565b611204565b34801561063d57600080fd5b5061026461064c366004614e2f565b6112af565b34801561065d57600080fd5b5061026461066c366004614ebc565b61135d565b34801561067d57600080fd5b506104fc61068c366004614bf6565b6114d8565b34801561069d57600080fd5b506103ce6106ac3660046147e2565b61152a565b3480156106bd57600080fd5b506104bb6106cc366004614983565b61156b565b3480156106dd57600080fd5b506102646106ec36600461464a565b611576565b3480156106fd57600080fd5b506104bb61070c366004614983565b6115f6565b34801561071d57600080fd5b5061026461072c366004614755565b611601565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061076a5761076a614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e636573000000000000000000000000000000000000000000000000603083015260009161080791015b6040516020818303038152906040526107df9061459d565b8360007e200100200000000000000000000000000000000000000000000000000000006116ac565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061084557610845614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526108fc906108b19061459d565b826000856040516020016108c791815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006116d9565b505050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061095a5761095a614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f720000000000000000000000000000000060308201528151808203909301835281019052600090819081906109f3906109cd9061459d565b857e240200200400000000000000000000000000000000000000000000000000006116ee565b925092509250610a048383836117f6565b9550955050505050915091565b82820160200180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052825b9392505050565b6060600080610a558787878761180e565b9150915081610a6757610a67816119f2565b9695505050505050565b6060610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506119fa9050565b303303610ae2576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610aec8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611a8b92505050565b505050505050565b303303610b95576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610b9f8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611aa692505050565b6060610c5385858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611ae1915050565b95945050505050565b303303610c8a576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610c948833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b1b92505050565b5050505050505050565b303303610d73576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610d7d8733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611b31915050565b50505050505050565b303303610e29576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610e338733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506116d9915050565b6000610eb382611b74565b92915050565b6060303303610ee9576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610a3d33848434610a44565b606060006060610f3a878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506116ee915050565b9250925092509450945094915050565b6060610a678686868686611c44565b303303610f87576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610f918333611a3f565b6108fc83838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d0592505050565b6060303303610ffe576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b038516036110215761101a33848434610a44565b9050610a3d565b600061102d8533611d18565b905061103c8186338787611dea565b156110555761104d85858534610a44565b915050610a3d565b6000611062866000611d18565b90506110718187338888611dea565b1561108b5761108286868634610a44565b92505050610a3d565b60006110bd616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000881617611ebf565b90506110cc8188338989611dea565b156110e7576110dd87878734610a44565b9350505050610a3d565b6040517fc86745f90000000000000000000000000000000000000000000000000000000081526001600160a01b0388166004820152336024820152604401610290565b6000610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116ac9050565b6000610c5385858585611f59565b6000610807848484611fa1565b3033036111b6576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b60408051616e7360f01b602082015260006022820181905260308201526111f691016040516020818303038152906040526111f09061459d565b33611fb7565b6112008282612008565b5050565b303303611232576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b61123c8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061211a92505050565b3033036112dd576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6112e78833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506123c992505050565b30330361138b576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461142f5760408051616e7360f01b602082015260006022820181905260308201526113fa91016040516020818303038152906040526113f59061459d565b6123e1565b336040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b600061147b7f636f7265000000000000000000000000000000000000000000000000000000007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47061250f565b6001600160a01b0316146114bb576040517f15e34a4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008152602081019091526114d5908290612008565b50565b60606000606061151b8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061262492505050565b92509250925093509350939050565b6060610c538585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525087925061264a915050565b6000610eb382612660565b3033036115a4576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6115ae8533611a3f565b6115ef858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792508691506126d49050565b5050505050565b6000610eb38261272d565b30330361162f576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6116398633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061275392505050565b6000610c536116bb868661278e565b60ff858116601b0360080285901c166116d485876127e4565b612827565b6115ef85856116e884876127e4565b8561211a565b60606000606060006116ff85612878565b905061170c87878361289b565b93506000611719866128d4565b905080156117eb5761172b8888612911565b935066ffffffffffffff841667ffffffffffffffff81111561174f5761174f61499c565b6040519080825280601f01601f191660200182016040528015611779576020820181803683370190505b5092506020830160005b828160ff1610156117e857600061179b8b8b84612924565b905060006117b8888460ff166028026038011c64ffffffffff1690565b90506117c782600083876129a4565b6117d181856145da565b9350505080806117e090614f1a565b915050611783565b50505b505093509350939050565b60008061180285612a73565b90969095509350505050565b60006060600061181d86612a88565b905060005b81518110156118fa57600082828151811061183f5761183f614ed9565b6020026020010151905061186b6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156118e7576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c3323031906118b4908c908c908c90600401614f39565b600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b505050505b50806118f281614f61565b915050611822565b5061190787858888612b74565b909350915060005b81518110156119e757600082828151811061192c5761192c614ed9565b602002602001015190506119586002826affffffffffffffffffffff1916612b5690919063ffffffff16565b156119d4576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f99906119a1908c908c908c90600401614f39565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b50806119df81614f61565b91505061190f565b505094509492505050565b805160208201fd5b6060611a0582612c8f565b8360ff161015611a2257611a1b85858585612ca1565b9050610807565b611a1b8585611a3085612c8f565b611a3a9087614f7b565b611ae1565b611a498282612cce565b61120057611a56826123e1565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b611aa084848484611a9b89611b74565b611b31565b50505050565b6000611ab28585612911565b90506000611acf828560ff166028026038011c64ffffffffff1690565b9050610b5f8686868460008888612d11565b6060610807611af1858585612924565b6000611b1685611b018989612911565b9060ff166028026038011c64ffffffffff1690565b613127565b6115ef8585858585611b2c8b611b74565b61314a565b611b3a81612c8f565b8360ff161015611b5657611b5185858585856116d9565b6115ef565b6115ef8585611b6484612c8f565b611b6e9087614f7b565b85612753565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b603082015260009101604051602081830303815290604052611bbc9061459d565b8203611be857507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b6030820152610eb391611c3b9101604051602081830303815290604052611c359061459d565b846134a3565b60206000612827565b60606000611c528787612911565b90506000611c6f828760ff166028026038011c64ffffffffff1690565b90508085101580611c7f57508084115b15611cda578081861015611c9d57611c98600186614f94565b611c9f565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610290565b6000611ce7898989612924565b9050611cf88187611b168189614f94565b9998505050505050505050565b6112008282611d1385611b74565b6134bf565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611d5d57611d5d614ed9565b602002602001018181525050826001600160a01b031660001b81600181518110611d8957611d89614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152600091610c5391016107c7565b6000611df5866137d2565b15611e0257506001610c53565b85611e0f57506000610c53565b600080611e8b8660008a8a8989604051602401611e2e93929190614f39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1a86b55000000000000000000000000000000000000000000000000000000000179052612b74565b9150915081611e9f57600092505050610c53565b80806020019051810190611eb39190614fa7565b98975050505050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611ef857611ef8614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c6567617400000000000000000000000000000000603083015260009161080791016107c7565b600080611f6583612c8f565b90508060ff168460ff161015611f8d5760ff848116601b0360080284901c165b915050610807565b611f858686611f9c8488614f7b565b61384d565b6000610807848484611fb288611b74565b611f59565b6001600160a01b038116611ff1616e7360f01b7dffffffffffffffffffffffffffff0000000000000000000000000000000085161761385d565b6001600160a01b03161461120057611a56826123e1565b612032827f780ac2fc00000000000000000000000000000000000000000000000000000000613902565b6120a7336000848460405160240161204a9190614700565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c5b03350000000000000000000000000000000000000000000000000000000017905261395d565b50611200826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210d9190614fc9565b825160208401208461396e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036121a457837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161219793929190615037565b60405180910390a2611aa0565b60006121b0858561278e565b905060006121bd86613aae565b905060005b815181101561229c5760008282815181106121df576121df614ed9565b6020026020010151905061220b6004826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612289576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612256908b908b908b908b9060040161506a565b600060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050505b508061229481614f61565b9150506121c2565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516122d193929190615037565b60405180910390a26122ec828565ffffffffffff1685613b49565b60005b8151811015610df257600082828151811061230c5761230c614ed9565b602002602001015190506123386008826affffffffffffffffffffff1916612b5690919063ffffffff16565b156123b6576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612383908b908b908b908b9060040161506a565b600060405180830381600087803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b505050505b50806123c181614f61565b9150506122ef565b610b5f8686868686866123dc8d8d612911565b612d11565b606081601081901b60006123f483613b5f565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561244f5761244a7fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613b76565b612486565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff198316156124ad576124a883613b76565b6124e4565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016124f6939291906150a3565b6040516020818303038152906040529350505050919050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061255b5761255b614ed9565b602002602001018181525050828160018151811061257b5761257b614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603083015260009161261891015b6040516020818303038152906040526125f09061459d565b8360007e140100140000000000000000000000000000000000000000000000000000006116ac565b60601c95945050505050565b60606000606061263d858561263888611b74565b6116ee565b9250925092509250925092565b606061080784848461265b88611b74565b6119fa565b600061266b82613c06565b905061267682613cbf565b6126cf57818260405160200161268e91815260200190565b60408051601f19818403018152908290527f41e713ad0000000000000000000000000000000000000000000000000000000082526102909291600401615131565b919050565b60006126e08585612911565b905060006126fd828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866127168764ffffffffff8716614f94565b604080516000815260208101909152889088612d11565b600061273882613da1565b9050806126cf57818260405160200161268e91815260200190565b600061275f8585612911565b9050600061277c828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866000858888612d11565b600082826040516020016127a392919061514a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561281f5761280b60ff601b83900360080287901c16836145da565b91508061281781614f61565b9150506127e9565b509392505050565b60006020821061284d5760208204840193506020828161284957612849615185565b0691505b508254600882021b60208290038084111561281f576001850154600882021c82179150509392505050565b6000600861288860026020614f94565b612892919061519b565b9190911c919050565b6060816000036128ba5750604080516020810190915260008152610a3d565b60006128c6858561278e565b9050610c5381600085613127565b600060086001806128e760026020614f94565b6128f19190614f94565b6128fb9190614f94565b612905919061519b565b8260ff911c1692915050565b6000610a3d6129208484613e5a565b5490565b6000838360405160200161293992919061514a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215612a2d57602083106129ce576020830484019350602083816129ca576129ca615185565b0692505b8215612a2d5760208390036000818410156129f25750600019600884021c196129fd565b50600019600882021c195b8554600886021b811984511682821617845250818411612a1e575050611aa0565b50600194909401939182900391015b5b60208210612a4f5783548152600190930192601f1990910190602001612a2e565b8115611aa0576000600019600884021c198251865482169119161782525050505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612ac257612ac2614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091612b3f91015b604051602081830303815290604052612b379061459d565b836000611ae1565b9050610807612b518260008451613eb0565b613f40565b60008160ff1682612b678560581c90565b1660ff1614905092915050565b60006060600080612b8486613f51565b90925090506001600160a01b038216612bd55785612ba1876123e1565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610290929190615131565b80612be457612be48689611a3f565b8615612c30577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000612c1d82610731565b9050612c2d8261025f8b846145da565b50505b6000612c3c8760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c7457612c6f88888488614035565b612c80565b612c80888884886140ad565b90999098509650505050505050565b6000600860016128f160026020614f94565b6060610c53612cb0868661278e565b612cba84866127e4565b60ff868116601b0360080286901c16613127565b6000612d01616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516178361410e565b80610a3d5750610a3d838361410e565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614612d9b57613a3160f11b8788604051602001612d5991815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102909392916004016151b2565b6000612db6828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612dcf9190614f94565b612dd991906145da565b9050808214158015612dfb575081612df186886151f3565b64ffffffffff1614155b15612e4b576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610290565b818664ffffffffff161115612e9c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610290565b6000612ea98489846141e0565b90506000612eb68b613aae565b905060005b8151811015612f8b576000828281518110612ed857612ed8614ed9565b60200260200101519050612f046010826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612f7857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401612f459796959493929190615218565b600060405180830381600087803b158015612f5f57600080fd5b505af1158015612f73573d6000803e3d6000fd5b505050505b5080612f8381614f61565b915050612ebb565b5064ffffffffff881660005b8a60ff168160ff161015612fca57612fbe878260ff166028026038011c64ffffffffff1690565b90910190600101612f97565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c604051613003959493929190615276565b60405180910390a25082841461302457600061301f8c8c613e5a565b839055505b60006130318c8c8c612924565b9050613045818a64ffffffffff1689613b49565b5060005b815181101561311957600082828151811061306657613066614ed9565b602002602001015190506130926020826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561310657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016130d39796959493929190615218565b600060405180830381600087803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b505050505b508061311181614f61565b915050613049565b505050505050505050505050565b60405160208101601f19603f848401011660405282825261281f858585846129a4565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036131d657857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516131c994939291906152bc565b60405180910390a2610b5f565b60006131e187613aae565b905060005b81518110156132c457600082828151811061320357613203614ed9565b6020026020010151905061322f6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156132b1576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061327e908c908c908c908c908c908c906004016152fb565b600060405180830381600087803b15801561329857600080fd5b505af11580156132ac573d6000803e3d6000fd5b505050505b50806132bc81614f61565b9150506131e6565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516132fb94939291906152bc565b60405180910390a2600061330f888861278e565b905060006020870190506133278260008951846142ae565b6000613332856128d4565b11156133b65760006133448a8a613e5a565b878155905060208601915060008060005b61335e886128d4565b8160ff1610156133b1576133738d8d83612924565b925061338e8a8260ff166028026038011c64ffffffffff1690565b915061339d83600084886142ae565b6133a782866145da565b9450600101613355565b505050505b60005b83518110156134975760008482815181106133d6576133d6614ed9565b602002602001015190506134026002826affffffffffffffffffffff1916612b5690919063ffffffff16565b15613484576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613451908e908e908e908e908e908e906004016152fb565b600060405180830381600087803b15801561346b57600080fd5b505af115801561347f573d6000803e3d6000fd5b505050505b508061348f81614f61565b9150506133b9565b50505050505050505050565b60408051602081018490529081018290526000906060016127a3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361354557827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516135389190615354565b60405180910390a2505050565b600061355084613aae565b905060005b815181101561362d57600082828151811061357257613572614ed9565b6020026020010151905061359e6040826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561361a576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906135e790899089908990600401615367565b600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b505050505b508061362581614f61565b915050613555565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078460405161365e9190615354565b60405180910390a26000613672858561278e565b90506136cb81600061368386612878565b67ffffffffffffffff81111561369b5761369b61499c565b6040519080825280601f01601f1916602001820160405280156136c5576020820181803683370190505b50613b49565b60006136d6846128d4565b11156136f75760006136e88686613e5a565b90506136f581602061436e565b505b60005b8251811015610b5f57600083828151811061371757613717614ed9565b602002602001015190506137436080826affffffffffffffffffffff1916612b5690919063ffffffff16565b156137bf576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b9061378c908a908a908a90600401615367565b600060405180830381600087803b1580156137a657600080fd5b505af11580156137ba573d6000803e3d6000fd5b505050505b50806137ca81614f61565b9150506136fa565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d697465640000000000000000000000000000000000000000000000603083015291016040516020818303038152906040526138459061459d565b909114919050565b600061080782611b018686612911565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061389657613896614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526000916138f791016125d8565b60601c949350505050565b61390c82826143ab565b611200576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610290565b6060600080610a55878787876140ad565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff1916816000815181106139b6576139b6614ed9565b60200260200101818152505082816001815181106139d6576139d6614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052611aa090613a429061459d565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006116d9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ae857613ae8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091612b3f9101612b1f565b6108fc83838351613b5a8560200190565b6142ae565b6000613b6d607060106145da565b9190911b919050565b606060005b6010811015613bd6576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613bd65780613bce81614f61565b915050613b7b565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610807565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613c3f57613c3f614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613c979061459d565b8360017e600302202020000000000000000000000000000000000000000000000000006116ac565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613cf857613cf8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091613d9591015b604051602081830303815290604052613d6d9061459d565b8360007e010100010000000000000000000000000000000000000000000000000000006116ac565b90506108078160f81c90565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613dda57613dda614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613e329061459d565b8360027e600302202020000000000000000000000000000000000000000000000000006116ac565b60008282604051602001613e6f92919061514a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000818311158015613ec3575083518211155b613eff578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161029093929190615390565b60208401613f0d84826145da565b90506000613f1b8585614f94565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610a3d83601560006143c7565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f8b57613f8b614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061402490613ffe9061459d565b857e150200140100000000000000000000000000000000000000000000000000006116ee565b925092509250610a04838383614442565b60006060836001600160a01b0316600061405085898961444e565b60405161405d91906153b5565b60006040518083038185875af1925050503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b606091505b509097909650945050505050565b60006060836001600160a01b03166140c684888861444e565b6040516140d391906153b5565b600060405180830381855af49150503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061414757614147614ed9565b602002602001018181525050826001600160a01b031660001b8160018151811061417357614173614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f7572636541636365737300000000000000000000000000000000000060308301526000916141d49101613d55565b9050610c538160f81c90565b600064ffffffffff821115614224576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610290565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510614256578085038201915061425e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561432857602083106142d8576020830484019350602083816142d4576142d4615185565b0692505b82156143285760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411614319575050611aa0565b50600194909401939182900391015b5b6020821061434a5780518455600190930192601f1990910190602001614329565b8115611aa0576000600019600884021c198554835182169119161785555050505050565b6000602061437d83601f6145da565b61438791906153d1565b61439190846145da565b90505b808310156108fc5760008355600183019250614394565b60006143b68361447d565b8015610a3d5750610a3d83836144c9565b606060006143d58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816143fb576143fb615185565b04905060405193506020840160208202810160405281855260005b82811015614436578451871c825293870193602090910190600101614416565b50505050509392505050565b60008061180285614581565b6060838383604051602001614465939291906153f3565b60405160208183030381529060405290509392505050565b60006144a9827f01ffc9a7000000000000000000000000000000000000000000000000000000006144c9565b8015610eb357506144c2826001600160e01b03196144c9565b1592915050565b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561456a575060208210155b80156145765750600081115b979650505050505050565b6020810151603482015160609190911c9060009060f81c612a81565b805160208083015191908110156145be576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eb357610eb36145c4565b60008083601f8401126145ff57600080fd5b50813567ffffffffffffffff81111561461757600080fd5b6020830191508360208260051b850101111561463257600080fd5b9250929050565b803560ff811681146126cf57600080fd5b60008060008060006080868803121561466257600080fd5b85359450602086013567ffffffffffffffff81111561468057600080fd5b61468c888289016145ed565b909550935061469f905060408701614639565b949793965091946060013592915050565b60005b838110156146cb5781810151838201526020016146b3565b50506000910152565b600081518084526146ec8160208601602086016146b0565b601f01601f19169290920160200192915050565b602081526000610a3d60208301846146d4565b60008083601f84011261472557600080fd5b50813567ffffffffffffffff81111561473d57600080fd5b60208301915083602082850101111561463257600080fd5b6000806000806000806080878903121561476e57600080fd5b86359550602087013567ffffffffffffffff8082111561478d57600080fd5b6147998a838b016145ed565b90975095508591506147ad60408a01614639565b945060608901359150808211156147c357600080fd5b506147d089828a01614713565b979a9699509497509295939492505050565b600080600080606085870312156147f857600080fd5b84359350602085013567ffffffffffffffff81111561481657600080fd5b614822878288016145ed565b9094509250614835905060408601614639565b905092959194509250565b60008060008060008060008060a0898b03121561485c57600080fd5b88359750602089013567ffffffffffffffff8082111561487b57600080fd5b6148878c838d016145ed565b909950975060408b01359150808211156148a057600080fd5b6148ac8c838d01614713565b909750955060608b0135945060808b01359150808211156148cc57600080fd5b506148d98b828c01614713565b999c989b5096995094979396929594505050565b600080600080600080600060a0888a03121561490857600080fd5b87359650602088013567ffffffffffffffff8082111561492757600080fd5b6149338b838c016145ed565b909850965086915061494760408b01614639565b955060608a013591508082111561495d57600080fd5b5061496a8a828b01614713565b989b979a50959894979596608090950135949350505050565b60006020828403121561499557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156149db576149db61499c565b604052919050565b600082601f8301126149f457600080fd5b813567ffffffffffffffff811115614a0e57614a0e61499c565b614a216020601f19601f840116016149b2565b818152846020838601011115614a3657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614a6657600080fd5b82359150602083013567ffffffffffffffff811115614a8457600080fd5b614a90858286016149e3565b9150509250929050565b60008060008060608587031215614ab057600080fd5b84359350602085013567ffffffffffffffff811115614ace57600080fd5b614ada878288016145ed565b9598909750949560400135949350505050565b606081526000614b0060608301866146d4565b8460208401528281036040840152610a6781856146d4565b600082601f830112614b2957600080fd5b8135602067ffffffffffffffff821115614b4557614b4561499c565b8160051b614b548282016149b2565b9283528481018201928281019087851115614b6e57600080fd5b83870192505b8483101561457657823582529183019190830190614b74565b600080600080600060a08688031215614ba557600080fd5b85359450602086013567ffffffffffffffff811115614bc357600080fd5b614bcf88828901614b18565b945050614bde60408701614639565b94979396509394606081013594506080013592915050565b600080600060408486031215614c0b57600080fd5b83359250602084013567ffffffffffffffff811115614c2957600080fd5b614c35868287016145ed565b9497909650939450505050565b6001600160a01b03811681146114d557600080fd5b600080600060608486031215614c6c57600080fd5b8335614c7781614c42565b925060208401359150604084013567ffffffffffffffff811115614c9a57600080fd5b614ca6868287016149e3565b9150509250925092565b60008060008060808587031215614cc657600080fd5b84359350602085013567ffffffffffffffff811115614ce457600080fd5b614cf087828801614b18565b935050614cff60408601614639565b9396929550929360600135925050565b600080600060608486031215614d2457600080fd5b83359250602084013567ffffffffffffffff811115614d4257600080fd5b614d4e86828701614b18565b925050614d5d60408501614639565b90509250925092565b60008060408385031215614d7957600080fd5b8235614d8481614c42565b9150602083013567ffffffffffffffff811115614a8457600080fd5b60008060008060008060808789031215614db957600080fd5b86359550602087013567ffffffffffffffff80821115614dd857600080fd5b614de48a838b016145ed565b90975095506040890135915065ffffffffffff82168214614e0457600080fd5b909350606088013590808211156147c357600080fd5b803564ffffffffff811681146126cf57600080fd5b60008060008060008060008060c0898b031215614e4b57600080fd5b88359750602089013567ffffffffffffffff80821115614e6a57600080fd5b614e768c838d016145ed565b9099509750879150614e8a60408c01614639565b9650614e9860608c01614e1a565b9550614ea660808c01614e1a565b945060a08b01359150808211156148cc57600080fd5b600060208284031215614ece57600080fd5b8135610a3d81614c42565b634e487b7160e01b600052603260045260246000fd5b604081526000614f0260408301856146d4565b90506001600160a01b03831660208301529392505050565b600060ff821660ff8103614f3057614f306145c4565b60010192915050565b6001600160a01b0384168152826020820152606060408201526000610c5360608301846146d4565b60006000198203614f7457614f746145c4565b5060010190565b60ff8281168282160390811115610eb357610eb36145c4565b81810381811115610eb357610eb36145c4565b600060208284031215614fb957600080fd5b81518015158114610a3d57600080fd5b600060208284031215614fdb57600080fd5b81516fffffffffffffffffffffffffffffffff1981168114610a3d57600080fd5b600081518084526020808501945080840160005b8381101561502c57815187529582019590820190600101615010565b509495945050505050565b60608152600061504a6060830186614ffc565b65ffffffffffff851660208401528281036040840152610a6781856146d4565b8481526080602082015260006150836080830186614ffc565b65ffffffffffff85166040840152828103606084015261457681856146d4565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516151048160038601602089016146b0565b8084019050816003820152845191506151248260048301602088016146b0565b0160040195945050505050565b82815260406020820152600061080760408301846146d4565b82815260006020808301845182860160005b828110156151785781518452928401929084019060010161515c565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b8082028115828204841417610eb357610eb36145c4565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000610c5360608301846146d4565b64ffffffffff818116838216019080821115615211576152116145c4565b5092915050565b87815260e06020820152600061523160e0830189614ffc565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261526881856146d4565b9a9950505050505050505050565b60a08152600061528960a0830188614ffc565b65ffffffffffff8716602084015264ffffffffff861660408401528460608401528281036080840152611eb381856146d4565b6080815260006152cf6080830187614ffc565b82810360208401526152e181876146d4565b9050846040840152828103606084015261457681856146d4565b86815260c06020820152600061531460c0830188614ffc565b828103604084015261532681886146d4565b9050856060840152828103608084015261534081866146d4565b9150508260a0830152979650505050505050565b602081526000610a3d6020830184614ffc565b8381526060602082015260006153806060830185614ffc565b9050826040830152949350505050565b6060815260006153a360608301866146d4565b60208301949094525060400152919050565b600082516153c78184602087016146b0565b9190910192915050565b6000826153ee57634e487b7160e01b600052601260045260246000fd5b500490565b600084516154058184602089016146b0565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea164736f6c6343000815000a608060405234801561001057600080fd5b50611a59806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806345ec93541161005b57806345ec9354146100ec5780638d53b208146100ff578063e1af802c14610112578063ef5d6bbb1461011a57600080fd5b806301ffc9a714610082578063119df25f146100aa57806340554c3a146100d7575b600080fd5b61009561009036600461165b565b61012d565b60405190151581526020015b60405180910390f35b6100b26101c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461169d565b6101d5565b005b604051601f1936013581526020016100a1565b6100ea61010d36600461169d565b6101f6565b6100b261020c565b6100ea61012836600461169d565b610216565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101c057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d061023d565b905090565b6101e6826101e16101c6565b61026f565b6101f282826001610333565b5050565b610202826101e16101c6565b6101f28282610463565b60006101d0610568565b610222826101e16101c6565b61022c82826105b4565b6101e6826102386101c6565b610463565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061026c5750335b90565b73ffffffffffffffffffffffffffffffffffffffff81166102d17f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008516176106c2565b73ffffffffffffffffffffffffffffffffffffffff16146101f2576102f58261079d565b816040517fd787b73700000000000000000000000000000000000000000000000000000000815260040161032a929190611736565b60405180910390fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061036857610368611784565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106103a1576103a1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261045d9061040d9061179a565b8260008560405160200161042891151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006108da565b50505050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061049857610498611784565b6020026020010181815250508173ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106104d1576104d1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526105639061053d9061179a565b827e010100010000000000000000000000000000000000000000000000000000006108f6565b505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806105af573391505090565b919050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105ea576105ea611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201528151808203909301835281019052610563906106569061179a565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006108da565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106106fb576106fb611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906107929061076a9061179a565b8360007e14010014000000000000000000000000000000000000000000000000000000610c11565b60601c949350505050565b606081601081901b60006107b083610c47565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561080b576108067fffffffffffffffffffffffffffff0000000000000000000000000000000000008416610c5e565b610842565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156108785761087383610c5e565b6108af565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016108c1939291906117c1565b6040516020818303038152906040529350505050919050565b6108ef85856108e98487610d10565b85610d53565b5050505050565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361097c57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161096f919061188a565b60405180910390a2505050565b60006109878461100b565b905060005b8151811015610a645760008282815181106109a9576109a9611784565b602002602001015190506109d56040826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610a51576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590610a1e9089908990899060040161189d565b600060405180830381600087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050505b5080610a5c816118dc565b91505061098c565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051610a95919061188a565b60405180910390a26000610aa98585611109565b9050610b02816000610aba8661115f565b67ffffffffffffffff811115610ad257610ad261176e565b6040519080825280601f01601f191660200182016040528015610afc576020820181803683370190505b50611182565b6000610b0d84611198565b1115610b2e576000610b1f86866111d5565b9050610b2c81602061122b565b505b60005b8251811015610c09576000838281518110610b4e57610b4e611784565b60200260200101519050610b7a6080826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610bf6576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90610bc3908a908a908a9060040161189d565b600060405180830381600087803b158015610bdd57600080fd5b505af1158015610bf1573d6000803e3d6000fd5b505050505b5080610c01816118dc565b915050610b31565b505050505050565b6000610c3e610c208686611109565b60ff858116601b0360080285901c16610c398587610d10565b611268565b95945050505050565b6000610c55607060106118f6565b9190911b919050565b606060005b6010811015610ccd577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615610ccd5780610cc5816118dc565b915050610c63565b604080517fffffffffffffffffffffffffffffffff000000000000000000000000000000008516602082015281516030909101909152818152805b949350505050565b600080805b8360ff16811015610d4b57610d3760ff601b83900360080287901c16836118f6565b915080610d43816118dc565b915050610d15565b509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610ddd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610dd093929190611909565b60405180910390a261045d565b6000610de98585611109565b90506000610df68661100b565b905060005b8151811015610ed5576000828281518110610e1857610e18611784565b60200260200101519050610e446004826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610ec2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610e8f908b908b908b908b90600401611946565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050505b5080610ecd816118dc565b915050610dfb565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610f0a93929190611909565b60405180910390a2610f25828565ffffffffffff1685611182565b60005b8151811015611002576000828281518110610f4557610f45611784565b60200260200101519050610f716008826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610fef576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610fbc908b908b908b908b90600401611946565b600060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050505b5080610ffa816118dc565b915050610f28565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061104557611045611784565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110d4906110cc9061179a565b8360006112b9565b9050610d086110e682600084516112f3565b611383565b60008160ff16826110fc8560581c90565b1660ff1614905092915050565b6000828260405160200161111e92919061198a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000600861116f600260206119c5565b61117991906119d8565b9190911c919050565b610563838383516111938560200190565b61139b565b600060086001806111ab600260206119c5565b6111b591906119c5565b6111bf91906119c5565b6111c991906119d8565b8260ff911c1692915050565b600082826040516020016111ea92919061198a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000602061123a83601f6118f6565b6112449190611a05565b61124e90846118f6565b90505b808310156105635760008355600183019250611251565b60006020821061128e5760208204840193506020828161128a5761128a6119ef565b0691505b508254600882021b602082900380841115610d4b576001850154600882021c82179150509392505050565b6060610d086112c985858561145b565b60006112ee856112d989896114db565b9060ff166028026038011c64ffffffffff1690565b6114ee565b6000818311158015611306575083518211155b611342578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161032a93929190611a27565b6020840161135084826118f6565b9050600061135e85856119c5565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006113948360156000611511565b9392505050565b821561141557602083106113c5576020830484019350602083816113c1576113c16119ef565b0692505b82156114155760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161140657505061045d565b50600194909401939182900391015b5b602082106114375780518455600190930192601f1990910190602001611416565b811561045d576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161147092919061198a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006113946114ea84846111d5565b5490565b60405160208101601f19603f8484010116604052828252610d4b8585858461158c565b6060600061151f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611545576115456119ef565b04905060405193506020840160208202810160405281855260005b82811015611580578451871c825293870193602090910190600101611560565b50505050509392505050565b821561161557602083106115b6576020830484019350602083816115b2576115b26119ef565b0692505b82156116155760208390036000818410156115da5750600019600884021c196115e5565b50600019600882021c195b8554600886021b81198451168282161784525081841161160657505061045d565b50600194909401939182900391015b5b602082106116375783548152600190930192601f1990910190602001611616565b811561045d576000600019600884021c198251865482169119161782525050505050565b60006020828403121561166d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461139457600080fd5b600080604083850312156116b057600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff811681146116db57600080fd5b809150509250929050565b60005b838110156117015781810151838201526020016116e9565b50506000910152565b600081518084526117228160208601602086016116e6565b601f01601f19169290920160200192915050565b604081526000611749604083018561170a565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156117bb576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516118228160038601602089016116e6565b8084019050816003820152845191506118428260048301602088016116e6565b0160040195945050505050565b600081518084526020808501945080840160005b8381101561187f57815187529582019590820190600101611863565b509495945050505050565b602081526000611394602083018461184f565b8381526060602082015260006118b6606083018561184f565b9050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600060001982036118ef576118ef6118c6565b5060010190565b808201808211156101c0576101c06118c6565b60608152600061191c606083018661184f565b65ffffffffffff85166020840152828103604084015261193c818561170a565b9695505050505050565b84815260806020820152600061195f608083018661184f565b65ffffffffffff85166040840152828103606084015261197f818561170a565b979650505050505050565b82815260006020808301845182860160005b828110156119b85781518452928401929084019060010161199c565b5091979650505050505050565b818103818111156101c0576101c06118c6565b80820281158282048414176101c0576101c06118c6565b634e487b7160e01b600052601260045260246000fd5b600082611a2257634e487b7160e01b600052601260045260246000fd5b500490565b606081526000611a3a606083018661170a565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b506118ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806345ec93541161005057806345ec9354146100e1578063c9c85a60146100f4578063e1af802c1461010757600080fd5b806301ffc9a714610077578063119df25f1461009f57806345afd199146100cc575b600080fd5b61008a610085366004611460565b61010f565b60405190151581526020015b60405180910390f35b6100a76101a8565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b6100df6100da3660046114a2565b6101b7565b005b604051601f193601358152602001610096565b6100df6101023660046114f3565b6102ac565b6100a76103e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101b26103f1565b905090565b6101c8836101c36101a8565b610423565b60006101d384610473565b90508082111561021e576040517f0e0e2d4d00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6102318461022c848461154e565b610563565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102a4576102a48161066d565b505050505050565b7f6e73000000000000000000000000000000000000000000000000000000000000827fffff0000000000000000000000000000000000000000000000000000000000001614610355577f6e730000000000000000000000000000000000000000000000000000000000008261032084610675565b6040517f5c30fb6f000000000000000000000000000000000000000000000000000000008152600401610215939291906115b1565b61035e826107b2565b61036a836101c36101a8565b600061037584610473565b9050808211156103bb576040517f0e0e2d4d0000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610215565b6103c98461022c848461154e565b6103e183836103d786610473565b61022c91906115f2565b50505050565b60006101b2610800565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806104205750335b90565b61042d828261084c565b61046f5761043a82610675565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610215929190611605565b5050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104ac576104ac61163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e6365730000000000000000000000000000000000000000000000006030820152815180820390930183528101905260009061055b906105339061166c565b8360007e200100200000000000000000000000000000000000000000000000000000006108b1565b949350505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105995761059961163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526106689061061d9061166c565b8260008560405160200161063391815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006108e7565b505050565b805160208201fd5b606081601081901b600061068883610903565b9050827fffffffffffffffffffffffffffff0000000000000000000000000000000000008316156106e3576106de7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661091a565b61071a565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156107505761074b8361091a565b610787565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b60405160200161079993929190611693565b6040516020818303038152906040529350505050919050565b6107bb816109c8565b6107fd57806107c982610675565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610215929190611721565b50565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610847573391505090565b919050565b600061089a7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783610ac2565b806108aa57506108aa8383610ac2565b9392505050565b60006108de6108c08686610bb9565b60ff858116601b0360080285901c166108d98587610c0f565b610c52565b95945050505050565b6108fc85856108f68487610c0f565b85610ca3565b5050505050565b6000610911607060106115f2565b9190911b919050565b606060005b6010811015610989577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561098957806109818161173a565b91505061091f565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061055b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610a0157610a0161163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f73746f726500000000000000000000000000000000000000000000000000000060228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091610ab691015b604051602081830303815290604052610a8e9061166c565b8360007e010100010000000000000000000000000000000000000000000000000000006108b1565b905061055b8160f81c90565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610afb57610afb61163d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b81600181518110610b3457610b3461163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f776f726c6400000000000000000000000000000000000000000000000000000060228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091610bad9101610a76565b90506108de8160f81c90565b60008282604051602001610bce929190611754565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4a57610c3660ff601b83900360080287901c16836115f2565b915080610c428161173a565b915050610c14565b509392505050565b600060208210610c7857602082048401935060208281610c7457610c7461178f565b0691505b508254600882021b602082900380841115610c4a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610d2d57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610d20939291906117f9565b60405180910390a26103e1565b6000610d398585610bb9565b90506000610d4686610f5b565b905060005b8151811015610e25576000828281518110610d6857610d6861163d565b60200260200101519050610d946004826affffffffffffffffffffff191661103b90919063ffffffff16565b15610e12576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610ddf908b908b908b908b90600401611836565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050505b5080610e1d8161173a565b915050610d4b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610e5a939291906117f9565b60405180910390a2610e75828565ffffffffffff1685611059565b60005b8151811015610f52576000828281518110610e9557610e9561163d565b60200260200101519050610ec16008826affffffffffffffffffffff191661103b90919063ffffffff16565b15610f3f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610f0c908b908b908b908b90600401611836565b600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050505b5080610f4a8161173a565b915050610e78565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610f9557610f9561163d565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110249061101c9061166c565b83600061106f565b905061055b61103682600084516110a9565b611139565b60008160ff168261104c8560581c90565b1660ff1614905092915050565b6106688383835161106a8560200190565b61114a565b606061055b61107f85858561120a565b60006110a48561108f898961128a565b9060ff166028026038011c64ffffffffff1690565b61129d565b60008183111580156110bc575083518211155b6110f8578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102159392919061187a565b6020840161110684826115f2565b90506000611114858561154e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006108aa83601560006112c0565b82156111c45760208310611174576020830484019350602083816111705761117061178f565b0692505b82156111c45760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116111b55750506103e1565b50600194909401939182900391015b5b602082106111e65780518455600190930192601f19909101906020016111c5565b81156103e1576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161121f929190611754565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006108aa611299848461133b565b5490565b60405160208101601f19603f8484010116604052828252610c4a85858584611391565b606060006112ce8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816112f4576112f461178f565b04905060405193506020840160208202810160405281855260005b8281101561132f578451871c82529387019360209091019060010161130f565b50505050509392505050565b60008282604051602001611350929190611754565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b821561141a57602083106113bb576020830484019350602083816113b7576113b761178f565b0692505b821561141a5760208390036000818410156113df5750600019600884021c196113ea565b50600019600882021c195b8554600886021b81198451168282161784525081841161140b5750506103e1565b50600194909401939182900391015b5b6020821061143c5783548152600190930192601f199091019060200161141b565b81156103e1576000600019600884021c198251865482169119161782525050505050565b60006020828403121561147257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108aa57600080fd5b6000806000606084860312156114b757600080fd5b83359250602084013573ffffffffffffffffffffffffffffffffffffffff811681146114e257600080fd5b929592945050506040919091013590565b60008060006060848603121561150857600080fd5b505081359360208301359350604090920135919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101a2576101a261151f565b60005b8381101561157c578181015183820152602001611564565b50506000910152565b6000815180845261159d816020860160208601611561565b601f01601f19169290920160200192915050565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108de6060830184611585565b808201808211156101a2576101a261151f565b6040815260006116186040830185611585565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051602080830151919081101561168d576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516116f4816003860160208901611561565b808401905081600382015284519150611714826004830160208801611561565b0160040195945050505050565b82815260406020820152600061055b6040830184611585565b6000600019820361174d5761174d61151f565b5060010190565b82815260006020808301845182860160005b8281101561178257815184529284019290840190600101611766565b5091979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081518084526020808501945080840160005b838110156117ee578151875295820195908201906001016117d2565b509495945050505050565b60608152600061180c60608301866117be565b65ffffffffffff85166020840152828103604084015261182c8185611585565b9695505050505050565b84815260806020820152600061184f60808301866117be565b65ffffffffffff85166040840152828103606084015261186f8185611585565b979650505050505050565b60608152600061188d6060830186611585565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50610af5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80638fc8cf7e116100505780638fc8cf7e146100df578063ce5e8dd9146100ff578063e1af802c1461011257600080fd5b806301ffc9a714610077578063119df25f1461009f57806345ec9354146100cc575b600080fd5b61008a61008536600461063e565b61011a565b60405190151581526020015b60405180910390f35b6100a76101b3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b604051601f193601358152602001610096565b6100f26100ed3660046106d3565b6101c2565b6040516100969190610739565b6100f261010d3660046106d3565b6103d7565b6100a76105ae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101ad57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101bd6105b8565b905090565b606060006101ce6105ae565b90508267ffffffffffffffff8111156101e9576101e96107d1565b60405190808252806020026020018201604052801561021c57816020015b60608152602001906001900390816102075790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff84168063894ecc5889898781811061025c5761025c610800565b905060200281019061026e919061082f565b61027c90602081019061086d565b8a8a8881811061028e5761028e610800565b90506020028101906102a0919061082f565b602001358b8b898181106102b6576102b6610800565b90506020028101906102c8919061082f565b6102d69060408101906108a3565b6040516024016102e99493929190610933565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103369250610973565b600060405180830381855af49150503d8060008114610371576040519150601f19603f3d011682016040523d82523d6000602084013e610376565b606091505b50915091508161038957610389816105ea565b8080602001905181019061039d9190610985565b8584815181106103af576103af610800565b6020026020010181905250505080806103c790610a32565b915050610222565b505092915050565b606060006103e36105ae565b90508267ffffffffffffffff8111156103fe576103fe6107d1565b60405190808252806020026020018201604052801561043157816020015b606081526020019060019003908161041c5790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff841680633ae7af0889898781811061047157610471610800565b90506020028101906104839190610a91565b358a8a8881811061049657610496610800565b90506020028101906104a89190610a91565b6104b69060208101906108a3565b6040516024016104c893929190610ac5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105159250610973565b600060405180830381855af49150503d8060008114610550576040519150601f19603f3d011682016040523d82523d6000602084013e610555565b606091505b50915091508161056857610568816105ea565b8080602001905181019061057c9190610985565b85848151811061058e5761058e610800565b6020026020010181905250505080806105a690610a32565b915050610437565b60006101bd6105f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105e75750335b90565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610639573391505090565b919050565b60006020828403121561065057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461068057600080fd5b9392505050565b60008083601f84011261069957600080fd5b50813567ffffffffffffffff8111156106b157600080fd5b6020830191508360208260051b85010111156106cc57600080fd5b9250929050565b600080602083850312156106e657600080fd5b823567ffffffffffffffff8111156106fd57600080fd5b61070985828601610687565b90969095509350505050565b60005b83811015610730578181015183820152602001610718565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156107c4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526107a5818989018a8501610715565b601f01601f191695909501860194509285019290850190600101610760565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261086357600080fd5b9190910192915050565b60006020828403121561087f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126108d857600080fd5b83018035915067ffffffffffffffff8211156108f357600080fd5b6020019150368190038213156106cc57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610969606083018486610908565b9695505050505050565b60008251610863818460208701610715565b60006020828403121561099757600080fd5b815167ffffffffffffffff808211156109af57600080fd5b818401915084601f8301126109c357600080fd5b8151818111156109d5576109d56107d1565b604051601f8201601f19908116603f011681019083821181831017156109fd576109fd6107d1565b81604052828152876020848701011115610a1657600080fd5b610a27836020830160208801610715565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261086357600080fd5b838152604060208201526000610adf604083018486610908565b9594505050505056fea164736f6c6343000815000a608060405234801561001057600080fd5b5061565b80620000216000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063530f4b6011610097578063b29e408911610066578063b29e408914610226578063bfdfaff714610239578063d5f8337f1461024c578063e1af802c1461025f57600080fd5b8063530f4b60146101da578063742d6118146101ed5780638da798da14610200578063a92813ad1461021357600080fd5b80631d2257ba116100d35780631d2257ba1461017557806326d98102146101885780633350b6a9146101b457806345ec9354146101c757600080fd5b806301ffc9a714610105578063056091291461012d5780630ba51f4914610142578063119df25f14610155575b600080fd5b610118610113366004614aa7565b610267565b60405190151581526020015b60405180910390f35b61014061013b366004614ad7565b6102d0565b005b610140610150366004614b53565b6102ef565b61015d6103bf565b6040516001600160a01b039091168152602001610124565b610140610183366004614ca0565b6103ce565b61019b610196366004614cf9565b61044e565b6040516001600160e01b03199091168152602001610124565b6101406101c2366004614d40565b610546565b604051601f193601358152602001610124565b6101406101e8366004614d98565b610731565b61019b6101fb366004614dd6565b610772565b61014061020e366004614e24565b61082d565b610140610221366004614ad7565b610946565b610140610234366004614e5e565b6109ba565b610140610247366004614e77565b610a5e565b61014061025a366004614d98565b610b28565b61015d610b8f565b60006001600160e01b031982167fb5dee1270000000000000000000000000000000000000000000000000000000014806102ca57506001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6102e1826102dc6103bf565b610b99565b6102eb8282610c1f565b5050565b60006102fa89610c6c565b6fffffffffffffffffffffffffffffffff191603610359578761031c89610c83565b6040517fe4ac069e000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b60405180910390fd5b610389616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008a1617610d97565b610395886102dc6103bf565b6103b5888888886103a6888a614f1a565b6103b08789614f1a565b610de2565b5050505050505050565b60006103c9611082565b905090565b6103e06103d96103bf565b84846110b4565b6103e9826111de565b80156103f6575060008151115b15610449576000610406836111fa565b9050610432817faf585477000000000000000000000000000000000000000000000000000000006112d5565b61044661043d6103bf565b84846000611330565b50505b505050565b600061045c836102dc6103bf565b600061048561046b8560101b90565b71ffffffffffffffffffffffffffffffffffff191661135d565b9050600061049a61049586610c6c565b61135d565b905060008282866040516020016104b393929190614f9e565b60405160208183030381529060405290508080519060200120935060006104d9856113f1565b9050801561051f576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031986166004820152602401610350565b855160208701206105318689836114e0565b61053b86846115e8565b505050505092915050565b7f7379000000000000000000000000000000000000000000000000000000000000836001600160f01b031916146105d7577f7379000000000000000000000000000000000000000000000000000000000000836105a285610c83565b6040517f5c30fb6f00000000000000000000000000000000000000000000000000000000815260040161035093929190615014565b7dffffffffffffffffffffffffffff000000000000000000000000000000008316616e7360f01b1761060881610d97565b610614816102dc6103bf565b61063e837fb5dee127000000000000000000000000000000000000000000000000000000006112d5565b600061064985610c6c565b6fffffffffffffffffffffffffffffffff19160361066b578361031c85610c83565b6000610676846116ee565b905080158015906106875750848114155b156106c9576040517fc0b707410000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610350565b60006106d4866111fa565b90506001600160a01b038116156106fd576106ee816117d0565b6106f883826118a4565b610708565b610708866001611997565b610713868686611a8f565b61071d8587611b6f565b61072983866001611c0f565b505050505050565b61075b827f1873396a000000000000000000000000000000000000000000000000000000006112d5565b610767836102dc6103bf565b610449838383611cce565b60408051616e7360f01b602082015260006022820181905260308201819052916107b791016040516020818303038152906040526107af9061503d565b6102dc6103bf565b508151602083012060006107ca826113f1565b90508015610810576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031983166004820152602401610350565b61081b8286856114e0565b61082582856115e8565b509392505050565b610857827f780ac2fc000000000000000000000000000000000000000000000000000000006112d5565b6108d36108626103bf565b600084846040516024016108769190615061565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f13861fb500000000000000000000000000000000000000000000000000000000179052611d2f565b506102eb826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190615074565b8251602084012084611d40565b610952826102dc6103bf565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b7300000000000000000000000000000000000000000060308201526102eb91015b6040516020818303038152906040526109b39061503d565b8383611e73565b616e7360f01b816001600160f01b031916146109e057616e7360f01b816105a283610c83565b6109e981611f9a565b15610a2c57806109f882610c83565b6040517f0dc28f6a000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b610a37816001611997565b610a4881610a436103bf565b61207c565b610a5b81610a546103bf565b6001611c0f565b50565b616e7360f01b836001600160f01b03191614610a8457616e7360f01b836105a285610c83565b610a8d826111de565b610ac3576040517f71ee9e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610acf836102dc6103bf565b6000610ada836111fa565b9050610b06817faf585477000000000000000000000000000000000000000000000000000000006112d5565b610b108484612110565b815115610b225761044661043d6103bf565b50505050565b610b52827f540fbfa8000000000000000000000000000000000000000000000000000000006112d5565b610b5e836102dc6103bf565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b16176121a4565b60006103c9612293565b6001600160a01b038116610bd3616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516176122d2565b6001600160a01b0316146102eb57610bea82610c83565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103509291906150a7565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201526102eb910161099b565b6000610c7a607060106150e8565b9190911b919050565b606081601081901b6000610c9683610c6c565b90508271ffffffffffffffffffffffffffffffffffff19831615610cd757610cd271ffffffffffffffffffffffffffffffffffff19841661135d565b610d0e565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615610d3557610d308361135d565b610d6c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001610d7e939291906150fb565b6040516020818303038152906040529350505050919050565b610da081611f9a565b610a5b5780610dae82610c83565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b613a3160f11b866001600160f01b03191614801590610e105750611bdd60f21b866001600160f01b03191614155b15610e7157613a3160f11b8687604051602001610e2f91815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610350939291600401615014565b610e7a856123a2565b610e85846001612523565b610e90836000612523565b60e084901c60e885901c0160ff16825114610ef05760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff16815114610f505760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610fc85760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b610fd186611f9a565b1561102b578586604051602001610fea91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526103509291600401614f01565b61107786868686866040516020016110439190615171565b604051602081830303815290604052866040516020016110639190615171565b6040516020818303038152906040526126cf565b610729866001611997565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806110b15750335b90565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b816000815181106110f5576110f56151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611121576111216151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152610b2291015b6040516020818303038152906040526111939061503d565b826000856040516020016111a991815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006127d3565b600081151580156102ca57506111f3826127e8565b1592915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611233576112336151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca906112a29061503d565b8360007e15020014010000000000000000000000000000000000000000000000000000612863565b60601c949350505050565b6112df8282612899565b6102eb576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610350565b6060600080611341878787876128bc565b91509150816113535761135381612aa0565b9695505050505050565b606060005b60108110156113bd576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156113bd57806113b581615207565b915050611362565b604080516fffffffffffffffffffffffffffffffff198516602082015281516030909101909152818152805b949350505050565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611449576114496151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526000906113e9906114b89061503d565b8360007e24020020040000000000000000000000000000000000000000000000000000612863565b60006114ec8383612aa8565b60408051600180825281830190925291925060009160609183919060208083019080368337019050509050867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061154a5761154a6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526115df906115b69061503d565b828686867e24020020040000000000000000000000000000000000000000000000000000612ae7565b50505050505050565b606060006115f583612e01565b9050600061160284612e11565b6040805160018082528183019092529192506000919060208083019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061165b5761165b6151f1565b60209081029190910181019190915260408051611bdd60f21b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e617475720000000000000000000000000000000060308201528151808203909301835281019052610729906116c79061503d565b828686867c0100000000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110611733576117336151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d526567697374727900000000000000000000000000000000000060308301526000916113e991015b6040516020818303038152906040526117a89061503d565b8360007e20010020000000000000000000000000000000000000000000000000000000612863565b60408051600180825281830190925260009160208083019080368337019050509050816001600160a01b031660001b81600081518110611812576118126151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526102eb9061187e9061503d565b827e20010020000000000000000000000000000000000000000000000000000000612e3a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106118d9576118d96151f1565b602002602001018181525050816001600160a01b031660001b81600181518110611905576119056151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f7572636541636365737300000000000000000000000000000000000060308201528151808203909301835281019052610449906119719061503d565b827e01010001000000000000000000000000000000000000000000000000000000612e3a565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106119cd576119cd6151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261044991015b604051602081830303815290604052611a3f9061503d565b82600085604051602001611a5a91151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006127d3565b6000611a9b838361311a565b604080516001808252818301909252919250600091606091839190602080830190803683370190505090508681600081518110611ada57611ada6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526115df90611b469061503d565b828686867e15020014010000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b81600081518110611bb157611bb16151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d52656769737472790000000000000000000000000000000000006030830152610449910161117b565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110611c4457611c446151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611c7057611c706151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152610b229101611a27565b613a3160f11b836001600160f01b03191614611cfe57613a3160f11b8384604051602001610e2f91815260200190565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b161761314a565b6060600080611341878787876131de565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110611d8857611d886151f1565b6020026020010181815250508281600181518110611da857611da86151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610b2291015b604051602081830303815290604052611e1a9061503d565b6040516bffffffffffffffffffffffff19606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006127d3565b6000611e7f8484613256565b90506000815167ffffffffffffffff811115611e9d57611e9d614be9565b604051908082528060200260200182016040528015611ec6578160200160208202803683370190505b5090506000805b8351811015611f8b57846001600160a01b0316611f11858381518110611ef557611ef56151f1565b60200260200101516affffffffffffffffffffff191660601c90565b6001600160a01b031614611f8357838181518110611f3157611f316151f1565b6020026020010151838381518110611f4b57611f4b6151f1565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611ecd565b508082526107298686846132c1565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611fd357611fd36151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015260009161207091015b6040516020818303038152906040526120489061503d565b8360007e01010001000000000000000000000000000000000000000000000000000000612863565b90506113e98160f81c90565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106120b2576120b26151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526104499101611e02565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612146576121466151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c65676174000000000000000000000000000000006030830152610449910161117b565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106121da576121da6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b73000000000000000000000000000000000000000000603083015261044991015b60405160208183030381529060405261224c9061503d565b6040517fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000851660208201528390600090603501604051602081830303815290604052613318565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806122cd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061230b5761230b6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca9061237a9061503d565b8360007e14010014000000000000000000000000000000000000000000000000000000612863565b806123d9576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006123e4826133c9565b9050600581111561242b576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610350565b600061243683613406565b9050600061244483836150e8565b9050601c81111561248b576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610350565b60005b828110156104465760ff601b82900360080286901c1660008190036124df576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561251a576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161248e565b8015801561252f575081155b1561255057604051635318beb960e01b815260006004820152602401610350565b600061255b836133c9565b9050600581111561258257604051635318beb960e01b815260048101829052602401610350565b600061258d84613406565b9050600061259b83836150e8565b9050601c8111156125c257604051635318beb960e01b815260048101829052602401610350565b60008060005b838110156126885760006125f56125df8a84613418565b60c58111156125f0576125f0615221565b613439565b111561263f57848110612634576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612680565b84811015612679576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b6001016125c8565b508382146126ac57604051635318beb960e01b815260048101839052602401610350565b8481146115df57604051635318beb960e01b815260048101829052602401610350565b60006126dc868686613499565b905060006126ea84846134cf565b905060006126f885856134ec565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110612732576127326151f1565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526127c79061279e9061503d565b828686867e60030220202000000000000000000000000000000000000000000000000000612ae7565b50505050505050505050565b61044685856127e28487613501565b8561353c565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d6974656400000000000000000000000000000000000000000000006030830152910160405160208183030381529060405261285b9061503d565b909114919050565b600061289061287286866137b8565b60ff858116601b0360080285901c1661288b8587613501565b61380e565b95945050505050565b60006128a48361385f565b80156128b557506128b583836138a0565b9392505050565b6000606060006128cb86613958565b905060005b81518110156129a85760008282815181106128ed576128ed6151f1565b602002602001015190506129196001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612995576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190612962908c908c908c90600401615237565b600060405180830381600087803b15801561297c57600080fd5b505af1158015612990573d6000803e3d6000fd5b505050505b50806129a081615207565b9150506128d0565b506129b587858888613a3f565b909350915060005b8151811015612a955760008282815181106129da576129da6151f1565b60200260200101519050612a066002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612a82576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f9990612a4f908c908c908c90600401615237565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505b5080612a8d81615207565b9150506129bd565b505094509492505050565b805160208201fd5b60608282604051602001612ad09291909182526001600160e01b031916602082015260240190565b604051602081830303815290604052905092915050565b611bdd60f21b866001600160f01b03191603612b4057857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612b33949392919061529a565b60405180910390a2610729565b6000612b4b87613b1e565b905060005b8151811015612c2e576000828281518110612b6d57612b6d6151f1565b60200260200101519050612b996001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612c1b576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90612be8908c908c908c908c908c908c906004016152d9565b600060405180830381600087803b158015612c0257600080fd5b505af1158015612c16573d6000803e3d6000fd5b505050505b5080612c2681615207565b915050612b50565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051612c65949392919061529a565b60405180910390a26000612c7988886137b8565b90506000602087019050612c91826000895184613bb9565b6000612c9c856133c9565b1115612d20576000612cae8a8a613c79565b878155905060208601915060008060005b612cc8886133c9565b8160ff161015612d1b57612cdd8d8d83613ccf565b9250612cf88a8260ff166028026038011c64ffffffffff1690565b9150612d078360008488613bb9565b612d1182866150e8565b9450600101612cbf565b505050505b60005b83518110156127c7576000848281518110612d4057612d406151f1565b60200260200101519050612d6c6002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612dee576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612dbb908e908e908e908e908e908e906004016152d9565b600060405180830381600087803b158015612dd557600080fd5b505af1158015612de9573d6000803e3d6000fd5b505050505b5080612df981615207565b915050612d23565b60006102ca8251603881901b1790565b606081604051602001612e249190615332565b6040516020818303038152906040529050919050565b611bdd60f21b836001600160f01b03191603612e8d57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612e80919061534e565b60405180910390a2505050565b6000612e9884613b1e565b905060005b8151811015612f75576000828281518110612eba57612eba6151f1565b60200260200101519050612ee66040826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612f62576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612f2f90899089908990600401615361565b600060405180830381600087803b158015612f4957600080fd5b505af1158015612f5d573d6000803e3d6000fd5b505050505b5080612f6d81615207565b915050612e9d565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612fa6919061534e565b60405180910390a26000612fba85856137b8565b9050613013816000612fcb86613d4f565b67ffffffffffffffff811115612fe357612fe3614be9565b6040519080825280601f01601f19166020018201604052801561300d576020820181803683370190505b50613d72565b600061301e846133c9565b111561303f5760006130308686613c79565b905061303d816020613d88565b505b60005b825181101561072957600083828151811061305f5761305f6151f1565b6020026020010151905061308b6080826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613107576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b906130d4908a908a908a90600401615361565b600060405180830381600087803b1580156130ee57600080fd5b505af1158015613102573d6000803e3d6000fd5b505050505b508061311281615207565b915050613042565b604051606083811b6bffffffffffffffffffffffff1916602083015282151560f81b603483015290603501612ad0565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613180576131806151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308301526104499101612234565b60006060836001600160a01b031660006131f9858989613dc5565b6040516132069190615332565b60006040518083038185875af1925050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b509097909650945050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613290576132906151f1565b60200260200101818152505060006132aa85836000613ddc565b90506128906132bc8260008451613e16565b613ea6565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106132f7576132f76151f1565b602002602001018181525050610b228482600061331386613eb7565b613ec7565b6000613322612293565b9050306001600160a01b038216036133455761334085858585613f02565b610446565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f32629061339090889088908890889060040161538a565b600060405180830381600087803b1580156133aa57600080fd5b505af11580156133be573d6000803e3d6000fd5b505050505050505050565b600060086001806133dc600260206153be565b6133e691906153be565b6133f091906153be565b6133fa91906153d1565b8260ff911c1692915050565b6000600860016133e6600260206153be565b6000601b8290036008028360ff911c1660c58111156128b5576128b5615221565b6000808260c581111561344e5761344e615221565b60ff169050606181101561346857601f1660010192915050565b60618360c581111561347c5761347c615221565b0361348a5750601492915050565b50600092915050565b50919050565b60408051602081018590529081018390526060818101839052906080015b60405160208183030381529060405290509392505050565b8151815160009181810160389190911b1760609190911b176128b5565b60608282604051602001612ad09291906153e8565b600080805b8360ff168110156108255761352860ff601b83900360080287901c16836150e8565b91508061353481615207565b915050613506565b611bdd60f21b846001600160f01b0319160361359357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161358693929190615417565b60405180910390a2610b22565b600061359f85856137b8565b905060006135ac86613b1e565b905060005b815181101561368b5760008282815181106135ce576135ce6151f1565b602002602001015190506135fa6004826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613678576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90613645908b908b908b908b9060040161544a565b600060405180830381600087803b15801561365f57600080fd5b505af1158015613673573d6000803e3d6000fd5b505050505b508061368381615207565b9150506135b1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516136c093929190615417565b60405180910390a26136db828565ffffffffffff1685613d72565b60005b81518110156115df5760008282815181106136fb576136fb6151f1565b602002602001015190506137276008826affffffffffffffffffffff1916613a2190919063ffffffff16565b156137a5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190613772908b908b908b908b9060040161544a565b600060405180830381600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050505b50806137b081615207565b9150506136de565b600082826040516020016137cd929190615483565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061383457602082048401935060208281613830576138306154be565b0691505b508254600882021b602082900380841115610825576001850154600882021c82179150509392505050565b600061388b827f01ffc9a7000000000000000000000000000000000000000000000000000000006138a0565b80156102ca57506111f3826001600160e01b03195b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613941575060208210155b801561394d5750600081115b979650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613992576139926151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091613a0f91015b604051602081830303815290604052613a079061503d565b836000613ddc565b90506113e96132bc8260008451613e16565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b60006060600080613a4f86613f3d565b90925090506001600160a01b038216613a6c5785610dae87610c83565b80613a7b57613a7b8689614035565b8615613acc577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000613ab48261404c565b9050613ac982613ac48b846150e8565b6140e6565b50505b6000613ad88760101b90565b71ffffffffffffffffffffffffffffffffffff191614613b0357613afe888884886131de565b613b0f565b613b0f8888848861417a565b90999098509650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613b5857613b586151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091613a0f91016139ef565b8215613c335760208310613be357602083048401935060208381613bdf57613bdf6154be565b0692505b8215613c335760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613c24575050610b22565b50600194909401939182900391015b5b60208210613c555780518455600190930192601f1990910190602001613c34565b8115610b22576000600019600884021c198554835182169119161785555050505050565b60008282604051602001613c8e929190615483565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001613ce4929190615483565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008613d5f600260206153be565b613d6991906153d1565b9190911c919050565b61044983838351613d838560200190565b613bb9565b60006020613d9783601f6150e8565b613da191906154d4565b613dab90846150e8565b90505b808310156104495760008355600183019250613dae565b60608383836040516020016134b7939291906154f6565b60606113e9613dec858585613ccf565b6000613e1185613dfc89896141db565b9060ff166028026038011c64ffffffffff1690565b6141ee565b6000818311158015613e29575083518211155b613e65578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161035093929190615535565b60208401613e7384826150e8565b90506000613e8185856153be565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006128b58360156000614211565b6060816128b5816015600061428c565b6000613ed385856141db565b90506000613ef0828560ff166028026038011c64ffffffffff1690565b905061072986868660008588886142e0565b6000613f0e85856141db565b90506000613f2b828560ff166028026038011c64ffffffffff1690565b905061072986868684600088886142e0565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f7757613f776151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061401090613fea9061503d565b857e1502001401000000000000000000000000000000000000000000000000000061469c565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b61403f82826147a4565b6102eb57610bea82610c83565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110614085576140856151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e63657300000000000000000000000000000000000000000000000060308301526000916113e99101611790565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061411c5761411c6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e6365730000000000000000000000000000000000000000000000006030830152610449910161117b565b60006060836001600160a01b0316614193848888613dc5565b6040516141a09190615332565b600060405180830381855af49150503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b60006128b56141ea8484613c79565b5490565b60405160208101601f19603f8484010116604052828252610825858585846147e7565b6060600061421f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281614245576142456154be565b04905060405193506020840160208202810160405281855260005b82811015614280578451871c825293870193602090910190600101614260565b50505050509392505050565b8251606090600061429d85836153d1565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015614280578051871b835291870191600191909101906020016142bf565b613a3160f11b876001600160f01b0319161461431057613a3160f11b8788604051602001610e2f91815260200190565b600061432b828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361434491906153be565b61434e91906150e8565b9050808214158015614370575081614366868861555a565b64ffffffffff1614155b156143c0576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610350565b818664ffffffffff161115614411576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610350565b600061441e8489846148b6565b9050600061442b8b613b1e565b905060005b815181101561450057600082828151811061444d5761444d6151f1565b602002602001015190506144796010826affffffffffffffffffffff1916613a2190919063ffffffff16565b156144ed57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016144ba979695949392919061557f565b600060405180830381600087803b1580156144d457600080fd5b505af11580156144e8573d6000803e3d6000fd5b505050505b50806144f881615207565b915050614430565b5064ffffffffff881660005b8a60ff168160ff16101561453f57614533878260ff166028026038011c64ffffffffff1690565b9091019060010161450c565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516145789594939291906155dd565b60405180910390a2508284146145995760006145948c8c613c79565b839055505b60006145a68c8c8c613ccf565b90506145ba818a64ffffffffff1689613d72565b5060005b815181101561468e5760008282815181106145db576145db6151f1565b602002602001015190506146076020826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561467b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401614648979695949392919061557f565b600060405180830381600087803b15801561466257600080fd5b505af1158015614676573d6000803e3d6000fd5b505050505b508061468681615207565b9150506145be565b505050505050505050505050565b60606000606060006146ad85613d4f565b90506146ba878783614984565b935060006146c7866133c9565b90508015614799576146d988886141db565b935066ffffffffffffff841667ffffffffffffffff8111156146fd576146fd614be9565b6040519080825280601f01601f191660200182016040528015614727576020820181803683370190505b5092506020830160005b828160ff1610156147965760006147498b8b84613ccf565b90506000614766888460ff166028026038011c64ffffffffff1690565b905061477582600083876147e7565b61477f81856150e8565b93505050808061478e9061562f565b915050614731565b50505b505093509350939050565b60006147d7616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000851617836149bd565b806128b557506128b583836149bd565b821561487057602083106148115760208304840193506020838161480d5761480d6154be565b0692505b82156148705760208390036000818410156148355750600019600884021c19614840565b50600019600882021c195b8554600886021b811984511682821617845250818411614861575050610b22565b50600194909401939182900391015b5b602082106148925783548152600190930192601f1990910190602001614871565b8115610b22576000600019600884021c198251865482169119161782525050505050565b600064ffffffffff8211156148fa576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610350565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061492c5780850382019150614934565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6060816000036149a357506040805160208101909152600081526128b5565b60006149af85856137b8565b9050612890816000856141ee565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106149f6576149f66151f1565b602002602001018181525050826001600160a01b031660001b81600181518110614a2257614a226151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091614a839101612030565b90506128908160f81c90565b80356001600160e01b0319811681146122cd57600080fd5b600060208284031215614ab957600080fd5b6128b582614a8f565b6001600160a01b0381168114610a5b57600080fd5b60008060408385031215614aea57600080fd5b823591506020830135614afc81614ac2565b809150509250929050565b60008083601f840112614b1957600080fd5b50813567ffffffffffffffff811115614b3157600080fd5b6020830191508360208260051b8501011115614b4c57600080fd5b9250929050565b60008060008060008060008060c0898b031215614b6f57600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff80821115614ba357600080fd5b614baf8c838d01614b07565b909650945060a08b0135915080821115614bc857600080fd5b50614bd58b828c01614b07565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614c2857614c28614be9565b604052919050565b600082601f830112614c4157600080fd5b813567ffffffffffffffff811115614c5b57614c5b614be9565b614c6e6020601f19601f84011601614bff565b818152846020838601011115614c8357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614cb557600080fd5b8335614cc081614ac2565b925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b614cef86828701614c30565b9150509250925092565b60008060408385031215614d0c57600080fd5b82359150602083013567ffffffffffffffff811115614d2a57600080fd5b614d3685828601614c30565b9150509250929050565b600080600060608486031215614d5557600080fd5b833592506020840135614d6781614ac2565b915060408401358015158114614d7c57600080fd5b809150509250925092565b803560ff811681146122cd57600080fd5b600080600060608486031215614dad57600080fd5b833592506020840135614dbf81614ac2565b9150614dcd60408501614d87565b90509250925092565b600080600060608486031215614deb57600080fd5b83359250602084013567ffffffffffffffff811115614e0957600080fd5b614e1586828701614c30565b925050614dcd60408501614a8f565b60008060408385031215614e3757600080fd5b8235614e4281614ac2565b9150602083013567ffffffffffffffff811115614d2a57600080fd5b600060208284031215614e7057600080fd5b5035919050565b600080600060608486031215614e8c57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b60005b83811015614ecc578181015183820152602001614eb4565b50506000910152565b60008151808452614eed816020860160208601614eb1565b601f01601f19169290920160200192915050565b8281526040602082015260006113e96040830184614ed5565b600067ffffffffffffffff80841115614f3557614f35614be9565b8360051b6020614f46818301614bff565b868152918501918181019036841115614f5e57600080fd5b865b84811015614f9257803586811115614f785760008081fd5b614f8436828b01614c30565b845250918301918301614f60565b50979650505050505050565b60008451614fb0818460208901614eb1565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528551614fec816001850160208a01614eb1565b60019201918201528351615007816002840160208801614eb1565b0160020195945050505050565b6001600160f01b0319841681528260208201526060604082015260006128906060830184614ed5565b805160208083015191908110156134935760001960209190910360031b1b16919050565b6020815260006128b56020830184614ed5565b60006020828403121561508657600080fd5b81516fffffffffffffffffffffffffffffffff19811681146128b557600080fd5b6040815260006150ba6040830185614ed5565b90506001600160a01b03831660208301529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ca576102ca6150d2565b6001600160f01b03198416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451615144816003860160208901614eb1565b808401905081600382015284519150615164826004830160208801614eb1565b0160040195945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526151d2858351614ed5565b94509285019290850190600101615198565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600019820361521a5761521a6150d2565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03841681528260208201526060604082015260006128906060830184614ed5565b600081518084526020808501945080840160005b8381101561528f57815187529582019590820190600101615273565b509495945050505050565b6080815260006152ad608083018761525f565b82810360208401526152bf8187614ed5565b9050846040840152828103606084015261394d8185614ed5565b86815260c0602082015260006152f260c083018861525f565b82810360408401526153048188614ed5565b9050856060840152828103608084015261531e8186614ed5565b9150508260a0830152979650505050505050565b60008251615344818460208701614eb1565b9190910192915050565b6020815260006128b5602083018461525f565b83815260606020820152600061537a606083018561525f565b9050826040830152949350505050565b8481526080602082015260006153a3608083018661525f565b60ff85166040840152828103606084015261394d8185614ed5565b818103818111156102ca576102ca6150d2565b80820281158282048414176102ca576102ca6150d2565b600083516153fa818460208801614eb1565b83519083019061540e818360208801614eb1565b01949350505050565b60608152600061542a606083018661525f565b65ffffffffffff8516602084015282810360408401526113538185614ed5565b848152608060208201526000615463608083018661525f565b65ffffffffffff85166040840152828103606084015261394d8185614ed5565b82815260006020808301845182860160005b828110156154b157815184529284019290840190600101615495565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826154f157634e487b7160e01b600052601260045260246000fd5b500490565b60008451615508818460208901614eb1565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006155486060830186614ed5565b60208301949094525060400152919050565b64ffffffffff818116838216019080821115615578576155786150d2565b5092915050565b87815260e06020820152600061559860e083018961525f565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526155cf8185614ed5565b9a9950505050505050505050565b60a0815260006155f060a083018861525f565b65ffffffffffff8716602084015264ffffffffff8616604084015284606084015282810360808401526156238185614ed5565b98975050505050505050565b600060ff821660ff8103615645576156456150d2565b6001019291505056fea164736f6c6343000815000a6101006040523480156200001257600080fd5b5060405162004c6d38038062004c6d833981016040819052620000359162000071565b6001600160a01b0393841660805291831660a052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614b4c62000121600039600081816106a20152818161159201526116210152600061063a015260006105d2015260006105510152614b4c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b610095610090366004614310565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e5366004614368565b61023c565b005b6040517f636f72650000000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b366004614368565b61026e565b6100b2610289565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610293565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102766102c5565b61027e61050f565b6102866106c8565b50565b6000610237610bcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102c25750335b90565b6102cd610c17565b6102d5610c2f565b6102dd610cd4565b6102e5610d5c565b6102ed610dfc565b6102f5610e84565b6102fd610f04565b610305610f8c565b61030d61102c565b6103156110cc565b61031d61116a565b610325611208565b60408051616e7360f01b6020820152600060228201819052603082015261036791015b60405160208183030381529060405261036090614419565b6001611290565b60408051616e7360f01b602082015260006022820181905260308201526103af91015b6040516020818303038152906040526103a290614419565b6103aa61022d565b611375565b60408051616e7360f01b602082015260006022820181905260308201526103f991015b6040516020818303038152906040526103ea90614419565b6103f261022d565b6001611483565b60408051616e7360f01b60208201526473746f726560d81b6022820152600060308201526104279101610348565b60408051616e7360f01b60208201526473746f726560d81b602282015260006030820152610455910161038a565b60408051616e7360f01b60208201526473746f726560d81b60228201526000603082015261048391016103d2565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104b19101610348565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104df910161038a565b60408051616e7360f01b6020820152641ddbdc9b1960da1b60228201526000603082015261050d91016103d2565b565b6040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e74000000000000000000000000000000006030820152610590917f000000000000000000000000000000000000000000000000000000000000000091015b60405160208183030381529060405261058b90614419565b611555565b6040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526105f8917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610660917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e00000000000000000000000000000000603082015261050d917f00000000000000000000000000000000000000000000000000000000000000009101610573565b600060405180606001604052806040518060400160405280601c81526020017f6772616e7441636365737328627974657333322c61646472657373290000000081525081526020016040518060400160405280601d81526020017f7265766f6b6541636365737328627974657333322c61646472657373290000008152508152602001604051806060016040528060228152602001614b1e602291399052905060005b60038110156107fb576040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e740000000000000000000000000000000060308201526107e991016040516020818303038152906040526107cd90614419565b8383600381106107df576107df61443d565b6020020151611612565b806107f381614469565b91505061076b565b506040805160a0810182526033918101828152600092829190614ac2606084013981526020016040518060600160405280603181526020016149b7603191399052905060005b60028110156108c8576040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526108b691015b6040516020818303038152906040526108a490614419565b8383600281106107df576107df61443d565b806108c081614469565b915050610841565b50600060405180604001604052806040518060400160405280601c81526020017f626174636843616c6c2828627974657333322c6279746573295b5d29000000008152508152602001604051806060016040528060288152602001614a43602891399052905060005b6002811015610992576040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610980910161088c565b8061098a81614469565b915050610931565b50604080516101c081018252601c61018082019081527f696e7374616c6c4d6f64756c6528616464726573732c627974657329000000006101a08301528152815160608101835282815260009260208084019291906149029083013981526020016040518060600160405280602881526020016149e86028913981526020016040518060600160405280602481526020016148de6024913981526020016040518060400160405280601a81526020017f72656769737465724e616d6573706163652862797465733332290000000000008152508152602001604051806060016040528060298152602001614af5602991398152602001604051806060016040528060258152602001614a6b60259139815260200160405180606001604052806024815260200161499360249139815260200160405180606001604052806028815260200161496b602891398152602001604051806060016040528060338152602001614a10603391398152602001604051806060016040528060298152602001614942602991398152602001604051806060016040528060328152602001614a90603291399052905060005b600c811015610bc4576040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e000000000000000000000000000000006030820152610bb29101604051602081830303815290604052610ba090614419565b8383600c81106107df576107df61443d565b80610bbc81614469565b915050610b3e565b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610c12573391505090565b919050565b610c1f6116b9565b610c27611759565b61050d6117f7565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610c8f90614419565b7e14010014000000000000000000000000000000000000000000000000000000610cb761187f565b610cbf6118f7565b610cc7611931565b610ccf6119b6565b611a2d565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610d3490614419565b630100080160dd1b610d4461187f565b610d4c611b01565b610d54611931565b610ccf611b3b565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015261050d9101604051602081830303815290604052610dbc90614419565b7e14010014000000000000000000000000000000000000000000000000000000610de4611bb2565b610dec6118f7565b610df4611c31565b610ccf611cfb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5573657244656c65676174696f6e436f00000000000000000000000000000000603082015261050d9101604051602081830303815290604052610e5c90614419565b630100080160dd1b610e6c611d72565b610e7461187f565b610e7c611df1565b610ccf611ebb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d65737061636544656c6567617400000000000000000000000000000000603082015261050d9101604051602081830303815290604052610ee490614419565b630100080160dd1b610ef461187f565b610efc61187f565b610e7c611931565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610f6490614419565b630101000160d81b610f74611f32565b610f7c611f6c565b610f84611fa6565b610ccf612070565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610fec90614419565b7e1502001401000000000000000000000000000000000000000000000000000061101461187f565b61101c6120e7565b611024612166565b610ccf6121dd565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015261050d910160405160208183030381529060405261108c90614419565b7e240200200400000000000000000000000000000000000000000000000000006110b46122a7565b6110bc6122e1565b6110c4612360565b610ccf6123d7565b60408051611bdd60f21b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e6174757200000000000000000000000000000000603082015261050d910160405160208183030381529060405261112c90614419565b7c01000000000000000000000000000000000000000000000000000000006111526122a7565b61115a6124a1565b611162612360565b610ccf6124db565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b73000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526111ca90614419565b7c01000000000000000000000000000000000000000000000000000000006111f061187f565b6111f8612552565b611200612166565b610ccf61258c565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261126890614419565b630100080160dd1b6112786118f7565b61128061187f565b611288612603565b610ccf612166565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106112c6576112c661443d565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261137091015b60405160208183030381529060405261133890614419565b8260008560405160200161135391151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b61267a565b505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106113ab576113ab61443d565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526113709061141790614419565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061267a565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106114b8576114b861443d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106114f1576114f161443d565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f75726365416363657373000000000000000000000000000000000000603083015261154f9101611320565b50505050565b61137061156061022d565b6040516024810184905273ffffffffffffffffffffffffffffffffffffffff85166044820152600160648201526000907f00000000000000000000000000000000000000000000000000000000000000009060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3350b6a90000000000000000000000000000000000000000000000000000000017905261268f565b61137061161d61022d565b60007f00000000000000000000000000000000000000000000000000000000000000008585868051906020012060405160240161165c939291906144d3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f742d61180000000000000000000000000000000000000000000000000000000017905261268f565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261171990614419565b7e6003022020200000000000000000000000000000000000000000000000000061174161187f565b6117496126bc565b61175161280b565b610ccf612882565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526117b990614419565b7c01000000000000000000000000000000000000000000000000000000006117df61187f565b6117e7612552565b6117ef61280b565b610ccf612a4a565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261185790614419565b630101000160d81b61186761187f565b61186f611f6c565b611877612ac1565b610ccf612b38565b60408051600180825281830190925260009182919060208083019080368337019050509050605f816000815181106118b9576118b961443d565b602002602001019060c58111156118d2576118d261451e565b908160c58111156118e5576118e561451e565b9052506118f181612baf565b91505090565b604080516001808252818301909252600091829190602080830190803683370190505090506061816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816119485790505090506040518060400160405280600b81526020017f6e616d6573706163654964000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816119cd5790505090506040518060400160405280600581526020017f6f776e6572000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000611a37610bcb565b90503073ffffffffffffffffffffffffffffffffffffffff821603611a6957611a64878787878787612d73565b611af8565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f4990611ac5908a908a908a908a908a908a9060040161458c565b600060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050505b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050601f816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611b525790505090506040518060400160405280600781526020017f62616c616e636500000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110611bec57611bec61443d565b602002602001019060c5811115611c0557611c0561451e565b908160c5811115611c1857611c1861451e565b81525050605f816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611c475790505090506040518060400160405280600a81526020017f6d6f64756c654e616d650000000000000000000000000000000000000000000081525081600081518110611ca757611ca761443d565b60200260200101819052506040518060400160405280600d81526020017f617267756d656e74734861736800000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611d125790505090506040518060400160405280600d81526020017f6d6f64756c654164647265737300000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611dac57611dac61443d565b602002602001019060c5811115611dc557611dc561451e565b908160c5811115611dd857611dd861451e565b815250506061816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611e075790505090506040518060400160405280600981526020017f64656c656761746f72000000000000000000000000000000000000000000000081525081600081518110611e6757611e6761443d565b60200260200101819052506040518060400160405280600981526020017f64656c6567617465650000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611ed25790505090506040518060400160405280601381526020017f64656c65676174696f6e436f6e74726f6c496400000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611dac57611dac61443d565b604080516001808252818301909252600091829190602080830190803683370190505090506060816000815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611fbc5790505090506040518060400160405280600a81526020017f7265736f757263654964000000000000000000000000000000000000000000008152508160008151811061201c5761201c61443d565b60200260200101819052506040518060400160405280600681526020017f63616c6c65720000000000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816120875790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106121215761212161443d565b602002602001019060c581111561213a5761213a61451e565b908160c581111561214d5761214d61451e565b815250506060816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161217d5790505090506040518060400160405280600881526020017f73797374656d4964000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816121f35790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106122535761225361443d565b60200260200101819052506040518060400160405280600c81526020017f7075626c69634163636573730000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252600091829190602080830190803683370190505090506043816000815181106118b9576118b961443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f8160008151811061231b5761231b61443d565b602002602001019060c58111156123345761233461451e565b908160c58111156123475761234761451e565b815250506043816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816123775790505090506040518060400160405280601081526020017f66756e6374696f6e53656c6563746f7200000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816123ed5790505090506040518060400160405280600881526020017f73797374656d49640000000000000000000000000000000000000000000000008152508160008151811061244d5761244d61443d565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816001815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060c5816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816124f25790505090506040518060400160405280601181526020017f66756e6374696f6e5369676e6174757265000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060b6816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816125a35790505090506040518060400160405280600581526020017f76616c7565000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161261a5790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b610bc48585612689848761304b565b8561308e565b60606000806126a087878787613322565b91509150816126b2576126b2816133a3565b9695505050505050565b60408051600580825260c082019092526000918291906020820160a080368337019050509050605f816000815181106126f7576126f761443d565b602002602001019060c58111156127105761271061451e565b908160c58111156127235761272361451e565b81525050605f8160018151811061273c5761273c61443d565b602002602001019060c58111156127555761275561451e565b908160c58111156127685761276861451e565b81525050605f816002815181106127815761278161443d565b602002602001019060c581111561279a5761279a61451e565b908160c58111156127ad576127ad61451e565b8152505060c4816003815181106127c6576127c661443d565b602002602001019060c58111156127df576127df61451e565b908160c58111156127f2576127f261451e565b8152505060c4816004815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816128225790505090506040518060400160405280600781526020017f7461626c65496400000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600580825260c08201909252606091816020015b606081526020019060019003908161289a5790505090506040518060400160405280600b81526020017f6669656c644c61796f7574000000000000000000000000000000000000000000815250816000815181106128fa576128fa61443d565b60200260200101819052506040518060400160405280600981526020017f6b6579536368656d6100000000000000000000000000000000000000000000008152508160018151811061294e5761294e61443d565b60200260200101819052506040518060400160405280600b81526020017f76616c7565536368656d61000000000000000000000000000000000000000000815250816002815181106129a2576129a261443d565b60200260200101819052506040518060400160405280601281526020017f616269456e636f6465644b65794e616d65730000000000000000000000000000815250816003815181106129f6576129f661443d565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612a615790505090506040518060400160405280600581526020017f686f6f6b73000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612ad85790505090506040518060400160405280600a81526020017f7265736f75726365496400000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612b4f5790505090506040518060400160405280600681526020017f6578697374730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000601c82511115612be2578151604051635318beb960e01b8152600401612bd991815260200190565b60405180910390fd5b60008080805b8551811015612cbd576000612c26878381518110612c0857612c0861443d565b602002602001015160c5811115612c2157612c2161451e565b6133ab565b905080600003612c3b57600190920191612c73565b8215612c73576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110612c9457612c9461443d565b602002602001015160c5811115612cad57612cad61451e565b901b949094179350600101612be8565b506005811115612ce357604051635318beb960e01b815260048101829052602401612bd9565b84518190036008612cf6600260206145d6565b612d0091906145e9565b83901b939093179260086001612d18600260206145d6565b612d2291906145d6565b612d2c91906145e9565b81901b93909317926008600180612d45600260206145d6565b612d4f91906145d6565b612d5991906145d6565b612d6391906145e9565b9190911b92909217949350505050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590612dd15750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15612e3257613a3160f11b8687604051602001612df091815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252612bd9939291600401614600565b612e3b8561340b565b612e4684600161358c565b612e5183600061358c565b60e084901c60e885901c0160ff16825114612eb15760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff16815114612f115760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614612f895760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b612f9286613733565b15612fec578586604051602001612fab91815260200190565b60408051601f19818403018152908290527fdfaaf9cf000000000000000000000000000000000000000000000000000000008252612bd99291600401614641565b6130388686868686604051602001613004919061465a565b60405160208183030381529060405286604051602001613024919061465a565b6040516020818303038152906040526137ff565b613043866001611290565b505050505050565b600080805b8360ff168110156130865761307260ff601b83900360080287901c168361466d565b91508061307e81614469565b915050613050565b509392505050565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036130fd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516130f0939291906146bb565b60405180910390a261154f565b60006131098585613903565b9050600061311686613959565b905060005b81518110156131f55760008282815181106131385761313861443d565b602002602001015190506131646004826affffffffffffffffffffff1916613a2190919063ffffffff16565b156131e2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906131af908b908b908b908b906004016146ee565b600060405180830381600087803b1580156131c957600080fd5b505af11580156131dd573d6000803e3d6000fd5b505050505b50806131ed81614469565b91505061311b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161322a939291906146bb565b60405180910390a2613245828565ffffffffffff1685613a3f565b60005b8151811015611af85760008282815181106132655761326561443d565b602002602001015190506132916008826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561330f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906132dc908b908b908b908b906004016146ee565b600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050505b508061331a81614469565b915050613248565b600060608373ffffffffffffffffffffffffffffffffffffffff16613348848888613a55565b6040516133559190614732565b600060405180830381855af49150503d8060008114613390576040519150601f19603f3d011682016040523d82523d6000602084013e613395565b606091505b509097909650945050505050565b805160208201fd5b6000808260c58111156133c0576133c061451e565b60ff16905060618110156133da57601f1660010192915050565b60618360c58111156133ee576133ee61451e565b036133fc5750601492915050565b50600092915050565b50919050565b80613442576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061344d82613a84565b90506005811115613494576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401612bd9565b600061349f83613ac1565b905060006134ad838361466d565b9050601c8111156134f4576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401612bd9565b60005b82811015610bc45760ff601b82900360080286901c166000819003613548576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115613583576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016134f7565b80158015613598575081155b156135b957604051635318beb960e01b815260006004820152602401612bd9565b60006135c483613a84565b905060058111156135eb57604051635318beb960e01b815260048101829052602401612bd9565b60006135f684613ac1565b90506000613604838361466d565b9050601c81111561362b57604051635318beb960e01b815260048101829052602401612bd9565b60008060005b838110156136ec5760006136596136488a84613ad3565b60c5811115612c2157612c2161451e565b11156136a357848110613698576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916136e4565b848110156136dd576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101613631565b5083821461371057604051635318beb960e01b815260048101839052602401612bd9565b848114611af857604051635318beb960e01b815260048101829052602401612bd9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061376c5761376c61443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906137eb906137db90614419565b836000630101000160d81b613afb565b90506137f78160f81c90565b949350505050565b600061380c868686613b31565b9050600061381a8484613b53565b905060006138288585613b70565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106138625761386261443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526138f7906138ce90614419565b828686867e60030220202000000000000000000000000000000000000000000000000000613b9c565b50505050505050505050565b6000828260405160200161391892919061474e565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106139935761399361443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090613a0a90613a0290614419565b836000613ece565b90506137f7613a1c8260008451613f08565b613f98565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b61137083838351613a508560200190565b613fa9565b6060838383604051602001613a6c93929190614789565b60405160208183030381529060405290509392505050565b60006008600180613a97600260206145d6565b613aa191906145d6565b613aab91906145d6565b613ab591906145e9565b8260ff911c1692915050565b600060086001613aa1600260206145d6565b6000601b8290036008028360ff911c1660c5811115613af457613af461451e565b9392505050565b6000613b28613b0a8686613903565b60ff858116601b0360080285901c16613b23858761304b565b614069565b95945050505050565b6040805160208101859052908101839052606081810183905290608001613a6c565b8151815160009181810160389190911b1760609190911b17613af4565b60608282604051602001613b859291906147db565b604051602081830303815290604052905092915050565b611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001603613c0d57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051613c00949392919061480a565b60405180910390a2613043565b6000613c1887613959565b905060005b8151811015613cfb576000828281518110613c3a57613c3a61443d565b60200260200101519050613c666001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ce8576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613cb5908c908c908c908c908c908c90600401614849565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050505b5080613cf381614469565b915050613c1d565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051613d32949392919061480a565b60405180910390a26000613d468888613903565b90506000602087019050613d5e826000895184613fa9565b6000613d6985613a84565b1115613ded576000613d7b8a8a6140ba565b878155905060208601915060008060005b613d9588613a84565b8160ff161015613de857613daa8d8d83614110565b9250613dc58a8260ff166028026038011c64ffffffffff1690565b9150613dd48360008488613fa9565b613dde828661466d565b9450600101613d8c565b505050505b60005b83518110156138f7576000848281518110613e0d57613e0d61443d565b60200260200101519050613e396002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ebb576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613e88908e908e908e908e908e908e90600401614849565b600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050505b5080613ec681614469565b915050613df0565b60606137f7613ede858585614110565b6000613f0385613eee8989614190565b9060ff166028026038011c64ffffffffff1690565b6141a3565b6000818311158015613f1b575083518211155b613f57578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401612bd9939291906148a2565b60208401613f65848261466d565b90506000613f7385856145d6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000613af483601560006141c6565b82156140235760208310613fd357602083048401935060208381613fcf57613fcf6148c7565b0692505b82156140235760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161401457505061154f565b50600194909401939182900391015b5b602082106140455780518455600190930192601f1990910190602001614024565b811561154f576000600019600884021c198554835182169119161785555050505050565b60006020821061408f5760208204840193506020828161408b5761408b6148c7565b0691505b508254600882021b602082900380841115613086576001850154600882021c82179150509392505050565b600082826040516020016140cf92919061474e565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161412592919061474e565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000613af461419f84846140ba565b5490565b60405160208101601f19603f848401011660405282825261308685858584614241565b606060006141d48560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816141fa576141fa6148c7565b04905060405193506020840160208202810160405281855260005b82811015614235578451871c825293870193602090910190600101614215565b50505050509392505050565b82156142ca576020831061426b57602083048401935060208381614267576142676148c7565b0692505b82156142ca57602083900360008184101561428f5750600019600884021c1961429a565b50600019600882021c195b8554600886021b8119845116828216178452508184116142bb57505061154f565b50600194909401939182900391015b5b602082106142ec5783548152600190930192601f19909101906020016142cb565b811561154f576000600019600884021c198251865482169119161782525050505050565b60006020828403121561432257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613af457600080fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561437a57600080fd5b813567ffffffffffffffff8082111561439257600080fd5b818401915084601f8301126143a657600080fd5b8135818111156143b8576143b8614352565b604051601f8201601f19908116603f011681019083821181831017156143e0576143e0614352565b816040528281528760208487010111156143f957600080fd5b826020860160208301376000928101602001929092525095945050505050565b805160208083015191908110156134055760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361447c5761447c614453565b5060010190565b60005b8381101561449e578181015183820152602001614486565b50506000910152565b600081518084526144bf816020860160208601614483565b601f01601f19169290920160200192915050565b8381526060602082015260006144ec60608301856144a7565b90507fffffffff0000000000000000000000000000000000000000000000000000000083166040830152949350505050565b634e487b7160e01b600052602160045260246000fd5b600082825180855260208086019550808260051b84010181860160005b8481101561457f57601f1986840301895261456d8383516144a7565b98840198925090830190600101614551565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006145b760c0830185614534565b82810360a08401526145c98185614534565b9998505050505050505050565b8181038181111561022757610227614453565b808202811582820484141761022757610227614453565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000613b2860608301846144a7565b8281526040602082015260006137f760408301846144a7565b602081526000613af46020830184614534565b8082018082111561022757610227614453565b600081518084526020808501945080840160005b838110156146b057815187529582019590820190600101614694565b509495945050505050565b6060815260006146ce6060830186614680565b65ffffffffffff8516602084015282810360408401526126b281856144a7565b8481526080602082015260006147076080830186614680565b65ffffffffffff85166040840152828103606084015261472781856144a7565b979650505050505050565b60008251614744818460208701614483565b9190910192915050565b82815260006020808301845182860160005b8281101561477c57815184529284019290840190600101614760565b5091979650505050505050565b6000845161479b818460208901614483565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600083516147ed818460208801614483565b835190830190614801818360208801614483565b01949350505050565b60808152600061481d6080830187614680565b828103602084015261482f81876144a7565b9050846040840152828103606084015261472781856144a7565b86815260c06020820152600061486260c0830188614680565b828103604084015261487481886144a7565b9050856060840152828103608084015261488e81866144a7565b9150508260a0830152979650505050505050565b6060815260006148b560608301866144a7565b60208301949094525060400152919050565b634e487b7160e01b600052601260045260246000fdfe756e726567697374657253746f7265486f6f6b28627974657333322c616464726573732972656769737465725461626c6528627974657333322c627974657333322c627974657333322c627974657333322c737472696e675b5d2c737472696e675b5d29726567697374657244656c65676174696f6e28616464726573732c627974657333322c627974657329726567697374657246756e6374696f6e53656c6563746f7228627974657333322c737472696e6729726567697374657253797374656d28627974657333322c616464726573732c626f6f6c297472616e7366657242616c616e6365546f4164647265737328627974657333322c616464726573732c75696e7432353629726567697374657253746f7265486f6f6b28627974657333322c616464726573732c75696e7438297265676973746572526f6f7446756e6374696f6e53656c6563746f7228627974657333322c737472696e672c62797465733429626174636843616c6c46726f6d2828616464726573732c627974657333322c6279746573295b5d29756e726567697374657253797374656d486f6f6b28627974657333322c616464726573732972656769737465724e616d65737061636544656c65676174696f6e28627974657333322c627974657333322c6279746573297472616e7366657242616c616e6365546f4e616d65737061636528627974657333322c627974657333322c75696e7432353629726567697374657253797374656d486f6f6b28627974657333322c616464726573732c75696e7438297472616e736665724f776e65727368697028627974657333322c6164647265737329a164736f6c6343000815000a64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65646368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65647365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d617463686368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564476574206c697374206f66206b6579732077697468206120676976656e2076616c75657365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564636f6d707574652074686520746172676574207461626c652073656c6563746f72a164736f6c6343000815000a60a06040526040516100109061004b565b604051809103906000f08015801561002c573d6000803e3d6000fd5b506001600160a01b031660805234801561004557600080fd5b50610058565b6126f0806115ff83390190565b60805161158561007a60003960008181610587015261069001526115856000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b6100956100903660046111ec565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461124b565b61023c565b005b6040517f696e64657800000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b36600461124b565b61026e565b6100b2610786565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610790565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102987f696e646578000000000000000000000000000000000000000000000000000000826107c2565b6000818060200190518101906102ae91906112fc565b905060006102dc7f6b65797776616c0000000000000000000000000000000000000000000000000083610807565b905060006102e8610786565b90506103357f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008416176108e4565b6104515760008073ffffffffffffffffffffffffffffffffffffffff83168063b29e40897f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008816176040516024016103ae91815260200190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103fb9250611339565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b50915091508161044e5761044e816109fb565b50505b60008073ffffffffffffffffffffffffffffffffffffffff831680630ba51f49867c0100000000000000000000000000000000000000000000000000000000610498610a03565b6104a0610a7b565b6104a8610ab5565b6104b0610b3a565b6040516024016104c5969594939291906113c5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105129250611339565b600060405180830381855af49150503d806000811461054d576040519150601f19603f3d011682016040523d82523d6000602084013e610552565b606091505b50915091508161056557610565816109fb565b604080516024810186905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40554c3a0000000000000000000000000000000000000000000000000000000017905291519185169161061a9190611339565b600060405180830381855af49150503d8060008114610655576040519150601f19603f3d011682016040523d82523d6000602084013e61065a565b606091505b5090925090508161066e5761066e816109fb565b604080516024810187905273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166044830152607d60648084019190915283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f530f4b600000000000000000000000000000000000000000000000000000000017905291519185169161072a9190611339565b600060405180830381855af49150503d8060008114610765576040519150601f19603f3d011682016040523d82523d6000602084013e61076a565b606091505b5090925090508161077e5761077e816109fb565b505050505050565b6000610237610bb1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806107bf5750335b90565b6107cc8282610bfd565b15610803576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008061081383610c46565b905060006108218460101b90565b90506038610830816010611425565b61083a9190611425565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c61086b60386010611425565b7f74620000000000000000000000000000000000000000000000000000000000007fffffffffffffff0000000000000000000000000000000000000000000000000093909316901c601087901c7dffffffffffffff00000000000000000000000000000000000000000000001617171791505092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061091d5761091d611438565b602090810291909101810191909152604080517f7462000000000000000000000000000000000000000000000000000000000000818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906109e7906109bf9061144e565b8360007e01010001000000000000000000000000000000000000000000000000000000610c5d565b90506109f38160f81c90565b949350505050565b805160208201fd5b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610a3d57610a3d611438565b602002602001019060c5811115610a5657610a56611472565b908160c5811115610a6957610a69611472565b905250610a7581610d34565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060c181600081518110610a3d57610a3d611438565b604080516001808252818301909252606091816020015b6060815260200190600190039081610acc5790505090506040518060400160405280600981526020017f76616c756548617368000000000000000000000000000000000000000000000081525081600081518110610b2c57610b2c611438565b602002602001018190525090565b604080516001808252818301909252606091816020015b6060815260200190600190039081610b515790505090506040518060400160405280600d81526020017f6b6579735769746856616c75650000000000000000000000000000000000000081525081600081518110610b2c57610b2c611438565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610bf8573391505090565b919050565b60008073ffffffffffffffffffffffffffffffffffffffff16610c27848480519060200120610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614159392505050565b6000610c5460706010611425565b9190911b919050565b600080610c68610bb1565b90503073ffffffffffffffffffffffffffffffffffffffff821603610c9b57610c938686868661106c565b9150506109f3565b6040517f8c364d5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690638c364d5990610cf3908990899089908990600401611488565b602060405180830381865afa158015610d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9391906112fc565b6000601c82511115610d805781516040517f5318beb9000000000000000000000000000000000000000000000000000000008152600401610d7791815260200190565b60405180910390fd5b60008080805b8551811015610e5b576000610dc4878381518110610da657610da6611438565b602002602001015160c5811115610dbf57610dbf611472565b6110a2565b905080600003610dd957600190920191610e11565b8215610e11576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610e3257610e32611438565b602002602001015160c5811115610e4b57610e4b611472565b901b949094179350600101610d86565b506005811115610e9a576040517f5318beb900000000000000000000000000000000000000000000000000000000815260048101829052602401610d77565b84518190036008610ead600260206114e3565b610eb791906114f6565b83901b939093179260086001610ecf600260206114e3565b610ed991906114e3565b610ee391906114f6565b81901b93909317926008600180610efc600260206114e3565b610f0691906114e3565b610f1091906114e3565b610f1a91906114f6565b9190911b92909217949350505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110610f7657610f76611438565b6020026020010181815250508281600181518110610f9657610f96611438565b602090810291909101810191909152604080517f7462000000000000000000000000000000000000000000000000000000000000818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052600090611060906110389061144e565b8360007e14010014000000000000000000000000000000000000000000000000000000610c5d565b60601c95945050505050565b600061109961107b8686611102565b60ff858116601b0360080285901c166110948587611158565b61119b565b95945050505050565b6000808260c58111156110b7576110b7611472565b60ff16905060618110156110d157601f1660010192915050565b60618360c58111156110e5576110e5611472565b036110f35750601492915050565b50600092915050565b50919050565b6000828260405160200161111792919061150d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156111935761117f60ff601b83900360080287901c1683611425565b91508061118b81611548565b91505061115d565b509392505050565b6000602082106111c1576020820484019350602082816111bd576111bd611562565b0691505b508254600882021b602082900380841115611193576001850154600882021c82179150509392505050565b6000602082840312156111fe57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461122e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561125d57600080fd5b813567ffffffffffffffff8082111561127557600080fd5b818401915084601f83011261128957600080fd5b81358181111561129b5761129b611235565b604051601f8201601f19908116603f011681019083821181831017156112c3576112c3611235565b816040528281528760208487010111156112dc57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561130e57600080fd5b5051919050565b60005b83811015611330578181015183820152602001611318565b50506000910152565b6000825161134b818460208701611315565b9190910192915050565b600082825180855260208086019550808260051b84010181860160005b848110156113b857601f1980878503018a528251805180865261139a81888801898501611315565b9a86019a601f01909116939093018401925090830190600101611372565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006113f060c0830185611355565b82810360a08401526114028185611355565b9998505050505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102275761022761140f565b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156110fc5760001960209190910360031b1b16919050565b634e487b7160e01b600052602160045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b818110156114c9578451835293830193918301916001016114ad565b505060ff9690961660408501525050506060015292915050565b818103818111156102275761022761140f565b80820281158282048414176102275761022761140f565b82815260006020808301845182860160005b8281101561153b5781518452928401929084019060010161151f565b5091979650505050505050565b6000600019820361155b5761155b61140f565b5060010190565b634e487b7160e01b600052601260045260246000fdfea164736f6c6343000815000a608060405234801561001057600080fd5b506126d0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636358453311610076578063964f667d1161005b578063964f667d1461012b5780639faeaf451461013e578063a8ba87211461015157600080fd5b8063635845331461010a57806383b5c95b1461011d57600080fd5b806301ffc9a7146100a857806355eb5a28146100cf57806357066c9c146100e45780635b28cdaf146100f7575b600080fd5b6100bb6100b6366004611df4565b610164565b604051901515815260200160405180910390f35b6100e26100dd366004611f90565b6101fd565b005b6100e26100f2366004612044565b610262565b6100e2610105366004612044565b61031d565b6100e2610118366004611f90565b61034f565b6100e26101053660046120e8565b6100e2610139366004612138565b61039b565b6100e261014c3660046120e8565b6103ef565b6100e261015f366004612138565b610434565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061020888610480565b90506000610217898984610558565b9050600061022f661ad95e5ddd985b60ca1b8b610633565b9050610256818a600081518110610248576102486121c5565b6020026020010151846106f5565b50505050505050505050565b6000610278661ad95e5ddd985b60ca1b88610633565b90506000610287888885610558565b90506102ae82886000815181106102a0576102a06121c5565b6020026020010151836106f5565b8351606090156102e3578686866040516020016102cd939291906121ff565b60405160208183030381529060405290506102e6565b50855b6103128382805190602001208a600081518110610305576103056121c5565b6020026020010151610736565b505050505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061035a88610480565b90506000610369898984610558565b90506000610381661ad95e5ddd985b60ca1b8b610633565b905061025681838b600081518110610305576103056121c5565b60006103a685610480565b905060006103b5868684610558565b905060006103cd661ad95e5ddd985b60ca1b88610633565b90506103e68187600081518110610248576102486121c5565b50505050505050565b60006103fc848484610558565b90506000610414661ad95e5ddd985b60ca1b86610633565b905061042d8185600081518110610248576102486121c5565b5050505050565b600061043f85610480565b9050600061044e868684610558565b90506000610466661ad95e5ddd985b60ca1b88610633565b90506103e6818388600081518110610305576103056121c5565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104b9576104b96121c5565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906105509061052890612236565b8360007e600302202020000000000000000000000000000000000000000000000000006107a6565b949350505050565b600080600080610566610863565b6001600160a01b031663419b58fd8888886040518463ffffffff1660e01b815260040161059593929190612298565b600060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105da9190810190612306565b92509250925060008151111561061f578282826040516020016105ff939291906121ff565b60405160208183030381529060405280519060200120935050505061062c565b5050805160209091012090505b9392505050565b60008061063f83610872565b9050600061064d8460101b90565b9050603861065c816010612389565b6106669190612389565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c61069760386010612389565b613a3160f11b7fffffffffffffff0000000000000000000000000000000000000000000000000093909316901c601087901c7dffffffffffffff00000000000000000000000000000000000000000000001617171791505092915050565b600061070b836107058685610889565b906108fd565b905080516000036107255761072084836109d5565b610730565b610730848383610a26565b50505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061076c5761076c6121c5565b602002602001018181525050610730848260008560405160200161079291815260200190565b604051602081830303815290604052610a7d565b6000806107b1610b23565b9050306001600160a01b038216036107d7576107cf86868686610b62565b915050610550565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061082290899089908990899060040161239c565b602060405180830381865afa15801561083f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf91906123cb565b600061086d610b23565b905090565b600061088060706010612389565b9190911b919050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106108c3576108c36121c5565b60200260200101818152505060006108dd85836000610b8f565b90506108f46108ef8260008451610c56565b610cef565b95945050505050565b60606000835167ffffffffffffffff81111561091b5761091b611e36565b604051908082528060200260200182016040528015610944578160200160208202803683370190505b5090506000805b85518110156109cb5784868281518110610967576109676121c5565b6020026020010151146109b957858181518110610986576109866121c5565b60200260200101518383815181106109a0576109a06121c5565b6020908102919091010152816109b5816123e4565b9250505b806109c3816123e4565b91505061094b565b5081529392505050565b604080516001808252818301909252600091602080830190803683370190505090508181600081518110610a0b57610a0b6121c5565b602002602001018181525050610a218382610d00565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610a5c57610a5c6121c5565b60200260200101818152505061073084826000610a7886610d9b565b610dab565b6000610a87610b23565b9050306001600160a01b03821603610aaa57610aa585858585610e1e565b61042d565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290610af590889088908890889060040161242a565b600060405180830381600087803b158015610b0f57600080fd5b505af1158015610312573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610b5d573391505090565b919050565b60006108f4610b718686610e61565b60ff858116601b0360080285901c16610b8a8587610eb7565b610ef2565b60606000610b9b610b23565b9050306001600160a01b03821603610bc057610bb8858585610f43565b91505061062c565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610c099088908890889060040161245e565b600060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bb8919081019061248a565b509392505050565b6000818311158015610c69575083518211155b610cae578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610ca5939291906124bf565b60405180910390fd5b60208401610cbc8482612389565b90506000610cca85856124e4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061062c8360206000610f7d565b6000610d0a610b23565b9050306001600160a01b03821603610d2657610a218383610ff8565b6040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063505a181d90610d6d90869086906004016124f7565b600060405180830381600087803b158015610d8757600080fd5b505af11580156103e6573d6000803e3d6000fd5b60608161062c816020600061100f565b6000610db5610b23565b9050306001600160a01b03821603610dd357610aa585858585611063565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea86290610af590889088908890889060040161242a565b6000610e2a858561109e565b90506000610e47828560ff166028026038011c64ffffffffff1690565b9050610e5986868684600088886110b1565b505050505050565b60008282604051602001610e76929190612510565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4e57610ede60ff601b83900360080287901c1683612389565b915080610eea816123e4565b915050610ebc565b600060208210610f1857602082048401935060208281610f1457610f1461254b565b0691505b508254600882021b602082900380841115610c4e576001850154600882021c82179150509392505050565b6060610550610f538585856114c7565b6000610f7885610f63898961109e565b9060ff166028026038011c64ffffffffff1690565b611547565b60606000610f8b8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281610fb157610fb161254b565b04905060405193506020840160208202810160405281855260005b82811015610fec578451871c825293870193602090910190600101610fcc565b50505050509392505050565b61100b82826110068561156a565b611668565b5050565b825160609060006110208583612561565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015610fec578051871b83529187019160019190910190602001611042565b600061106f858561109e565b9050600061108c828560ff166028026038011c64ffffffffff1690565b9050610e5986868660008588886110b1565b600061062c6110ad848461197b565b5490565b613a3160f11b877fffff000000000000000000000000000000000000000000000000000000000000161461113b57613a3160f11b87886040516020016110f991815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610ca5939291600401612578565b6000611156828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361116f91906124e4565b6111799190612389565b905080821415801561119b57508161119186886125b9565b64ffffffffff1614155b156111eb576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610ca5565b818664ffffffffff16111561123c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610ca5565b60006112498489846119d1565b905060006112568b611a9f565b905060005b815181101561132b576000828281518110611278576112786121c5565b602002602001015190506112a46010826affffffffffffffffffffff1916611b6790919063ffffffff16565b1561131857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016112e597969594939291906125de565b600060405180830381600087803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050505b5080611323816123e4565b91505061125b565b5064ffffffffff881660005b8a60ff168160ff16101561136a5761135e878260ff166028026038011c64ffffffffff1690565b90910190600101611337565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516113a395949392919061263c565b60405180910390a2508284146113c45760006113bf8c8c61197b565b839055505b60006113d18c8c8c6114c7565b90506113e5818a64ffffffffff1689611b85565b5060005b81518110156114b9576000828281518110611406576114066121c5565b602002602001015190506114326020826affffffffffffffffffffff1916611b6790919063ffffffff16565b156114a657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161147397969594939291906125de565b600060405180830381600087803b15801561148d57600080fd5b505af11580156114a1573d6000803e3d6000fd5b505050505b50806114b1816123e4565b9150506113e9565b505050505050505050505050565b600083836040516020016114dc929190612510565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f8484010116604052828252610c4e85858584611b9b565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152600091016040516020818303038152906040526115c990612236565b82036115f557507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101f79161165f910160405160208183030381529060405261165990612236565b84611c6a565b60206000610ef2565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff00000000000000000000000000000000000000000000000000000000000016036116ee57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516116e1919061268e565b60405180910390a2505050565b60006116f984611a9f565b905060005b81518110156117d657600082828151811061171b5761171b6121c5565b602002602001015190506117476040826affffffffffffffffffffff1916611b6790919063ffffffff16565b156117c3576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf459061179090899089908990600401612298565b600060405180830381600087803b1580156117aa57600080fd5b505af11580156117be573d6000803e3d6000fd5b505050505b50806117ce816123e4565b9150506116fe565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051611807919061268e565b60405180910390a2600061181b8585610e61565b905061187481600061182c86611c86565b67ffffffffffffffff81111561184457611844611e36565b6040519080825280601f01601f19166020018201604052801561186e576020820181803683370190505b50611b85565b600061187f84611ca9565b11156118a0576000611891868661197b565b905061189e816020611ce6565b505b60005b8251811015610e595760008382815181106118c0576118c06121c5565b602002602001015190506118ec6080826affffffffffffffffffffff1916611b6790919063ffffffff16565b15611968576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611935908a908a908a90600401612298565b600060405180830381600087803b15801561194f57600080fd5b505af1158015611963573d6000803e3d6000fd5b505050505b5080611973816123e4565b9150506118a3565b60008282604051602001611990929190612510565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115611a15576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610ca5565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510611a475780850382019150611a4f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ad957611ad96121c5565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b5090611b4890612236565b836000610f43565b9050610550611b628260008451610c56565b611d23565b60008160ff1682611b788560581c90565b1660ff1614905092915050565b610a2183838351611b968560200190565b611d34565b8215611c245760208310611bc557602083048401935060208381611bc157611bc161254b565b0692505b8215611c24576020839003600081841015611be95750600019600884021c19611bf4565b50600019600882021c195b8554600886021b811984511682821617845250818411611c15575050610730565b50600194909401939182900391015b5b60208210611c465783548152600190930192601f1990910190602001611c25565b8115610730576000600019600884021c198251865482169119161782525050505050565b6040805160208101849052908101829052600090606001610e76565b60006008611c96600260206124e4565b611ca09190612561565b9190911c919050565b60006008600180611cbc600260206124e4565b611cc691906124e4565b611cd091906124e4565b611cda9190612561565b8260ff911c1692915050565b60006020611cf583601f612389565b611cff91906126a1565b611d099084612389565b90505b80831015610a215760008355600183019250611d0c565b6060600061062c8360156000610f7d565b8215611dae5760208310611d5e57602083048401935060208381611d5a57611d5a61254b565b0692505b8215611dae5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611d9f575050610730565b50600194909401939182900391015b5b60208210611dd05780518455600190930192601f1990910190602001611daf565b8115610730576000600019600884021c198554835182169119161785555050505050565b600060208284031215611e0657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461062c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e7557611e75611e36565b604052919050565b600082601f830112611e8e57600080fd5b8135602067ffffffffffffffff821115611eaa57611eaa611e36565b8160051b611eb9828201611e4c565b9283528481018201928281019087851115611ed357600080fd5b83870192505b84831015611ef257823582529183019190830190611ed9565b979650505050505050565b803564ffffffffff81168114610b5d57600080fd5b600067ffffffffffffffff821115611f2c57611f2c611e36565b50601f01601f191660200190565b600082601f830112611f4b57600080fd5b8135611f5e611f5982611f12565b611e4c565b818152846020838601011115611f7357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611fab57600080fd5b87359650602088013567ffffffffffffffff80821115611fca57600080fd5b611fd68b838c01611e7d565b975060408a0135915060ff82168214611fee57600080fd5b819650611ffd60608b01611efd565b955061200b60808b01611efd565b945060a08a0135935060c08a013591508082111561202857600080fd5b506120358a828b01611f3a565b91505092959891949750929550565b60008060008060008060c0878903121561205d57600080fd5b86359550602087013567ffffffffffffffff8082111561207c57600080fd5b6120888a838b01611e7d565b9650604089013591508082111561209e57600080fd5b6120aa8a838b01611f3a565b95506060890135945060808901359150808211156120c757600080fd5b506120d489828a01611f3a565b92505060a087013590509295509295509295565b6000806000606084860312156120fd57600080fd5b83359250602084013567ffffffffffffffff81111561211b57600080fd5b61212786828701611e7d565b925050604084013590509250925092565b6000806000806080858703121561214e57600080fd5b84359350602085013567ffffffffffffffff8082111561216d57600080fd5b61217988838901611e7d565b94506040870135915065ffffffffffff8216821461219657600080fd5b909250606086013590808211156121ac57600080fd5b506121b987828801611f3a565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b60005b838110156121f65781810151838201526020016121de565b50506000910152565b600084516122118184602089016121db565b820184815283516122298160208085019088016121db565b0160200195945050505050565b80516020808301519190811015612257576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b8381101561228d57815187529582019590820190600101612271565b509495945050505050565b8381526060602082015260006122b1606083018561225d565b9050826040830152949350505050565b600082601f8301126122d257600080fd5b81516122e0611f5982611f12565b8181528460208386010111156122f557600080fd5b6105508260208301602087016121db565b60008060006060848603121561231b57600080fd5b835167ffffffffffffffff8082111561233357600080fd5b61233f878388016122c1565b945060208601519350604086015191508082111561235c57600080fd5b50612369868287016122c1565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7612373565b8481526080602082015260006123b5608083018661225d565b60ff949094166040830152506060015292915050565b6000602082840312156123dd57600080fd5b5051919050565b600060001982036123f7576123f7612373565b5060010190565b600081518084526124168160208601602086016121db565b601f01601f19169290920160200192915050565b848152608060208201526000612443608083018661225d565b60ff851660408401528281036060840152611ef281856123fe565b838152606060208201526000612477606083018561225d565b905060ff83166040830152949350505050565b60006020828403121561249c57600080fd5b815167ffffffffffffffff8111156124b357600080fd5b610550848285016122c1565b6060815260006124d260608301866123fe565b60208301949094525060400152919050565b818103818111156101f7576101f7612373565b828152604060208201526000610550604083018461225d565b82815260006020808301845182860160005b8281101561253e57815184529284019290840190600101612522565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b80820281158282048414176101f7576101f7612373565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108f460608301846123fe565b64ffffffffff8181168382160190808211156125d7576125d7612373565b5092915050565b87815260e0602082015260006125f760e083018961225d565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261262e81856123fe565b9a9950505050505050505050565b60a08152600061264f60a083018861225d565b65ffffffffffff8716602084015264ffffffffff86166040840152846060840152828103608084015261268281856123fe565b98975050505050505050565b60208152600061062c602083018461225d565b6000826126be57634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000815000a","sourceMap":"1842:9097:197:-:0;;;1572:26:101;;;1594:4;-1:-1:-1;;1572:26:101;;;;;;;;3126:44:104;;;;;;;;;;;228:9:0;186:51;;2062:25:197;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2012:75:197;;;-1:-1:-1;;;;;;2012:75:197;-1:-1:-1;;;;;2012:75:197;;;;;;;;;;2153:42;;;-1:-1:-1;;;;;;2199:46:197;-1:-1:-1;;;2199:46:197;;;2272:17;2249:40;;2347:18;2324:41;;1842:9097;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b50600436106200016c5760003560e01c8063786bd7bc11620000dd578063b5508aa9116200008b578063e004c9e9116200006e578063e004c9e91462000267578063e20c9f711462000271578063fa7626d4146200027b57600080fd5b8063b5508aa91462000242578063ba414fa6146200024c57600080fd5b806379fe553d11620000c057806379fe553d146200021557806385226c81146200021f578063916a17c6146200023857600080fd5b8063786bd7bc146200020157806378cdebf9146200020b57600080fd5b80633f7286f4116200013b578063615295ee116200011e578063615295ee14620001c757806366d9a9a014620001d157806376270d0114620001ea57600080fd5b80633f7286f414620001b35780634a8cf93d14620001bd57600080fd5b80630a9254e414620001715780631ed7831c146200017d57806339e2edb9146200019f5780633e5e3c2314620001a9575b600080fd5b6200017b62000289565b005b6200018762000531565b604051620001969190620038a5565b60405180910390f35b6200017b62000595565b62000187620005a3565b6200018762000605565b6200017b62000667565b6200017b62000cc9565b620001db62000f53565b604051620001969190620038f4565b6200017b620001fb366004620039e1565b6200105b565b6200017b620012b0565b6200017b620013c8565b6200017b6200159f565b62000229620015d5565b60405162000196919062003aa8565b620001db620016af565b62000229620017ae565b6200025662001888565b604051901515815260200162000196565b6200017b620019d4565b6200018762001c49565b600054620002569060ff1681565b620002976020600062001cab565b602655620002a6601f62001d09565b602755620002b5605f62001d09565b60285560215462000303907f746200000000000000000000000000000000000000000000000000000000000090609081901b906e010000000000000000000000000000900460801b62001d8c565b602981905562000335907f6b65797776616c000000000000000000000000000000000000000000000000009062001e14565b602a556040516200034690620037ee565b604051809103906000f08015801562000363573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905563c4d66de8620003aa62001efc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200040457600080fd5b505af115801562000419573d6000803e3d6000fd5b5050601f547f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055506200047d9050565b604080516001808252818301909252906020808301908036833750508151620004ae926023925060200190620037fc565b506022546023600081548110620004c957620004c962003ad3565b600091825260209091200155604080516001808252818301909252908160200160208202803683375050815162000508926025925060200190620037fc565b50602454602560008154811062000523576200052362003ad3565b600091825260209091200155565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200058b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200056c575b5050505050905090565b620005a160016200105b565b565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6200067162002007565b601f546029546040805160016020808301829052835180840390910181526000838501818152606085019586905263298314fb60e01b90955291956001600160a01b03169463298314fb94620006d39491936023939290919060640162003b2b565b600060405180830381600087803b158015620006ee57600080fd5b505af115801562000703573d6000803e3d6000fd5b50505050600062000740602a54836040516020016200072491815260200190565b60405160208183030381529060405280519060200120620021b5565b905062000786815160016040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525062002232565b620007e781600081518110620007a057620007a062003ad3565b60200260200101516022546040518060400160405280600181526020017f32000000000000000000000000000000000000000000000000000000000000008152506200227f565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200084694909360259392919060640162003b2b565b600060405180830381600087803b1580156200086157600080fd5b505af115801562000876573d6000803e3d6000fd5b5050505062000895602a54836040516020016200072491815260200190565b9050620008a581516002620022cc565b6200090681600081518110620008bf57620008bf62003ad3565b60200260200101516022546040518060400160405280600181526020017f33000000000000000000000000000000000000000000000000000000000000008152506200227f565b620009678160018151811062000920576200092062003ad3565b60200260200101516024546040518060400160405280600181526020017f34000000000000000000000000000000000000000000000000000000000000008152506200227f565b600060029050620009916040518060600160405280603d815260200162017bb8603d9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620009f094909360239392919060640162003b2b565b600060405180830381600087803b15801562000a0b57600080fd5b505af115801562000a20573d6000803e3d6000fd5b5050505062000a2e620026b9565b62000a49602a54846040516020016200072491815260200190565b915062000a8f825160016040518060400160405280600181526020017f350000000000000000000000000000000000000000000000000000000000000081525062002232565b62000af08260008151811062000aa95762000aa962003ad3565b60200260200101516024546040518060400160405280600181526020017f36000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000b0b602a54826040516020016200072491815260200190565b915062000b51825160016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525062002232565b62000bb28260008151811062000b6b5762000b6b62003ad3565b60200260200101516022546040518060400160405280600181526020017f38000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000bd66040518060600160405280603d815260200162017add603d9139620023de565b601f546029546040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163505a181d9162000c259160239060040162003b76565b600060405180830381600087803b15801562000c4057600080fd5b505af115801562000c55573d6000803e3d6000fd5b5050505062000c63620026b9565b62000c7e602a54826040516020016200072491815260200190565b915062000cc4825160006040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525062002232565b505050565b62000cd362002007565b60006001905062000cfd60405180606001604052806039815260200162017b5660399139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000d71939092602392600092909160440162003b91565b600060405180830381600087803b15801562000d8c57600080fd5b505af115801562000da1573d6000803e3d6000fd5b5050505062000daf620026b9565b600062000dcc602a54836040516020016200072491815260200190565b905062000ddc81516001620022cc565b62000e078160008151811062000df65762000df662003ad3565b602002602001015160225462002949565b60006002905062000e316040518060600160405280603c815260200162017b1a603c9139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000ea5939092602392600092909160440162003b91565b600060405180830381600087803b15801562000ec057600080fd5b505af115801562000ed5573d6000803e3d6000fd5b5050505062000ee3620026b9565b62000efe602a54846040516020016200072491815260200190565b915062000f0e82516000620022cc565b62000f29602a54826040516020016200072491815260200190565b915062000f3982516001620022cc565b62000cc48260008151811062000df65762000df662003ad3565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200103957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000fe55790505b5050505050815250508152602001906001019062000f77565b50505050905090565b6200106562002007565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620010c494909360239392919060640162003b2b565b600060405180830381600087803b158015620010df57600080fd5b505af1158015620010f4573d6000803e3d6000fd5b505050506200111c60405180606001604052806023815260200162017bf560239139620023de565b601f54602954604080516020810185905260009362001165936001600160a01b03909116929091015b60408051808303601f190181526000808452602084019092529162002a49565b905062001171620026b9565b6200117f81516001620022cc565b620011998160008151811062000df65762000df662003ad3565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620011f894909360259392919060640162003b2b565b600060405180830381600087803b1580156200121357600080fd5b505af115801562001228573d6000803e3d6000fd5b5050601f5460295460408051602081018890526200125795506001600160a01b03909316935090910162001145565b90506200126781516002620022cc565b620012818160008151811062000df65762000df662003ad3565b620012ac816001815181106200129b576200129b62003ad3565b602002602001015160245462002949565b5050565b620012ba62002007565b600060019050620012e46040518060600160405280603a815260200162017c18603a9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200134394909360239392919060640162003b2b565b600060405180830381600087803b1580156200135e57600080fd5b505af115801562001373573d6000803e3d6000fd5b5050505062001381620026b9565b60006200139e602a54836040516020016200072491815260200190565b9050620013ae81516001620022cc565b620012ac8160008151811062000df65762000df662003ad3565b601f54602080546029546040516001600160a01b039485169463af068c9e94931692620013fa92910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200142892919062003bdc565b600060405180830381600087803b1580156200144357600080fd5b505af115801562001458573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f14012068000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050601f5460208054602954604080518085019290925280518083039094018452818101908190527faf068c9e0000000000000000000000000000000000000000000000000000000090526001600160a01b03938416955063af068c9e94506200156993909116919060440162003bdc565b600060405180830381600087803b1580156200158457600080fd5b505af115801562001599573d6000803e3d6000fd5b50505050565b620005a160106080620015b460388062003c16565b620015c0919062003c16565b620015cc919062003c16565b610100620022cc565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620010525783829060005260206000200180546200161b9062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016499062003c2c565b80156200169a5780601f106200166e576101008083540402835291602001916200169a565b820191906000526020600020905b8154815290600101906020018083116200167c57829003601f168201915b505050505081526020019060010190620015f9565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200179557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017415790505b50505050508152505081526020019060010190620016d3565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101562001052578382906000526020600020018054620017f49062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620018229062003c2c565b8015620018735780601f10620018475761010080835404028352916020019162001873565b820191906000526020600020905b8154815290600101906020018083116200185557829003601f168201915b505050505081526020019060010190620017d2565b60008054610100900460ff1615620018a95750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620019cf5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000008284015282518083038401815260608301909352600092909162001951917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003c62565b60408051601f19818403018152908290526200196d9162003cac565b6000604051808303816000865af19150503d8060008114620019ac576040519150601f19603f3d011682016040523d82523d6000602084013e620019b1565b606091505b5091505080806020019051810190620019cb919062003cca565b9150505b919050565b620019f860405180606001604052806021815260200162017c5260219139620023de565b600062001a287f6b65797776616c0000000000000000000000000000000000000000000000000060295462001e14565b905062001a34620026b9565b62001abc817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f74620000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660405180606001604052806029815260200162017b8f602991396200227f565b60408051808201909152601f81527f6d6f64756c65206e616d65737061636520646f6573206e6f74206d6174636800602082015262001b45907fffffffffffffff00000000000000000000000000000000000000000000000000601084901b16907f6b65797776616c00000000000000000000000000000000000000000000000000906200227f565b62001bc562001b576038601062003c16565b60215460408051808201909152601e81527f7461626c65206e616d65737061636520646f6573206e6f74206d61746368000060208201529184901b7fffffffffffffff000000000000000000000000000000000000000000000000009081169260909290921b16906200227f565b62001c4662001bd48262002ad9565b6fffffffffffffffffffffffffffffffff19166021600e9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166040518060400160405280601981526020017f7461626c65206e616d6520646f6573206e6f74206d61746368000000000000008152506200227f565b50565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b60408051600180825281830190925260009182919060208083019080368337019050509050838160008151811062001ce75762001ce762003ad3565b60200260200101818152505062001cff818462002af2565b9150505b92915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062001d455762001d4562003ad3565b602002602001019060c581111562001d615762001d6162003cee565b908160c581111562001d775762001d7762003cee565b90525062001d858162002d1c565b9392505050565b600062001d9c6070601062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b60008062001e228362002ad9565b9050600062001e318460101b90565b9050603862001e4281601062003c16565b62001e4e919062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c62001e816038601062003c16565b7dffffffffffffff0000000000000000000000000000000000000000000000601088901c167fffffffffffffff00000000000000000000000000000000000000000000000000909316901c91909117177f74620000000000000000000000000000000000000000000000000000000000001791505092915050565b600060405162001f0c9062003848565b604051809103906000f08015801562001f29573d6000803e3d6000fd5b5060405162001f389062003856565b604051809103906000f08015801562001f55573d6000803e3d6000fd5b5060405162001f649062003864565b604051809103906000f08015801562001f81573d6000803e3d6000fd5b5060405162001f909062003872565b604051809103906000f08015801562001fad573d6000803e3d6000fd5b5060405162001fbc9062003880565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f08015801562002001573d6000803e3d6000fd5b50905090565b601f546029546026546028546027546040805160018082528183019092526001600160a01b0390961695630ba51f499594939291816020015b60608152602001906001900390816200204057505060408051600180825281830190925290602082015b60608152602001906001900390816200206a579050506040518763ffffffff1660e01b8152600401620020a39695949392919062003d04565b600060405180830381600087803b158015620020be57600080fd5b505af1158015620020d3573d6000803e3d6000fd5b50505050620021176040518060400160405280601e81526020017f696e7374616c6c206b65797320776974682076616c7565206d6f64756c650000815250620023de565b601f54602080546029546040516001600160a01b039485169463af068c9e949316926200214992910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200217792919062003bdc565b600060405180830381600087803b1580156200219257600080fd5b505af1158015620021a7573d6000803e3d6000fd5b50505050620005a1620026b9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110620021f257620021f262003ad3565b60200260200101818152505060006200220e8583600062002f32565b90506200222962002223826000845162003004565b6200309c565b95945050505050565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200226b919062003d52565b60405180910390a162000cc48383620022cc565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381604051620022b8919062003d52565b60405180910390a162000cc4838362002949565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200235a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e60408201527f745d000000000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162002393919062003d9b565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a881604051620023cc919062003de7565b60405180910390a1620012ac620030af565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024a6919062003cca565b620024ae5750565b601b8054620024bd9062003c2c565b9050600014601b604051602001620024d6919062003ebe565b6040516020818303038152906040529062002529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b60405180910390fd5b50601d816040516200253c919062003cac565b9081526020016040518091039020546000148160405160200162002561919062003f5a565b60405160208183030381529060405290620025ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b50601b620025ba82826200401a565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200261a57600080fd5b505af11580156200262f573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b1580156200269d57600080fd5b505af1158015620026b2573d6000803e3d6000fd5b5050505050565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002787919062003cca565b6200278f5750565b600060a082601c54620027a39190620040e7565b620027af9190620040e7565b620027bc90600162003c16565b9050600081116200282a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e2774207573652067617300000000000000604482015260640162002520565b80601d601b6040516200283e9190620040fd565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016200288d601b826200410b565b506200292b601b8054620028a19062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620028cf9062003c2c565b8015620029205780601f10620028f45761010080835404028352916020019162002920565b820191906000526020600020905b8154815290600101906020018083116200290257829003601f168201915b5050505050620031f6565b604080516020810190915260008152601b9062000cc490826200401a565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620029d79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201527f657333325d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162002a10919062003d9b565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f9981604051620023cc919062003de7565b6060600062002a797f6b65797776616c000000000000000000000000000000000000000000000000008762001e14565b9050606060008451111562002ab65785858560405160200162002a9f93929190620041ed565b604051602081830303815290604052905062002ab9565b50845b62002acd88838380519060200120620032f9565b98975050505050505050565b600062002ae96070601062003c16565b9190911b919050565b60008060008084865162002b07919062003c16565b9050601c81111562002b50576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c602482015260440162002520565b600585111562002b97576040517f7f2372c3000000000000000000000000000000000000000000000000000000008152600481018690526005602482015260440162002520565b60005b865181101562002c7d57600087828151811062002bbb5762002bbb62003ad3565b602002602001015190508060000362002c00576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111562002c3c576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030288838151811062002c605762002c6062003ad3565b6020026020010151901b8517945081806001019250505062002b9a565b50600862002c8e60026020620040e7565b62002c9a919062004228565b82901b92909217916008600162002cb460026020620040e7565b62002cc09190620040e7565b62002ccc919062004228565b8651901b9290921791600860018062002ce860026020620040e7565b62002cf49190620040e7565b62002d009190620040e7565b62002d0c919062004228565b9490941b91909117949350505050565b6000601c8251111562002d615781516040517f5318beb90000000000000000000000000000000000000000000000000000000081526004016200252091815260200190565b60008080805b855181101562002e4f57600062002dae87838151811062002d8c5762002d8c62003ad3565b602002602001015160c581111562002da85762002da862003cee565b620033f6565b90508060000362002dc55760019092019162002dfe565b821562002dfe576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811062002e225762002e2262003ad3565b602002602001015160c581111562002e3e5762002e3e62003cee565b901b94909417935060010162002d67565b50600581111562002e90576040517f5318beb90000000000000000000000000000000000000000000000000000000081526004810182905260240162002520565b8451819003600862002ea560026020620040e7565b62002eb1919062004228565b83901b93909317926008600162002ecb60026020620040e7565b62002ed79190620040e7565b62002ee3919062004228565b81901b9390931792600860018062002efe60026020620040e7565b62002f0a9190620040e7565b62002f169190620040e7565b62002f22919062004228565b9190911b92909217949350505050565b6060600062002f406200345e565b9050306001600160a01b0382160362002f695762002f608585856200349d565b91505062001d85565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779062002fb49088908890889060040162004274565b600060405180830381865afa15801562002fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002f6091908101906200431f565b509392505050565b600081831115801562003018575083518211155b62003057578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040162002520939291906200436d565b6020840162003067848262003c16565b90506000620030778585620040e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600062001d858360206000620034e6565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620031c85760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003163929160200162003c62565b60408051601f19818403018152908290526200317f9162003cac565b6000604051808303816000865af19150503d8060008114620031be576040519150601f19603f3d011682016040523d82523d6000602084013e620031c3565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b62001c467f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316636900a3ae601d846040516200323e919062003cac565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252620032889160040190815260200190565b600060405180830381865afa158015620032a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620032d091908101906200431f565b82604051602001620032e492919062004394565b60405160208183030381529060405262003567565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062003336576200333662003ad3565b60209081029190910101526040517f1e7889770000000000000000000000000000000000000000000000000000000081526000906001600160a01b03871690631e788977906200338f9088908690869060040162004274565b600060405180830381865afa158015620033ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620033d791908101906200431f565b9050620033ec62002223826000845162003004565b9695505050505050565b6000808260c58111156200340e576200340e62003cee565b60ff16905060618110156200342957601f1660010192915050565b60618360c581111562003440576200344062003cee565b036200344f5750601492915050565b50600092915050565b50919050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680620019cf573391505090565b5090565b6060620034de620034b0858585620035dc565b6000620034d885620034c389896200365e565b9060ff166028026038011c64ffffffffff1690565b62003674565b949350505050565b60606000620034f58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816200351e576200351e62004419565b04905060405193506020840160208202810160405281855260005b828110156200355b578451871c82529387019360209091019060010162003539565b50505050509392505050565b62001c46816040516024016200357e919062003f45565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905262003699565b60008383604051602001620035f39291906200442f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b600062001d85620036708484620036ba565b5490565b60405160208101601f19603f848401011660405282825262002ffc8585858462003712565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60008282604051602001620036d19291906200442f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215620037a5576020831062003741576020830484019350602083816200373d576200373d62004419565b0692505b8215620037a5576020839003600081841015620037685750600019600884021c1962003773565b50600019600882021c195b8554600886021b8119845116828216178452508184116200379657505062001599565b50600194909401939182900391015b5b60208210620037c95783548152600190930192601f1990910190602001620037a6565b811562001599576000600019600884021c198251865482169119161782525050505050565b61553a806200446083390190565b8280548282559060005260206000209081019282156200383a579160200282015b828111156200383a5782518255916020019190600101906200381d565b50620034999291506200388e565b611a79806200999a83390190565b6118cc806200b41383390190565b610b15806200ccdf83390190565b61567c806200d7f483390190565b614c6d8062012e7083390190565b5b808211156200349957600081556001016200388f565b6020808252825182820181905260009190848201906040850190845b81811015620038e85783516001600160a01b031683529284019291840191600101620038c1565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015620039d2578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620039bc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062003978565b50978a019795505050918701916001016200391c565b50919998505050505050505050565b600060208284031215620039f457600080fd5b5035919050565b60005b8381101562003a18578181015183820152602001620039fe565b50506000910152565b6000815180845262003a3b816020860160208601620039fb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101562003a9b57828403895262003a8884835162003a21565b9885019893509084019060010162003a6d565b5091979650505050505050565b60208152600062001d85602083018462003a4f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000815480845260208085019450836000528060002060005b8381101562003b205781548752958201956001918201910162003b02565b509495945050505050565b85815260a06020820152600062003b4660a083018762003ae9565b828103604084015262003b5a818762003a21565b9050846060840152828103608084015262002acd818562003a21565b828152604060208201526000620034de604083018462003ae9565b85815260a06020820152600062003bac60a083018762003ae9565b60ff86166040840152828103606084015262003bc9818662003a21565b9150508260808301529695505050505050565b6001600160a01b0383168152604060208201526000620034de604083018462003a21565b634e487b7160e01b600052601160045260246000fd5b8082018082111562001d035762001d0362003c00565b600181811c9082168062003c4157607f821691505b6020821081036200345857634e487b7160e01b600052602260045260246000fd5b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162003c9e816004850160208701620039fb565b919091016004019392505050565b6000825162003cc0818460208701620039fb565b9190910192915050565b60006020828403121562003cdd57600080fd5b8151801515811462001d8557600080fd5b634e487b7160e01b600052602160045260246000fd5b86815285602082015284604082015283606082015260c06080820152600062003d3160c083018562003a4f565b82810360a084015262003d45818562003a4f565b9998505050505050505050565b60408152600560408201527f4572726f72000000000000000000000000000000000000000000000000000000606082015260806020820152600062001d85608083018462003a21565b60408152600062003dd960408301600a81527f2020202020204c65667400000000000000000000000000000000000000000000602082015260400190565b905082602083015292915050565b60408152600062003dd960408301600a81527f2020202020526967687400000000000000000000000000000000000000000000602082015260400190565b6000815462003e348162003c2c565b6001828116801562003e4f576001811462003e835762003eb4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945062003eb4565b8560005260208060002060005b8581101562003eab5781548a82015290840190820162003e90565b50505082870194505b5050505092915050565b7f676173207265706f7274202200000000000000000000000000000000000000008152600062003ef2600c83018462003e25565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600062001d85602083018462003a21565b7f676173207265706f72742022000000000000000000000000000000000000000081526000825162003f9481600c850160208701620039fb565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b601f82111562000cc457600081815260208120601f850160051c8101602086101562003ff15750805b601f850160051c820191505b81811015620040125782815560010162003ffd565b505050505050565b815167ffffffffffffffff81111562004037576200403762003abd565b6200404f8162004048845462003c2c565b8462003fc8565b602080601f8311600181146200408757600084156200406e5750858301515b600019600386901b1c1916600185901b17855562004012565b600085815260208120601f198616915b82811015620040b85788860151825594840194600190910190840162004097565b5085821015620040d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111562001d035762001d0362003c00565b600062001d85828462003e25565b81810362004117575050565b62004123825462003c2c565b67ffffffffffffffff8111156200413e576200413e62003abd565b6200414f8162004048845462003c2c565b6000601f8211600181146200418657600083156200416d5750848201545b600019600385901b1c1916600184901b178455620026b2565b600085815260209020601f19841690600086815260209020845b83811015620041c25782860154825560019586019590910190602001620041a0565b5085831015620040d75793015460001960f8600387901b161c19169092555050600190811b01905550565b6000845162004201818460208901620039fb565b820184815283516200421b816020808501908801620039fb565b0160200195945050505050565b808202811582820484141762001d035762001d0362003c00565b600081518084526020808501945080840160005b8381101562003b205781518752958201959082019060010162004256565b8381526060602082015260006200428f606083018562004242565b905060ff83166040830152949350505050565b600067ffffffffffffffff80841115620042c057620042c062003abd565b604051601f8501601f19908116603f01168101908282118183101715620042eb57620042eb62003abd565b816040528093508581528686860111156200430557600080fd5b62004315866020830187620039fb565b5050509392505050565b6000602082840312156200433257600080fd5b815167ffffffffffffffff8111156200434a57600080fd5b8201601f810184136200435c57600080fd5b62001cff84825160208401620042a2565b60608152600062004382606083018662003a21565b60208301949094525060400152919050565b7f474153205245504f52543a200000000000000000000000000000000000000000815260008351620043ce81600c850160208801620039fb565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516200440d81600d840160208801620039fb565b01600d01949350505050565b634e487b7160e01b600052601260045260246000fd5b82815260006020808301845182860160005b8281101562003a9b578151845292840192908401906001016200444156fe60a060405234801561001057600080fd5b506100477f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580546001600160a01b03191630179055565b6040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2336080526040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907f7f8f36afe3fb61c459c1a54a60b8a477eab02cc58e49f547561a40906239cb8290600090a2608051615452620000e86000396000818161036f015261139601526154526000f3fe6080604052600436106101d15760003560e01c80638c364d59116100f7578063c4d66de811610095578063d9c03a0411610064578063d9c03a04146106d1578063dbbf0e21146105d1578063e228a4a3146106f1578063ef6ea8621461071157610266565b8063c4d66de814610651578063cc49db7e14610671578063d03edb8c14610691578063d4285dc2146106b157610266565b8063af068c9e116100d1578063af068c9e146105f1578063b047c1eb14610611578063c0a2895a14610631578063c11222291461054b57610266565b80638c364d59146105915780639f1fcf0a146105b1578063a53417ed146105d157610266565b8063390baae01161016f5780634dc77d971161013e5780634dc77d971461050b578063505a181d1461052b5780636951955d1461054b578063894ecc581461057e57610266565b8063390baae01461047b5780633a77c2c21461049b5780633ae7af08146104c9578063419b58fd146104dc57610266565b8063150f3262116101ab578063150f3262146103fb5780631e7889771461041b578063298314fb1461043b5780633708196e1461045b57610266565b806302d05d3f1461035d57806305242d2f146103ae578063114a7266146103db57610266565b366102665760408051616e7360f01b6020820152600060228201819052603082018190529161021891016040516020818303038152906040526102139061459d565b610731565b60408051616e7360f01b6020820152600060228201819052603082015291925061026491016040516020818303038152906040526102559061459d565b61025f34846145da565b61080f565b005b303303610299576040516327a1460b60e21b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6000806102b16000356001600160e01b031916610901565b91509150816000801b036102ff576040517ffdde54e20000000000000000000000000000000000000000000000000000000081526001600160e01b0319600035166004820152602401610290565b60006103436000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250869150610a119050565b9050600061035333858434610a44565b9050805160208201f35b34801561036957600080fd5b506103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103ce6103c936600461464a565b610a71565b6040516103a59190614700565b3480156103e757600080fd5b506102646103f6366004614755565b610ab4565b34801561040757600080fd5b50610264610416366004614755565b610b67565b34801561042757600080fd5b506103ce6104363660046147e2565b610c12565b34801561044757600080fd5b50610264610456366004614840565b610c5c565b34801561046757600080fd5b506102646104763660046148ed565b610d45565b34801561048757600080fd5b506102646104963660046148ed565b610dfb565b3480156104a757600080fd5b506104bb6104b6366004614983565b610ea8565b6040519081526020016103a5565b6103ce6104d7366004614a53565b610eb9565b3480156104e857600080fd5b506104fc6104f7366004614a9a565b610ef5565b6040516103a593929190614aed565b34801561051757600080fd5b506103ce610526366004614b8d565b610f4a565b34801561053757600080fd5b50610264610546366004614bf6565b610f59565b34801561055757600080fd5b507f312e302e302d756e6175646974656400000000000000000000000000000000006104bb565b6103ce61058c366004614c57565b610fce565b34801561059d57600080fd5b506104bb6105ac36600461464a565b61112a565b3480156105bd57600080fd5b506104bb6105cc366004614cb0565b61116d565b3480156105dd57600080fd5b506104bb6105ec366004614d0f565b61117b565b3480156105fd57600080fd5b5061026461060c366004614d66565b611188565b34801561061d57600080fd5b5061026461062c366004614da0565b611204565b34801561063d57600080fd5b5061026461064c366004614e2f565b6112af565b34801561065d57600080fd5b5061026461066c366004614ebc565b61135d565b34801561067d57600080fd5b506104fc61068c366004614bf6565b6114d8565b34801561069d57600080fd5b506103ce6106ac3660046147e2565b61152a565b3480156106bd57600080fd5b506104bb6106cc366004614983565b61156b565b3480156106dd57600080fd5b506102646106ec36600461464a565b611576565b3480156106fd57600080fd5b506104bb61070c366004614983565b6115f6565b34801561071d57600080fd5b5061026461072c366004614755565b611601565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061076a5761076a614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e636573000000000000000000000000000000000000000000000000603083015260009161080791015b6040516020818303038152906040526107df9061459d565b8360007e200100200000000000000000000000000000000000000000000000000000006116ac565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061084557610845614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526108fc906108b19061459d565b826000856040516020016108c791815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006116d9565b505050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061095a5761095a614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f720000000000000000000000000000000060308201528151808203909301835281019052600090819081906109f3906109cd9061459d565b857e240200200400000000000000000000000000000000000000000000000000006116ee565b925092509250610a048383836117f6565b9550955050505050915091565b82820160200180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052825b9392505050565b6060600080610a558787878761180e565b9150915081610a6757610a67816119f2565b9695505050505050565b6060610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506119fa9050565b303303610ae2576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610aec8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611a8b92505050565b505050505050565b303303610b95576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610b9f8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611aa692505050565b6060610c5385858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611ae1915050565b95945050505050565b303303610c8a576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610c948833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b1b92505050565b5050505050505050565b303303610d73576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610d7d8733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611b31915050565b50505050505050565b303303610e29576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610e338733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506116d9915050565b6000610eb382611b74565b92915050565b6060303303610ee9576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610a3d33848434610a44565b606060006060610f3a878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506116ee915050565b9250925092509450945094915050565b6060610a678686868686611c44565b303303610f87576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610f918333611a3f565b6108fc83838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d0592505050565b6060303303610ffe576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b038516036110215761101a33848434610a44565b9050610a3d565b600061102d8533611d18565b905061103c8186338787611dea565b156110555761104d85858534610a44565b915050610a3d565b6000611062866000611d18565b90506110718187338888611dea565b1561108b5761108286868634610a44565b92505050610a3d565b60006110bd616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000881617611ebf565b90506110cc8188338989611dea565b156110e7576110dd87878734610a44565b9350505050610a3d565b6040517fc86745f90000000000000000000000000000000000000000000000000000000081526001600160a01b0388166004820152336024820152604401610290565b6000610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116ac9050565b6000610c5385858585611f59565b6000610807848484611fa1565b3033036111b6576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b60408051616e7360f01b602082015260006022820181905260308201526111f691016040516020818303038152906040526111f09061459d565b33611fb7565b6112008282612008565b5050565b303303611232576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b61123c8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061211a92505050565b3033036112dd576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6112e78833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506123c992505050565b30330361138b576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461142f5760408051616e7360f01b602082015260006022820181905260308201526113fa91016040516020818303038152906040526113f59061459d565b6123e1565b336040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b600061147b7f636f7265000000000000000000000000000000000000000000000000000000007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47061250f565b6001600160a01b0316146114bb576040517f15e34a4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008152602081019091526114d5908290612008565b50565b60606000606061151b8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061262492505050565b92509250925093509350939050565b6060610c538585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525087925061264a915050565b6000610eb382612660565b3033036115a4576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6115ae8533611a3f565b6115ef858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792508691506126d49050565b5050505050565b6000610eb38261272d565b30330361162f576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6116398633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061275392505050565b6000610c536116bb868661278e565b60ff858116601b0360080285901c166116d485876127e4565b612827565b6115ef85856116e884876127e4565b8561211a565b60606000606060006116ff85612878565b905061170c87878361289b565b93506000611719866128d4565b905080156117eb5761172b8888612911565b935066ffffffffffffff841667ffffffffffffffff81111561174f5761174f61499c565b6040519080825280601f01601f191660200182016040528015611779576020820181803683370190505b5092506020830160005b828160ff1610156117e857600061179b8b8b84612924565b905060006117b8888460ff166028026038011c64ffffffffff1690565b90506117c782600083876129a4565b6117d181856145da565b9350505080806117e090614f1a565b915050611783565b50505b505093509350939050565b60008061180285612a73565b90969095509350505050565b60006060600061181d86612a88565b905060005b81518110156118fa57600082828151811061183f5761183f614ed9565b6020026020010151905061186b6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156118e7576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c3323031906118b4908c908c908c90600401614f39565b600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b505050505b50806118f281614f61565b915050611822565b5061190787858888612b74565b909350915060005b81518110156119e757600082828151811061192c5761192c614ed9565b602002602001015190506119586002826affffffffffffffffffffff1916612b5690919063ffffffff16565b156119d4576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f99906119a1908c908c908c90600401614f39565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b50806119df81614f61565b91505061190f565b505094509492505050565b805160208201fd5b6060611a0582612c8f565b8360ff161015611a2257611a1b85858585612ca1565b9050610807565b611a1b8585611a3085612c8f565b611a3a9087614f7b565b611ae1565b611a498282612cce565b61120057611a56826123e1565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b611aa084848484611a9b89611b74565b611b31565b50505050565b6000611ab28585612911565b90506000611acf828560ff166028026038011c64ffffffffff1690565b9050610b5f8686868460008888612d11565b6060610807611af1858585612924565b6000611b1685611b018989612911565b9060ff166028026038011c64ffffffffff1690565b613127565b6115ef8585858585611b2c8b611b74565b61314a565b611b3a81612c8f565b8360ff161015611b5657611b5185858585856116d9565b6115ef565b6115ef8585611b6484612c8f565b611b6e9087614f7b565b85612753565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b603082015260009101604051602081830303815290604052611bbc9061459d565b8203611be857507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b6030820152610eb391611c3b9101604051602081830303815290604052611c359061459d565b846134a3565b60206000612827565b60606000611c528787612911565b90506000611c6f828760ff166028026038011c64ffffffffff1690565b90508085101580611c7f57508084115b15611cda578081861015611c9d57611c98600186614f94565b611c9f565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610290565b6000611ce7898989612924565b9050611cf88187611b168189614f94565b9998505050505050505050565b6112008282611d1385611b74565b6134bf565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611d5d57611d5d614ed9565b602002602001018181525050826001600160a01b031660001b81600181518110611d8957611d89614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152600091610c5391016107c7565b6000611df5866137d2565b15611e0257506001610c53565b85611e0f57506000610c53565b600080611e8b8660008a8a8989604051602401611e2e93929190614f39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1a86b55000000000000000000000000000000000000000000000000000000000179052612b74565b9150915081611e9f57600092505050610c53565b80806020019051810190611eb39190614fa7565b98975050505050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611ef857611ef8614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c6567617400000000000000000000000000000000603083015260009161080791016107c7565b600080611f6583612c8f565b90508060ff168460ff161015611f8d5760ff848116601b0360080284901c165b915050610807565b611f858686611f9c8488614f7b565b61384d565b6000610807848484611fb288611b74565b611f59565b6001600160a01b038116611ff1616e7360f01b7dffffffffffffffffffffffffffff0000000000000000000000000000000085161761385d565b6001600160a01b03161461120057611a56826123e1565b612032827f780ac2fc00000000000000000000000000000000000000000000000000000000613902565b6120a7336000848460405160240161204a9190614700565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c5b03350000000000000000000000000000000000000000000000000000000017905261395d565b50611200826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210d9190614fc9565b825160208401208461396e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036121a457837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161219793929190615037565b60405180910390a2611aa0565b60006121b0858561278e565b905060006121bd86613aae565b905060005b815181101561229c5760008282815181106121df576121df614ed9565b6020026020010151905061220b6004826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612289576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612256908b908b908b908b9060040161506a565b600060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050505b508061229481614f61565b9150506121c2565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516122d193929190615037565b60405180910390a26122ec828565ffffffffffff1685613b49565b60005b8151811015610df257600082828151811061230c5761230c614ed9565b602002602001015190506123386008826affffffffffffffffffffff1916612b5690919063ffffffff16565b156123b6576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612383908b908b908b908b9060040161506a565b600060405180830381600087803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b505050505b50806123c181614f61565b9150506122ef565b610b5f8686868686866123dc8d8d612911565b612d11565b606081601081901b60006123f483613b5f565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561244f5761244a7fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613b76565b612486565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff198316156124ad576124a883613b76565b6124e4565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016124f6939291906150a3565b6040516020818303038152906040529350505050919050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061255b5761255b614ed9565b602002602001018181525050828160018151811061257b5761257b614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603083015260009161261891015b6040516020818303038152906040526125f09061459d565b8360007e140100140000000000000000000000000000000000000000000000000000006116ac565b60601c95945050505050565b60606000606061263d858561263888611b74565b6116ee565b9250925092509250925092565b606061080784848461265b88611b74565b6119fa565b600061266b82613c06565b905061267682613cbf565b6126cf57818260405160200161268e91815260200190565b60408051601f19818403018152908290527f41e713ad0000000000000000000000000000000000000000000000000000000082526102909291600401615131565b919050565b60006126e08585612911565b905060006126fd828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866127168764ffffffffff8716614f94565b604080516000815260208101909152889088612d11565b600061273882613da1565b9050806126cf57818260405160200161268e91815260200190565b600061275f8585612911565b9050600061277c828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866000858888612d11565b600082826040516020016127a392919061514a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561281f5761280b60ff601b83900360080287901c16836145da565b91508061281781614f61565b9150506127e9565b509392505050565b60006020821061284d5760208204840193506020828161284957612849615185565b0691505b508254600882021b60208290038084111561281f576001850154600882021c82179150509392505050565b6000600861288860026020614f94565b612892919061519b565b9190911c919050565b6060816000036128ba5750604080516020810190915260008152610a3d565b60006128c6858561278e565b9050610c5381600085613127565b600060086001806128e760026020614f94565b6128f19190614f94565b6128fb9190614f94565b612905919061519b565b8260ff911c1692915050565b6000610a3d6129208484613e5a565b5490565b6000838360405160200161293992919061514a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215612a2d57602083106129ce576020830484019350602083816129ca576129ca615185565b0692505b8215612a2d5760208390036000818410156129f25750600019600884021c196129fd565b50600019600882021c195b8554600886021b811984511682821617845250818411612a1e575050611aa0565b50600194909401939182900391015b5b60208210612a4f5783548152600190930192601f1990910190602001612a2e565b8115611aa0576000600019600884021c198251865482169119161782525050505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612ac257612ac2614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091612b3f91015b604051602081830303815290604052612b379061459d565b836000611ae1565b9050610807612b518260008451613eb0565b613f40565b60008160ff1682612b678560581c90565b1660ff1614905092915050565b60006060600080612b8486613f51565b90925090506001600160a01b038216612bd55785612ba1876123e1565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610290929190615131565b80612be457612be48689611a3f565b8615612c30577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000612c1d82610731565b9050612c2d8261025f8b846145da565b50505b6000612c3c8760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c7457612c6f88888488614035565b612c80565b612c80888884886140ad565b90999098509650505050505050565b6000600860016128f160026020614f94565b6060610c53612cb0868661278e565b612cba84866127e4565b60ff868116601b0360080286901c16613127565b6000612d01616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516178361410e565b80610a3d5750610a3d838361410e565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614612d9b57613a3160f11b8788604051602001612d5991815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102909392916004016151b2565b6000612db6828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612dcf9190614f94565b612dd991906145da565b9050808214158015612dfb575081612df186886151f3565b64ffffffffff1614155b15612e4b576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610290565b818664ffffffffff161115612e9c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610290565b6000612ea98489846141e0565b90506000612eb68b613aae565b905060005b8151811015612f8b576000828281518110612ed857612ed8614ed9565b60200260200101519050612f046010826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612f7857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401612f459796959493929190615218565b600060405180830381600087803b158015612f5f57600080fd5b505af1158015612f73573d6000803e3d6000fd5b505050505b5080612f8381614f61565b915050612ebb565b5064ffffffffff881660005b8a60ff168160ff161015612fca57612fbe878260ff166028026038011c64ffffffffff1690565b90910190600101612f97565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c604051613003959493929190615276565b60405180910390a25082841461302457600061301f8c8c613e5a565b839055505b60006130318c8c8c612924565b9050613045818a64ffffffffff1689613b49565b5060005b815181101561311957600082828151811061306657613066614ed9565b602002602001015190506130926020826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561310657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016130d39796959493929190615218565b600060405180830381600087803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b505050505b508061311181614f61565b915050613049565b505050505050505050505050565b60405160208101601f19603f848401011660405282825261281f858585846129a4565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036131d657857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516131c994939291906152bc565b60405180910390a2610b5f565b60006131e187613aae565b905060005b81518110156132c457600082828151811061320357613203614ed9565b6020026020010151905061322f6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156132b1576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061327e908c908c908c908c908c908c906004016152fb565b600060405180830381600087803b15801561329857600080fd5b505af11580156132ac573d6000803e3d6000fd5b505050505b50806132bc81614f61565b9150506131e6565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516132fb94939291906152bc565b60405180910390a2600061330f888861278e565b905060006020870190506133278260008951846142ae565b6000613332856128d4565b11156133b65760006133448a8a613e5a565b878155905060208601915060008060005b61335e886128d4565b8160ff1610156133b1576133738d8d83612924565b925061338e8a8260ff166028026038011c64ffffffffff1690565b915061339d83600084886142ae565b6133a782866145da565b9450600101613355565b505050505b60005b83518110156134975760008482815181106133d6576133d6614ed9565b602002602001015190506134026002826affffffffffffffffffffff1916612b5690919063ffffffff16565b15613484576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613451908e908e908e908e908e908e906004016152fb565b600060405180830381600087803b15801561346b57600080fd5b505af115801561347f573d6000803e3d6000fd5b505050505b508061348f81614f61565b9150506133b9565b50505050505050505050565b60408051602081018490529081018290526000906060016127a3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361354557827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516135389190615354565b60405180910390a2505050565b600061355084613aae565b905060005b815181101561362d57600082828151811061357257613572614ed9565b6020026020010151905061359e6040826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561361a576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906135e790899089908990600401615367565b600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b505050505b508061362581614f61565b915050613555565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078460405161365e9190615354565b60405180910390a26000613672858561278e565b90506136cb81600061368386612878565b67ffffffffffffffff81111561369b5761369b61499c565b6040519080825280601f01601f1916602001820160405280156136c5576020820181803683370190505b50613b49565b60006136d6846128d4565b11156136f75760006136e88686613e5a565b90506136f581602061436e565b505b60005b8251811015610b5f57600083828151811061371757613717614ed9565b602002602001015190506137436080826affffffffffffffffffffff1916612b5690919063ffffffff16565b156137bf576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b9061378c908a908a908a90600401615367565b600060405180830381600087803b1580156137a657600080fd5b505af11580156137ba573d6000803e3d6000fd5b505050505b50806137ca81614f61565b9150506136fa565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d697465640000000000000000000000000000000000000000000000603083015291016040516020818303038152906040526138459061459d565b909114919050565b600061080782611b018686612911565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061389657613896614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526000916138f791016125d8565b60601c949350505050565b61390c82826143ab565b611200576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610290565b6060600080610a55878787876140ad565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff1916816000815181106139b6576139b6614ed9565b60200260200101818152505082816001815181106139d6576139d6614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052611aa090613a429061459d565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006116d9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ae857613ae8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091612b3f9101612b1f565b6108fc83838351613b5a8560200190565b6142ae565b6000613b6d607060106145da565b9190911b919050565b606060005b6010811015613bd6576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613bd65780613bce81614f61565b915050613b7b565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610807565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613c3f57613c3f614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613c979061459d565b8360017e600302202020000000000000000000000000000000000000000000000000006116ac565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613cf857613cf8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091613d9591015b604051602081830303815290604052613d6d9061459d565b8360007e010100010000000000000000000000000000000000000000000000000000006116ac565b90506108078160f81c90565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613dda57613dda614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613e329061459d565b8360027e600302202020000000000000000000000000000000000000000000000000006116ac565b60008282604051602001613e6f92919061514a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000818311158015613ec3575083518211155b613eff578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161029093929190615390565b60208401613f0d84826145da565b90506000613f1b8585614f94565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610a3d83601560006143c7565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f8b57613f8b614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061402490613ffe9061459d565b857e150200140100000000000000000000000000000000000000000000000000006116ee565b925092509250610a04838383614442565b60006060836001600160a01b0316600061405085898961444e565b60405161405d91906153b5565b60006040518083038185875af1925050503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b606091505b509097909650945050505050565b60006060836001600160a01b03166140c684888861444e565b6040516140d391906153b5565b600060405180830381855af49150503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061414757614147614ed9565b602002602001018181525050826001600160a01b031660001b8160018151811061417357614173614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f7572636541636365737300000000000000000000000000000000000060308301526000916141d49101613d55565b9050610c538160f81c90565b600064ffffffffff821115614224576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610290565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510614256578085038201915061425e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561432857602083106142d8576020830484019350602083816142d4576142d4615185565b0692505b82156143285760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411614319575050611aa0565b50600194909401939182900391015b5b6020821061434a5780518455600190930192601f1990910190602001614329565b8115611aa0576000600019600884021c198554835182169119161785555050505050565b6000602061437d83601f6145da565b61438791906153d1565b61439190846145da565b90505b808310156108fc5760008355600183019250614394565b60006143b68361447d565b8015610a3d5750610a3d83836144c9565b606060006143d58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816143fb576143fb615185565b04905060405193506020840160208202810160405281855260005b82811015614436578451871c825293870193602090910190600101614416565b50505050509392505050565b60008061180285614581565b6060838383604051602001614465939291906153f3565b60405160208183030381529060405290509392505050565b60006144a9827f01ffc9a7000000000000000000000000000000000000000000000000000000006144c9565b8015610eb357506144c2826001600160e01b03196144c9565b1592915050565b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561456a575060208210155b80156145765750600081115b979650505050505050565b6020810151603482015160609190911c9060009060f81c612a81565b805160208083015191908110156145be576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eb357610eb36145c4565b60008083601f8401126145ff57600080fd5b50813567ffffffffffffffff81111561461757600080fd5b6020830191508360208260051b850101111561463257600080fd5b9250929050565b803560ff811681146126cf57600080fd5b60008060008060006080868803121561466257600080fd5b85359450602086013567ffffffffffffffff81111561468057600080fd5b61468c888289016145ed565b909550935061469f905060408701614639565b949793965091946060013592915050565b60005b838110156146cb5781810151838201526020016146b3565b50506000910152565b600081518084526146ec8160208601602086016146b0565b601f01601f19169290920160200192915050565b602081526000610a3d60208301846146d4565b60008083601f84011261472557600080fd5b50813567ffffffffffffffff81111561473d57600080fd5b60208301915083602082850101111561463257600080fd5b6000806000806000806080878903121561476e57600080fd5b86359550602087013567ffffffffffffffff8082111561478d57600080fd5b6147998a838b016145ed565b90975095508591506147ad60408a01614639565b945060608901359150808211156147c357600080fd5b506147d089828a01614713565b979a9699509497509295939492505050565b600080600080606085870312156147f857600080fd5b84359350602085013567ffffffffffffffff81111561481657600080fd5b614822878288016145ed565b9094509250614835905060408601614639565b905092959194509250565b60008060008060008060008060a0898b03121561485c57600080fd5b88359750602089013567ffffffffffffffff8082111561487b57600080fd5b6148878c838d016145ed565b909950975060408b01359150808211156148a057600080fd5b6148ac8c838d01614713565b909750955060608b0135945060808b01359150808211156148cc57600080fd5b506148d98b828c01614713565b999c989b5096995094979396929594505050565b600080600080600080600060a0888a03121561490857600080fd5b87359650602088013567ffffffffffffffff8082111561492757600080fd5b6149338b838c016145ed565b909850965086915061494760408b01614639565b955060608a013591508082111561495d57600080fd5b5061496a8a828b01614713565b989b979a50959894979596608090950135949350505050565b60006020828403121561499557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156149db576149db61499c565b604052919050565b600082601f8301126149f457600080fd5b813567ffffffffffffffff811115614a0e57614a0e61499c565b614a216020601f19601f840116016149b2565b818152846020838601011115614a3657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614a6657600080fd5b82359150602083013567ffffffffffffffff811115614a8457600080fd5b614a90858286016149e3565b9150509250929050565b60008060008060608587031215614ab057600080fd5b84359350602085013567ffffffffffffffff811115614ace57600080fd5b614ada878288016145ed565b9598909750949560400135949350505050565b606081526000614b0060608301866146d4565b8460208401528281036040840152610a6781856146d4565b600082601f830112614b2957600080fd5b8135602067ffffffffffffffff821115614b4557614b4561499c565b8160051b614b548282016149b2565b9283528481018201928281019087851115614b6e57600080fd5b83870192505b8483101561457657823582529183019190830190614b74565b600080600080600060a08688031215614ba557600080fd5b85359450602086013567ffffffffffffffff811115614bc357600080fd5b614bcf88828901614b18565b945050614bde60408701614639565b94979396509394606081013594506080013592915050565b600080600060408486031215614c0b57600080fd5b83359250602084013567ffffffffffffffff811115614c2957600080fd5b614c35868287016145ed565b9497909650939450505050565b6001600160a01b03811681146114d557600080fd5b600080600060608486031215614c6c57600080fd5b8335614c7781614c42565b925060208401359150604084013567ffffffffffffffff811115614c9a57600080fd5b614ca6868287016149e3565b9150509250925092565b60008060008060808587031215614cc657600080fd5b84359350602085013567ffffffffffffffff811115614ce457600080fd5b614cf087828801614b18565b935050614cff60408601614639565b9396929550929360600135925050565b600080600060608486031215614d2457600080fd5b83359250602084013567ffffffffffffffff811115614d4257600080fd5b614d4e86828701614b18565b925050614d5d60408501614639565b90509250925092565b60008060408385031215614d7957600080fd5b8235614d8481614c42565b9150602083013567ffffffffffffffff811115614a8457600080fd5b60008060008060008060808789031215614db957600080fd5b86359550602087013567ffffffffffffffff80821115614dd857600080fd5b614de48a838b016145ed565b90975095506040890135915065ffffffffffff82168214614e0457600080fd5b909350606088013590808211156147c357600080fd5b803564ffffffffff811681146126cf57600080fd5b60008060008060008060008060c0898b031215614e4b57600080fd5b88359750602089013567ffffffffffffffff80821115614e6a57600080fd5b614e768c838d016145ed565b9099509750879150614e8a60408c01614639565b9650614e9860608c01614e1a565b9550614ea660808c01614e1a565b945060a08b01359150808211156148cc57600080fd5b600060208284031215614ece57600080fd5b8135610a3d81614c42565b634e487b7160e01b600052603260045260246000fd5b604081526000614f0260408301856146d4565b90506001600160a01b03831660208301529392505050565b600060ff821660ff8103614f3057614f306145c4565b60010192915050565b6001600160a01b0384168152826020820152606060408201526000610c5360608301846146d4565b60006000198203614f7457614f746145c4565b5060010190565b60ff8281168282160390811115610eb357610eb36145c4565b81810381811115610eb357610eb36145c4565b600060208284031215614fb957600080fd5b81518015158114610a3d57600080fd5b600060208284031215614fdb57600080fd5b81516fffffffffffffffffffffffffffffffff1981168114610a3d57600080fd5b600081518084526020808501945080840160005b8381101561502c57815187529582019590820190600101615010565b509495945050505050565b60608152600061504a6060830186614ffc565b65ffffffffffff851660208401528281036040840152610a6781856146d4565b8481526080602082015260006150836080830186614ffc565b65ffffffffffff85166040840152828103606084015261457681856146d4565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516151048160038601602089016146b0565b8084019050816003820152845191506151248260048301602088016146b0565b0160040195945050505050565b82815260406020820152600061080760408301846146d4565b82815260006020808301845182860160005b828110156151785781518452928401929084019060010161515c565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b8082028115828204841417610eb357610eb36145c4565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000610c5360608301846146d4565b64ffffffffff818116838216019080821115615211576152116145c4565b5092915050565b87815260e06020820152600061523160e0830189614ffc565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261526881856146d4565b9a9950505050505050505050565b60a08152600061528960a0830188614ffc565b65ffffffffffff8716602084015264ffffffffff861660408401528460608401528281036080840152611eb381856146d4565b6080815260006152cf6080830187614ffc565b82810360208401526152e181876146d4565b9050846040840152828103606084015261457681856146d4565b86815260c06020820152600061531460c0830188614ffc565b828103604084015261532681886146d4565b9050856060840152828103608084015261534081866146d4565b9150508260a0830152979650505050505050565b602081526000610a3d6020830184614ffc565b8381526060602082015260006153806060830185614ffc565b9050826040830152949350505050565b6060815260006153a360608301866146d4565b60208301949094525060400152919050565b600082516153c78184602087016146b0565b9190910192915050565b6000826153ee57634e487b7160e01b600052601260045260246000fd5b500490565b600084516154058184602089016146b0565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea164736f6c6343000815000a608060405234801561001057600080fd5b50611a59806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806345ec93541161005b57806345ec9354146100ec5780638d53b208146100ff578063e1af802c14610112578063ef5d6bbb1461011a57600080fd5b806301ffc9a714610082578063119df25f146100aa57806340554c3a146100d7575b600080fd5b61009561009036600461165b565b61012d565b60405190151581526020015b60405180910390f35b6100b26101c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461169d565b6101d5565b005b604051601f1936013581526020016100a1565b6100ea61010d36600461169d565b6101f6565b6100b261020c565b6100ea61012836600461169d565b610216565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101c057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d061023d565b905090565b6101e6826101e16101c6565b61026f565b6101f282826001610333565b5050565b610202826101e16101c6565b6101f28282610463565b60006101d0610568565b610222826101e16101c6565b61022c82826105b4565b6101e6826102386101c6565b610463565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061026c5750335b90565b73ffffffffffffffffffffffffffffffffffffffff81166102d17f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008516176106c2565b73ffffffffffffffffffffffffffffffffffffffff16146101f2576102f58261079d565b816040517fd787b73700000000000000000000000000000000000000000000000000000000815260040161032a929190611736565b60405180910390fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061036857610368611784565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106103a1576103a1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261045d9061040d9061179a565b8260008560405160200161042891151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006108da565b50505050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061049857610498611784565b6020026020010181815250508173ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106104d1576104d1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526105639061053d9061179a565b827e010100010000000000000000000000000000000000000000000000000000006108f6565b505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806105af573391505090565b919050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105ea576105ea611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201528151808203909301835281019052610563906106569061179a565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006108da565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106106fb576106fb611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906107929061076a9061179a565b8360007e14010014000000000000000000000000000000000000000000000000000000610c11565b60601c949350505050565b606081601081901b60006107b083610c47565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561080b576108067fffffffffffffffffffffffffffff0000000000000000000000000000000000008416610c5e565b610842565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156108785761087383610c5e565b6108af565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016108c1939291906117c1565b6040516020818303038152906040529350505050919050565b6108ef85856108e98487610d10565b85610d53565b5050505050565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361097c57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161096f919061188a565b60405180910390a2505050565b60006109878461100b565b905060005b8151811015610a645760008282815181106109a9576109a9611784565b602002602001015190506109d56040826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610a51576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590610a1e9089908990899060040161189d565b600060405180830381600087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050505b5080610a5c816118dc565b91505061098c565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051610a95919061188a565b60405180910390a26000610aa98585611109565b9050610b02816000610aba8661115f565b67ffffffffffffffff811115610ad257610ad261176e565b6040519080825280601f01601f191660200182016040528015610afc576020820181803683370190505b50611182565b6000610b0d84611198565b1115610b2e576000610b1f86866111d5565b9050610b2c81602061122b565b505b60005b8251811015610c09576000838281518110610b4e57610b4e611784565b60200260200101519050610b7a6080826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610bf6576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90610bc3908a908a908a9060040161189d565b600060405180830381600087803b158015610bdd57600080fd5b505af1158015610bf1573d6000803e3d6000fd5b505050505b5080610c01816118dc565b915050610b31565b505050505050565b6000610c3e610c208686611109565b60ff858116601b0360080285901c16610c398587610d10565b611268565b95945050505050565b6000610c55607060106118f6565b9190911b919050565b606060005b6010811015610ccd577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615610ccd5780610cc5816118dc565b915050610c63565b604080517fffffffffffffffffffffffffffffffff000000000000000000000000000000008516602082015281516030909101909152818152805b949350505050565b600080805b8360ff16811015610d4b57610d3760ff601b83900360080287901c16836118f6565b915080610d43816118dc565b915050610d15565b509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610ddd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610dd093929190611909565b60405180910390a261045d565b6000610de98585611109565b90506000610df68661100b565b905060005b8151811015610ed5576000828281518110610e1857610e18611784565b60200260200101519050610e446004826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610ec2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610e8f908b908b908b908b90600401611946565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050505b5080610ecd816118dc565b915050610dfb565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610f0a93929190611909565b60405180910390a2610f25828565ffffffffffff1685611182565b60005b8151811015611002576000828281518110610f4557610f45611784565b60200260200101519050610f716008826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610fef576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610fbc908b908b908b908b90600401611946565b600060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050505b5080610ffa816118dc565b915050610f28565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061104557611045611784565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110d4906110cc9061179a565b8360006112b9565b9050610d086110e682600084516112f3565b611383565b60008160ff16826110fc8560581c90565b1660ff1614905092915050565b6000828260405160200161111e92919061198a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000600861116f600260206119c5565b61117991906119d8565b9190911c919050565b610563838383516111938560200190565b61139b565b600060086001806111ab600260206119c5565b6111b591906119c5565b6111bf91906119c5565b6111c991906119d8565b8260ff911c1692915050565b600082826040516020016111ea92919061198a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000602061123a83601f6118f6565b6112449190611a05565b61124e90846118f6565b90505b808310156105635760008355600183019250611251565b60006020821061128e5760208204840193506020828161128a5761128a6119ef565b0691505b508254600882021b602082900380841115610d4b576001850154600882021c82179150509392505050565b6060610d086112c985858561145b565b60006112ee856112d989896114db565b9060ff166028026038011c64ffffffffff1690565b6114ee565b6000818311158015611306575083518211155b611342578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161032a93929190611a27565b6020840161135084826118f6565b9050600061135e85856119c5565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006113948360156000611511565b9392505050565b821561141557602083106113c5576020830484019350602083816113c1576113c16119ef565b0692505b82156114155760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161140657505061045d565b50600194909401939182900391015b5b602082106114375780518455600190930192601f1990910190602001611416565b811561045d576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161147092919061198a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006113946114ea84846111d5565b5490565b60405160208101601f19603f8484010116604052828252610d4b8585858461158c565b6060600061151f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611545576115456119ef565b04905060405193506020840160208202810160405281855260005b82811015611580578451871c825293870193602090910190600101611560565b50505050509392505050565b821561161557602083106115b6576020830484019350602083816115b2576115b26119ef565b0692505b82156116155760208390036000818410156115da5750600019600884021c196115e5565b50600019600882021c195b8554600886021b81198451168282161784525081841161160657505061045d565b50600194909401939182900391015b5b602082106116375783548152600190930192601f1990910190602001611616565b811561045d576000600019600884021c198251865482169119161782525050505050565b60006020828403121561166d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461139457600080fd5b600080604083850312156116b057600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff811681146116db57600080fd5b809150509250929050565b60005b838110156117015781810151838201526020016116e9565b50506000910152565b600081518084526117228160208601602086016116e6565b601f01601f19169290920160200192915050565b604081526000611749604083018561170a565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156117bb576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516118228160038601602089016116e6565b8084019050816003820152845191506118428260048301602088016116e6565b0160040195945050505050565b600081518084526020808501945080840160005b8381101561187f57815187529582019590820190600101611863565b509495945050505050565b602081526000611394602083018461184f565b8381526060602082015260006118b6606083018561184f565b9050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600060001982036118ef576118ef6118c6565b5060010190565b808201808211156101c0576101c06118c6565b60608152600061191c606083018661184f565b65ffffffffffff85166020840152828103604084015261193c818561170a565b9695505050505050565b84815260806020820152600061195f608083018661184f565b65ffffffffffff85166040840152828103606084015261197f818561170a565b979650505050505050565b82815260006020808301845182860160005b828110156119b85781518452928401929084019060010161199c565b5091979650505050505050565b818103818111156101c0576101c06118c6565b80820281158282048414176101c0576101c06118c6565b634e487b7160e01b600052601260045260246000fd5b600082611a2257634e487b7160e01b600052601260045260246000fd5b500490565b606081526000611a3a606083018661170a565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b506118ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806345ec93541161005057806345ec9354146100e1578063c9c85a60146100f4578063e1af802c1461010757600080fd5b806301ffc9a714610077578063119df25f1461009f57806345afd199146100cc575b600080fd5b61008a610085366004611460565b61010f565b60405190151581526020015b60405180910390f35b6100a76101a8565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b6100df6100da3660046114a2565b6101b7565b005b604051601f193601358152602001610096565b6100df6101023660046114f3565b6102ac565b6100a76103e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101b26103f1565b905090565b6101c8836101c36101a8565b610423565b60006101d384610473565b90508082111561021e576040517f0e0e2d4d00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6102318461022c848461154e565b610563565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102a4576102a48161066d565b505050505050565b7f6e73000000000000000000000000000000000000000000000000000000000000827fffff0000000000000000000000000000000000000000000000000000000000001614610355577f6e730000000000000000000000000000000000000000000000000000000000008261032084610675565b6040517f5c30fb6f000000000000000000000000000000000000000000000000000000008152600401610215939291906115b1565b61035e826107b2565b61036a836101c36101a8565b600061037584610473565b9050808211156103bb576040517f0e0e2d4d0000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610215565b6103c98461022c848461154e565b6103e183836103d786610473565b61022c91906115f2565b50505050565b60006101b2610800565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806104205750335b90565b61042d828261084c565b61046f5761043a82610675565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610215929190611605565b5050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104ac576104ac61163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e6365730000000000000000000000000000000000000000000000006030820152815180820390930183528101905260009061055b906105339061166c565b8360007e200100200000000000000000000000000000000000000000000000000000006108b1565b949350505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105995761059961163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526106689061061d9061166c565b8260008560405160200161063391815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006108e7565b505050565b805160208201fd5b606081601081901b600061068883610903565b9050827fffffffffffffffffffffffffffff0000000000000000000000000000000000008316156106e3576106de7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661091a565b61071a565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156107505761074b8361091a565b610787565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b60405160200161079993929190611693565b6040516020818303038152906040529350505050919050565b6107bb816109c8565b6107fd57806107c982610675565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610215929190611721565b50565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610847573391505090565b919050565b600061089a7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783610ac2565b806108aa57506108aa8383610ac2565b9392505050565b60006108de6108c08686610bb9565b60ff858116601b0360080285901c166108d98587610c0f565b610c52565b95945050505050565b6108fc85856108f68487610c0f565b85610ca3565b5050505050565b6000610911607060106115f2565b9190911b919050565b606060005b6010811015610989577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561098957806109818161173a565b91505061091f565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061055b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610a0157610a0161163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f73746f726500000000000000000000000000000000000000000000000000000060228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091610ab691015b604051602081830303815290604052610a8e9061166c565b8360007e010100010000000000000000000000000000000000000000000000000000006108b1565b905061055b8160f81c90565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610afb57610afb61163d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b81600181518110610b3457610b3461163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f776f726c6400000000000000000000000000000000000000000000000000000060228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091610bad9101610a76565b90506108de8160f81c90565b60008282604051602001610bce929190611754565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4a57610c3660ff601b83900360080287901c16836115f2565b915080610c428161173a565b915050610c14565b509392505050565b600060208210610c7857602082048401935060208281610c7457610c7461178f565b0691505b508254600882021b602082900380841115610c4a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610d2d57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610d20939291906117f9565b60405180910390a26103e1565b6000610d398585610bb9565b90506000610d4686610f5b565b905060005b8151811015610e25576000828281518110610d6857610d6861163d565b60200260200101519050610d946004826affffffffffffffffffffff191661103b90919063ffffffff16565b15610e12576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610ddf908b908b908b908b90600401611836565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050505b5080610e1d8161173a565b915050610d4b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610e5a939291906117f9565b60405180910390a2610e75828565ffffffffffff1685611059565b60005b8151811015610f52576000828281518110610e9557610e9561163d565b60200260200101519050610ec16008826affffffffffffffffffffff191661103b90919063ffffffff16565b15610f3f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610f0c908b908b908b908b90600401611836565b600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050505b5080610f4a8161173a565b915050610e78565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610f9557610f9561163d565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110249061101c9061166c565b83600061106f565b905061055b61103682600084516110a9565b611139565b60008160ff168261104c8560581c90565b1660ff1614905092915050565b6106688383835161106a8560200190565b61114a565b606061055b61107f85858561120a565b60006110a48561108f898961128a565b9060ff166028026038011c64ffffffffff1690565b61129d565b60008183111580156110bc575083518211155b6110f8578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102159392919061187a565b6020840161110684826115f2565b90506000611114858561154e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006108aa83601560006112c0565b82156111c45760208310611174576020830484019350602083816111705761117061178f565b0692505b82156111c45760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116111b55750506103e1565b50600194909401939182900391015b5b602082106111e65780518455600190930192601f19909101906020016111c5565b81156103e1576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161121f929190611754565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006108aa611299848461133b565b5490565b60405160208101601f19603f8484010116604052828252610c4a85858584611391565b606060006112ce8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816112f4576112f461178f565b04905060405193506020840160208202810160405281855260005b8281101561132f578451871c82529387019360209091019060010161130f565b50505050509392505050565b60008282604051602001611350929190611754565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b821561141a57602083106113bb576020830484019350602083816113b7576113b761178f565b0692505b821561141a5760208390036000818410156113df5750600019600884021c196113ea565b50600019600882021c195b8554600886021b81198451168282161784525081841161140b5750506103e1565b50600194909401939182900391015b5b6020821061143c5783548152600190930192601f199091019060200161141b565b81156103e1576000600019600884021c198251865482169119161782525050505050565b60006020828403121561147257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108aa57600080fd5b6000806000606084860312156114b757600080fd5b83359250602084013573ffffffffffffffffffffffffffffffffffffffff811681146114e257600080fd5b929592945050506040919091013590565b60008060006060848603121561150857600080fd5b505081359360208301359350604090920135919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101a2576101a261151f565b60005b8381101561157c578181015183820152602001611564565b50506000910152565b6000815180845261159d816020860160208601611561565b601f01601f19169290920160200192915050565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108de6060830184611585565b808201808211156101a2576101a261151f565b6040815260006116186040830185611585565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051602080830151919081101561168d576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516116f4816003860160208901611561565b808401905081600382015284519150611714826004830160208801611561565b0160040195945050505050565b82815260406020820152600061055b6040830184611585565b6000600019820361174d5761174d61151f565b5060010190565b82815260006020808301845182860160005b8281101561178257815184529284019290840190600101611766565b5091979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081518084526020808501945080840160005b838110156117ee578151875295820195908201906001016117d2565b509495945050505050565b60608152600061180c60608301866117be565b65ffffffffffff85166020840152828103604084015261182c8185611585565b9695505050505050565b84815260806020820152600061184f60808301866117be565b65ffffffffffff85166040840152828103606084015261186f8185611585565b979650505050505050565b60608152600061188d6060830186611585565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50610af5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80638fc8cf7e116100505780638fc8cf7e146100df578063ce5e8dd9146100ff578063e1af802c1461011257600080fd5b806301ffc9a714610077578063119df25f1461009f57806345ec9354146100cc575b600080fd5b61008a61008536600461063e565b61011a565b60405190151581526020015b60405180910390f35b6100a76101b3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b604051601f193601358152602001610096565b6100f26100ed3660046106d3565b6101c2565b6040516100969190610739565b6100f261010d3660046106d3565b6103d7565b6100a76105ae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101ad57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101bd6105b8565b905090565b606060006101ce6105ae565b90508267ffffffffffffffff8111156101e9576101e96107d1565b60405190808252806020026020018201604052801561021c57816020015b60608152602001906001900390816102075790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff84168063894ecc5889898781811061025c5761025c610800565b905060200281019061026e919061082f565b61027c90602081019061086d565b8a8a8881811061028e5761028e610800565b90506020028101906102a0919061082f565b602001358b8b898181106102b6576102b6610800565b90506020028101906102c8919061082f565b6102d69060408101906108a3565b6040516024016102e99493929190610933565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103369250610973565b600060405180830381855af49150503d8060008114610371576040519150601f19603f3d011682016040523d82523d6000602084013e610376565b606091505b50915091508161038957610389816105ea565b8080602001905181019061039d9190610985565b8584815181106103af576103af610800565b6020026020010181905250505080806103c790610a32565b915050610222565b505092915050565b606060006103e36105ae565b90508267ffffffffffffffff8111156103fe576103fe6107d1565b60405190808252806020026020018201604052801561043157816020015b606081526020019060019003908161041c5790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff841680633ae7af0889898781811061047157610471610800565b90506020028101906104839190610a91565b358a8a8881811061049657610496610800565b90506020028101906104a89190610a91565b6104b69060208101906108a3565b6040516024016104c893929190610ac5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105159250610973565b600060405180830381855af49150503d8060008114610550576040519150601f19603f3d011682016040523d82523d6000602084013e610555565b606091505b50915091508161056857610568816105ea565b8080602001905181019061057c9190610985565b85848151811061058e5761058e610800565b6020026020010181905250505080806105a690610a32565b915050610437565b60006101bd6105f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105e75750335b90565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610639573391505090565b919050565b60006020828403121561065057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461068057600080fd5b9392505050565b60008083601f84011261069957600080fd5b50813567ffffffffffffffff8111156106b157600080fd5b6020830191508360208260051b85010111156106cc57600080fd5b9250929050565b600080602083850312156106e657600080fd5b823567ffffffffffffffff8111156106fd57600080fd5b61070985828601610687565b90969095509350505050565b60005b83811015610730578181015183820152602001610718565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156107c4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526107a5818989018a8501610715565b601f01601f191695909501860194509285019290850190600101610760565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261086357600080fd5b9190910192915050565b60006020828403121561087f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126108d857600080fd5b83018035915067ffffffffffffffff8211156108f357600080fd5b6020019150368190038213156106cc57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610969606083018486610908565b9695505050505050565b60008251610863818460208701610715565b60006020828403121561099757600080fd5b815167ffffffffffffffff808211156109af57600080fd5b818401915084601f8301126109c357600080fd5b8151818111156109d5576109d56107d1565b604051601f8201601f19908116603f011681019083821181831017156109fd576109fd6107d1565b81604052828152876020848701011115610a1657600080fd5b610a27836020830160208801610715565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261086357600080fd5b838152604060208201526000610adf604083018486610908565b9594505050505056fea164736f6c6343000815000a608060405234801561001057600080fd5b5061565b80620000216000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063530f4b6011610097578063b29e408911610066578063b29e408914610226578063bfdfaff714610239578063d5f8337f1461024c578063e1af802c1461025f57600080fd5b8063530f4b60146101da578063742d6118146101ed5780638da798da14610200578063a92813ad1461021357600080fd5b80631d2257ba116100d35780631d2257ba1461017557806326d98102146101885780633350b6a9146101b457806345ec9354146101c757600080fd5b806301ffc9a714610105578063056091291461012d5780630ba51f4914610142578063119df25f14610155575b600080fd5b610118610113366004614aa7565b610267565b60405190151581526020015b60405180910390f35b61014061013b366004614ad7565b6102d0565b005b610140610150366004614b53565b6102ef565b61015d6103bf565b6040516001600160a01b039091168152602001610124565b610140610183366004614ca0565b6103ce565b61019b610196366004614cf9565b61044e565b6040516001600160e01b03199091168152602001610124565b6101406101c2366004614d40565b610546565b604051601f193601358152602001610124565b6101406101e8366004614d98565b610731565b61019b6101fb366004614dd6565b610772565b61014061020e366004614e24565b61082d565b610140610221366004614ad7565b610946565b610140610234366004614e5e565b6109ba565b610140610247366004614e77565b610a5e565b61014061025a366004614d98565b610b28565b61015d610b8f565b60006001600160e01b031982167fb5dee1270000000000000000000000000000000000000000000000000000000014806102ca57506001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6102e1826102dc6103bf565b610b99565b6102eb8282610c1f565b5050565b60006102fa89610c6c565b6fffffffffffffffffffffffffffffffff191603610359578761031c89610c83565b6040517fe4ac069e000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b60405180910390fd5b610389616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008a1617610d97565b610395886102dc6103bf565b6103b5888888886103a6888a614f1a565b6103b08789614f1a565b610de2565b5050505050505050565b60006103c9611082565b905090565b6103e06103d96103bf565b84846110b4565b6103e9826111de565b80156103f6575060008151115b15610449576000610406836111fa565b9050610432817faf585477000000000000000000000000000000000000000000000000000000006112d5565b61044661043d6103bf565b84846000611330565b50505b505050565b600061045c836102dc6103bf565b600061048561046b8560101b90565b71ffffffffffffffffffffffffffffffffffff191661135d565b9050600061049a61049586610c6c565b61135d565b905060008282866040516020016104b393929190614f9e565b60405160208183030381529060405290508080519060200120935060006104d9856113f1565b9050801561051f576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031986166004820152602401610350565b855160208701206105318689836114e0565b61053b86846115e8565b505050505092915050565b7f7379000000000000000000000000000000000000000000000000000000000000836001600160f01b031916146105d7577f7379000000000000000000000000000000000000000000000000000000000000836105a285610c83565b6040517f5c30fb6f00000000000000000000000000000000000000000000000000000000815260040161035093929190615014565b7dffffffffffffffffffffffffffff000000000000000000000000000000008316616e7360f01b1761060881610d97565b610614816102dc6103bf565b61063e837fb5dee127000000000000000000000000000000000000000000000000000000006112d5565b600061064985610c6c565b6fffffffffffffffffffffffffffffffff19160361066b578361031c85610c83565b6000610676846116ee565b905080158015906106875750848114155b156106c9576040517fc0b707410000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610350565b60006106d4866111fa565b90506001600160a01b038116156106fd576106ee816117d0565b6106f883826118a4565b610708565b610708866001611997565b610713868686611a8f565b61071d8587611b6f565b61072983866001611c0f565b505050505050565b61075b827f1873396a000000000000000000000000000000000000000000000000000000006112d5565b610767836102dc6103bf565b610449838383611cce565b60408051616e7360f01b602082015260006022820181905260308201819052916107b791016040516020818303038152906040526107af9061503d565b6102dc6103bf565b508151602083012060006107ca826113f1565b90508015610810576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031983166004820152602401610350565b61081b8286856114e0565b61082582856115e8565b509392505050565b610857827f780ac2fc000000000000000000000000000000000000000000000000000000006112d5565b6108d36108626103bf565b600084846040516024016108769190615061565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f13861fb500000000000000000000000000000000000000000000000000000000179052611d2f565b506102eb826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190615074565b8251602084012084611d40565b610952826102dc6103bf565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b7300000000000000000000000000000000000000000060308201526102eb91015b6040516020818303038152906040526109b39061503d565b8383611e73565b616e7360f01b816001600160f01b031916146109e057616e7360f01b816105a283610c83565b6109e981611f9a565b15610a2c57806109f882610c83565b6040517f0dc28f6a000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b610a37816001611997565b610a4881610a436103bf565b61207c565b610a5b81610a546103bf565b6001611c0f565b50565b616e7360f01b836001600160f01b03191614610a8457616e7360f01b836105a285610c83565b610a8d826111de565b610ac3576040517f71ee9e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610acf836102dc6103bf565b6000610ada836111fa565b9050610b06817faf585477000000000000000000000000000000000000000000000000000000006112d5565b610b108484612110565b815115610b225761044661043d6103bf565b50505050565b610b52827f540fbfa8000000000000000000000000000000000000000000000000000000006112d5565b610b5e836102dc6103bf565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b16176121a4565b60006103c9612293565b6001600160a01b038116610bd3616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516176122d2565b6001600160a01b0316146102eb57610bea82610c83565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103509291906150a7565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201526102eb910161099b565b6000610c7a607060106150e8565b9190911b919050565b606081601081901b6000610c9683610c6c565b90508271ffffffffffffffffffffffffffffffffffff19831615610cd757610cd271ffffffffffffffffffffffffffffffffffff19841661135d565b610d0e565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615610d3557610d308361135d565b610d6c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001610d7e939291906150fb565b6040516020818303038152906040529350505050919050565b610da081611f9a565b610a5b5780610dae82610c83565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b613a3160f11b866001600160f01b03191614801590610e105750611bdd60f21b866001600160f01b03191614155b15610e7157613a3160f11b8687604051602001610e2f91815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610350939291600401615014565b610e7a856123a2565b610e85846001612523565b610e90836000612523565b60e084901c60e885901c0160ff16825114610ef05760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff16815114610f505760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610fc85760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b610fd186611f9a565b1561102b578586604051602001610fea91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526103509291600401614f01565b61107786868686866040516020016110439190615171565b604051602081830303815290604052866040516020016110639190615171565b6040516020818303038152906040526126cf565b610729866001611997565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806110b15750335b90565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b816000815181106110f5576110f56151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611121576111216151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152610b2291015b6040516020818303038152906040526111939061503d565b826000856040516020016111a991815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006127d3565b600081151580156102ca57506111f3826127e8565b1592915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611233576112336151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca906112a29061503d565b8360007e15020014010000000000000000000000000000000000000000000000000000612863565b60601c949350505050565b6112df8282612899565b6102eb576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610350565b6060600080611341878787876128bc565b91509150816113535761135381612aa0565b9695505050505050565b606060005b60108110156113bd576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156113bd57806113b581615207565b915050611362565b604080516fffffffffffffffffffffffffffffffff198516602082015281516030909101909152818152805b949350505050565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611449576114496151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526000906113e9906114b89061503d565b8360007e24020020040000000000000000000000000000000000000000000000000000612863565b60006114ec8383612aa8565b60408051600180825281830190925291925060009160609183919060208083019080368337019050509050867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061154a5761154a6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526115df906115b69061503d565b828686867e24020020040000000000000000000000000000000000000000000000000000612ae7565b50505050505050565b606060006115f583612e01565b9050600061160284612e11565b6040805160018082528183019092529192506000919060208083019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061165b5761165b6151f1565b60209081029190910181019190915260408051611bdd60f21b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e617475720000000000000000000000000000000060308201528151808203909301835281019052610729906116c79061503d565b828686867c0100000000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110611733576117336151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d526567697374727900000000000000000000000000000000000060308301526000916113e991015b6040516020818303038152906040526117a89061503d565b8360007e20010020000000000000000000000000000000000000000000000000000000612863565b60408051600180825281830190925260009160208083019080368337019050509050816001600160a01b031660001b81600081518110611812576118126151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526102eb9061187e9061503d565b827e20010020000000000000000000000000000000000000000000000000000000612e3a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106118d9576118d96151f1565b602002602001018181525050816001600160a01b031660001b81600181518110611905576119056151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f7572636541636365737300000000000000000000000000000000000060308201528151808203909301835281019052610449906119719061503d565b827e01010001000000000000000000000000000000000000000000000000000000612e3a565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106119cd576119cd6151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261044991015b604051602081830303815290604052611a3f9061503d565b82600085604051602001611a5a91151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006127d3565b6000611a9b838361311a565b604080516001808252818301909252919250600091606091839190602080830190803683370190505090508681600081518110611ada57611ada6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526115df90611b469061503d565b828686867e15020014010000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b81600081518110611bb157611bb16151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d52656769737472790000000000000000000000000000000000006030830152610449910161117b565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110611c4457611c446151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611c7057611c706151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152610b229101611a27565b613a3160f11b836001600160f01b03191614611cfe57613a3160f11b8384604051602001610e2f91815260200190565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b161761314a565b6060600080611341878787876131de565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110611d8857611d886151f1565b6020026020010181815250508281600181518110611da857611da86151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610b2291015b604051602081830303815290604052611e1a9061503d565b6040516bffffffffffffffffffffffff19606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006127d3565b6000611e7f8484613256565b90506000815167ffffffffffffffff811115611e9d57611e9d614be9565b604051908082528060200260200182016040528015611ec6578160200160208202803683370190505b5090506000805b8351811015611f8b57846001600160a01b0316611f11858381518110611ef557611ef56151f1565b60200260200101516affffffffffffffffffffff191660601c90565b6001600160a01b031614611f8357838181518110611f3157611f316151f1565b6020026020010151838381518110611f4b57611f4b6151f1565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611ecd565b508082526107298686846132c1565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611fd357611fd36151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015260009161207091015b6040516020818303038152906040526120489061503d565b8360007e01010001000000000000000000000000000000000000000000000000000000612863565b90506113e98160f81c90565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106120b2576120b26151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526104499101611e02565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612146576121466151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c65676174000000000000000000000000000000006030830152610449910161117b565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106121da576121da6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b73000000000000000000000000000000000000000000603083015261044991015b60405160208183030381529060405261224c9061503d565b6040517fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000851660208201528390600090603501604051602081830303815290604052613318565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806122cd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061230b5761230b6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca9061237a9061503d565b8360007e14010014000000000000000000000000000000000000000000000000000000612863565b806123d9576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006123e4826133c9565b9050600581111561242b576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610350565b600061243683613406565b9050600061244483836150e8565b9050601c81111561248b576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610350565b60005b828110156104465760ff601b82900360080286901c1660008190036124df576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561251a576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161248e565b8015801561252f575081155b1561255057604051635318beb960e01b815260006004820152602401610350565b600061255b836133c9565b9050600581111561258257604051635318beb960e01b815260048101829052602401610350565b600061258d84613406565b9050600061259b83836150e8565b9050601c8111156125c257604051635318beb960e01b815260048101829052602401610350565b60008060005b838110156126885760006125f56125df8a84613418565b60c58111156125f0576125f0615221565b613439565b111561263f57848110612634576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612680565b84811015612679576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b6001016125c8565b508382146126ac57604051635318beb960e01b815260048101839052602401610350565b8481146115df57604051635318beb960e01b815260048101829052602401610350565b60006126dc868686613499565b905060006126ea84846134cf565b905060006126f885856134ec565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110612732576127326151f1565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526127c79061279e9061503d565b828686867e60030220202000000000000000000000000000000000000000000000000000612ae7565b50505050505050505050565b61044685856127e28487613501565b8561353c565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d6974656400000000000000000000000000000000000000000000006030830152910160405160208183030381529060405261285b9061503d565b909114919050565b600061289061287286866137b8565b60ff858116601b0360080285901c1661288b8587613501565b61380e565b95945050505050565b60006128a48361385f565b80156128b557506128b583836138a0565b9392505050565b6000606060006128cb86613958565b905060005b81518110156129a85760008282815181106128ed576128ed6151f1565b602002602001015190506129196001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612995576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190612962908c908c908c90600401615237565b600060405180830381600087803b15801561297c57600080fd5b505af1158015612990573d6000803e3d6000fd5b505050505b50806129a081615207565b9150506128d0565b506129b587858888613a3f565b909350915060005b8151811015612a955760008282815181106129da576129da6151f1565b60200260200101519050612a066002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612a82576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f9990612a4f908c908c908c90600401615237565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505b5080612a8d81615207565b9150506129bd565b505094509492505050565b805160208201fd5b60608282604051602001612ad09291909182526001600160e01b031916602082015260240190565b604051602081830303815290604052905092915050565b611bdd60f21b866001600160f01b03191603612b4057857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612b33949392919061529a565b60405180910390a2610729565b6000612b4b87613b1e565b905060005b8151811015612c2e576000828281518110612b6d57612b6d6151f1565b60200260200101519050612b996001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612c1b576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90612be8908c908c908c908c908c908c906004016152d9565b600060405180830381600087803b158015612c0257600080fd5b505af1158015612c16573d6000803e3d6000fd5b505050505b5080612c2681615207565b915050612b50565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051612c65949392919061529a565b60405180910390a26000612c7988886137b8565b90506000602087019050612c91826000895184613bb9565b6000612c9c856133c9565b1115612d20576000612cae8a8a613c79565b878155905060208601915060008060005b612cc8886133c9565b8160ff161015612d1b57612cdd8d8d83613ccf565b9250612cf88a8260ff166028026038011c64ffffffffff1690565b9150612d078360008488613bb9565b612d1182866150e8565b9450600101612cbf565b505050505b60005b83518110156127c7576000848281518110612d4057612d406151f1565b60200260200101519050612d6c6002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612dee576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612dbb908e908e908e908e908e908e906004016152d9565b600060405180830381600087803b158015612dd557600080fd5b505af1158015612de9573d6000803e3d6000fd5b505050505b5080612df981615207565b915050612d23565b60006102ca8251603881901b1790565b606081604051602001612e249190615332565b6040516020818303038152906040529050919050565b611bdd60f21b836001600160f01b03191603612e8d57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612e80919061534e565b60405180910390a2505050565b6000612e9884613b1e565b905060005b8151811015612f75576000828281518110612eba57612eba6151f1565b60200260200101519050612ee66040826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612f62576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612f2f90899089908990600401615361565b600060405180830381600087803b158015612f4957600080fd5b505af1158015612f5d573d6000803e3d6000fd5b505050505b5080612f6d81615207565b915050612e9d565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612fa6919061534e565b60405180910390a26000612fba85856137b8565b9050613013816000612fcb86613d4f565b67ffffffffffffffff811115612fe357612fe3614be9565b6040519080825280601f01601f19166020018201604052801561300d576020820181803683370190505b50613d72565b600061301e846133c9565b111561303f5760006130308686613c79565b905061303d816020613d88565b505b60005b825181101561072957600083828151811061305f5761305f6151f1565b6020026020010151905061308b6080826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613107576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b906130d4908a908a908a90600401615361565b600060405180830381600087803b1580156130ee57600080fd5b505af1158015613102573d6000803e3d6000fd5b505050505b508061311281615207565b915050613042565b604051606083811b6bffffffffffffffffffffffff1916602083015282151560f81b603483015290603501612ad0565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613180576131806151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308301526104499101612234565b60006060836001600160a01b031660006131f9858989613dc5565b6040516132069190615332565b60006040518083038185875af1925050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b509097909650945050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613290576132906151f1565b60200260200101818152505060006132aa85836000613ddc565b90506128906132bc8260008451613e16565b613ea6565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106132f7576132f76151f1565b602002602001018181525050610b228482600061331386613eb7565b613ec7565b6000613322612293565b9050306001600160a01b038216036133455761334085858585613f02565b610446565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f32629061339090889088908890889060040161538a565b600060405180830381600087803b1580156133aa57600080fd5b505af11580156133be573d6000803e3d6000fd5b505050505050505050565b600060086001806133dc600260206153be565b6133e691906153be565b6133f091906153be565b6133fa91906153d1565b8260ff911c1692915050565b6000600860016133e6600260206153be565b6000601b8290036008028360ff911c1660c58111156128b5576128b5615221565b6000808260c581111561344e5761344e615221565b60ff169050606181101561346857601f1660010192915050565b60618360c581111561347c5761347c615221565b0361348a5750601492915050565b50600092915050565b50919050565b60408051602081018590529081018390526060818101839052906080015b60405160208183030381529060405290509392505050565b8151815160009181810160389190911b1760609190911b176128b5565b60608282604051602001612ad09291906153e8565b600080805b8360ff168110156108255761352860ff601b83900360080287901c16836150e8565b91508061353481615207565b915050613506565b611bdd60f21b846001600160f01b0319160361359357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161358693929190615417565b60405180910390a2610b22565b600061359f85856137b8565b905060006135ac86613b1e565b905060005b815181101561368b5760008282815181106135ce576135ce6151f1565b602002602001015190506135fa6004826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613678576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90613645908b908b908b908b9060040161544a565b600060405180830381600087803b15801561365f57600080fd5b505af1158015613673573d6000803e3d6000fd5b505050505b508061368381615207565b9150506135b1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516136c093929190615417565b60405180910390a26136db828565ffffffffffff1685613d72565b60005b81518110156115df5760008282815181106136fb576136fb6151f1565b602002602001015190506137276008826affffffffffffffffffffff1916613a2190919063ffffffff16565b156137a5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190613772908b908b908b908b9060040161544a565b600060405180830381600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050505b50806137b081615207565b9150506136de565b600082826040516020016137cd929190615483565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061383457602082048401935060208281613830576138306154be565b0691505b508254600882021b602082900380841115610825576001850154600882021c82179150509392505050565b600061388b827f01ffc9a7000000000000000000000000000000000000000000000000000000006138a0565b80156102ca57506111f3826001600160e01b03195b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613941575060208210155b801561394d5750600081115b979650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613992576139926151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091613a0f91015b604051602081830303815290604052613a079061503d565b836000613ddc565b90506113e96132bc8260008451613e16565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b60006060600080613a4f86613f3d565b90925090506001600160a01b038216613a6c5785610dae87610c83565b80613a7b57613a7b8689614035565b8615613acc577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000613ab48261404c565b9050613ac982613ac48b846150e8565b6140e6565b50505b6000613ad88760101b90565b71ffffffffffffffffffffffffffffffffffff191614613b0357613afe888884886131de565b613b0f565b613b0f8888848861417a565b90999098509650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613b5857613b586151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091613a0f91016139ef565b8215613c335760208310613be357602083048401935060208381613bdf57613bdf6154be565b0692505b8215613c335760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613c24575050610b22565b50600194909401939182900391015b5b60208210613c555780518455600190930192601f1990910190602001613c34565b8115610b22576000600019600884021c198554835182169119161785555050505050565b60008282604051602001613c8e929190615483565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001613ce4929190615483565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008613d5f600260206153be565b613d6991906153d1565b9190911c919050565b61044983838351613d838560200190565b613bb9565b60006020613d9783601f6150e8565b613da191906154d4565b613dab90846150e8565b90505b808310156104495760008355600183019250613dae565b60608383836040516020016134b7939291906154f6565b60606113e9613dec858585613ccf565b6000613e1185613dfc89896141db565b9060ff166028026038011c64ffffffffff1690565b6141ee565b6000818311158015613e29575083518211155b613e65578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161035093929190615535565b60208401613e7384826150e8565b90506000613e8185856153be565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006128b58360156000614211565b6060816128b5816015600061428c565b6000613ed385856141db565b90506000613ef0828560ff166028026038011c64ffffffffff1690565b905061072986868660008588886142e0565b6000613f0e85856141db565b90506000613f2b828560ff166028026038011c64ffffffffff1690565b905061072986868684600088886142e0565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f7757613f776151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061401090613fea9061503d565b857e1502001401000000000000000000000000000000000000000000000000000061469c565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b61403f82826147a4565b6102eb57610bea82610c83565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110614085576140856151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e63657300000000000000000000000000000000000000000000000060308301526000916113e99101611790565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061411c5761411c6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e6365730000000000000000000000000000000000000000000000006030830152610449910161117b565b60006060836001600160a01b0316614193848888613dc5565b6040516141a09190615332565b600060405180830381855af49150503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b60006128b56141ea8484613c79565b5490565b60405160208101601f19603f8484010116604052828252610825858585846147e7565b6060600061421f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281614245576142456154be565b04905060405193506020840160208202810160405281855260005b82811015614280578451871c825293870193602090910190600101614260565b50505050509392505050565b8251606090600061429d85836153d1565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015614280578051871b835291870191600191909101906020016142bf565b613a3160f11b876001600160f01b0319161461431057613a3160f11b8788604051602001610e2f91815260200190565b600061432b828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361434491906153be565b61434e91906150e8565b9050808214158015614370575081614366868861555a565b64ffffffffff1614155b156143c0576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610350565b818664ffffffffff161115614411576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610350565b600061441e8489846148b6565b9050600061442b8b613b1e565b905060005b815181101561450057600082828151811061444d5761444d6151f1565b602002602001015190506144796010826affffffffffffffffffffff1916613a2190919063ffffffff16565b156144ed57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016144ba979695949392919061557f565b600060405180830381600087803b1580156144d457600080fd5b505af11580156144e8573d6000803e3d6000fd5b505050505b50806144f881615207565b915050614430565b5064ffffffffff881660005b8a60ff168160ff16101561453f57614533878260ff166028026038011c64ffffffffff1690565b9091019060010161450c565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516145789594939291906155dd565b60405180910390a2508284146145995760006145948c8c613c79565b839055505b60006145a68c8c8c613ccf565b90506145ba818a64ffffffffff1689613d72565b5060005b815181101561468e5760008282815181106145db576145db6151f1565b602002602001015190506146076020826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561467b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401614648979695949392919061557f565b600060405180830381600087803b15801561466257600080fd5b505af1158015614676573d6000803e3d6000fd5b505050505b508061468681615207565b9150506145be565b505050505050505050505050565b60606000606060006146ad85613d4f565b90506146ba878783614984565b935060006146c7866133c9565b90508015614799576146d988886141db565b935066ffffffffffffff841667ffffffffffffffff8111156146fd576146fd614be9565b6040519080825280601f01601f191660200182016040528015614727576020820181803683370190505b5092506020830160005b828160ff1610156147965760006147498b8b84613ccf565b90506000614766888460ff166028026038011c64ffffffffff1690565b905061477582600083876147e7565b61477f81856150e8565b93505050808061478e9061562f565b915050614731565b50505b505093509350939050565b60006147d7616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000851617836149bd565b806128b557506128b583836149bd565b821561487057602083106148115760208304840193506020838161480d5761480d6154be565b0692505b82156148705760208390036000818410156148355750600019600884021c19614840565b50600019600882021c195b8554600886021b811984511682821617845250818411614861575050610b22565b50600194909401939182900391015b5b602082106148925783548152600190930192601f1990910190602001614871565b8115610b22576000600019600884021c198251865482169119161782525050505050565b600064ffffffffff8211156148fa576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610350565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061492c5780850382019150614934565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6060816000036149a357506040805160208101909152600081526128b5565b60006149af85856137b8565b9050612890816000856141ee565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106149f6576149f66151f1565b602002602001018181525050826001600160a01b031660001b81600181518110614a2257614a226151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091614a839101612030565b90506128908160f81c90565b80356001600160e01b0319811681146122cd57600080fd5b600060208284031215614ab957600080fd5b6128b582614a8f565b6001600160a01b0381168114610a5b57600080fd5b60008060408385031215614aea57600080fd5b823591506020830135614afc81614ac2565b809150509250929050565b60008083601f840112614b1957600080fd5b50813567ffffffffffffffff811115614b3157600080fd5b6020830191508360208260051b8501011115614b4c57600080fd5b9250929050565b60008060008060008060008060c0898b031215614b6f57600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff80821115614ba357600080fd5b614baf8c838d01614b07565b909650945060a08b0135915080821115614bc857600080fd5b50614bd58b828c01614b07565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614c2857614c28614be9565b604052919050565b600082601f830112614c4157600080fd5b813567ffffffffffffffff811115614c5b57614c5b614be9565b614c6e6020601f19601f84011601614bff565b818152846020838601011115614c8357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614cb557600080fd5b8335614cc081614ac2565b925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b614cef86828701614c30565b9150509250925092565b60008060408385031215614d0c57600080fd5b82359150602083013567ffffffffffffffff811115614d2a57600080fd5b614d3685828601614c30565b9150509250929050565b600080600060608486031215614d5557600080fd5b833592506020840135614d6781614ac2565b915060408401358015158114614d7c57600080fd5b809150509250925092565b803560ff811681146122cd57600080fd5b600080600060608486031215614dad57600080fd5b833592506020840135614dbf81614ac2565b9150614dcd60408501614d87565b90509250925092565b600080600060608486031215614deb57600080fd5b83359250602084013567ffffffffffffffff811115614e0957600080fd5b614e1586828701614c30565b925050614dcd60408501614a8f565b60008060408385031215614e3757600080fd5b8235614e4281614ac2565b9150602083013567ffffffffffffffff811115614d2a57600080fd5b600060208284031215614e7057600080fd5b5035919050565b600080600060608486031215614e8c57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b60005b83811015614ecc578181015183820152602001614eb4565b50506000910152565b60008151808452614eed816020860160208601614eb1565b601f01601f19169290920160200192915050565b8281526040602082015260006113e96040830184614ed5565b600067ffffffffffffffff80841115614f3557614f35614be9565b8360051b6020614f46818301614bff565b868152918501918181019036841115614f5e57600080fd5b865b84811015614f9257803586811115614f785760008081fd5b614f8436828b01614c30565b845250918301918301614f60565b50979650505050505050565b60008451614fb0818460208901614eb1565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528551614fec816001850160208a01614eb1565b60019201918201528351615007816002840160208801614eb1565b0160020195945050505050565b6001600160f01b0319841681528260208201526060604082015260006128906060830184614ed5565b805160208083015191908110156134935760001960209190910360031b1b16919050565b6020815260006128b56020830184614ed5565b60006020828403121561508657600080fd5b81516fffffffffffffffffffffffffffffffff19811681146128b557600080fd5b6040815260006150ba6040830185614ed5565b90506001600160a01b03831660208301529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ca576102ca6150d2565b6001600160f01b03198416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451615144816003860160208901614eb1565b808401905081600382015284519150615164826004830160208801614eb1565b0160040195945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526151d2858351614ed5565b94509285019290850190600101615198565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600019820361521a5761521a6150d2565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03841681528260208201526060604082015260006128906060830184614ed5565b600081518084526020808501945080840160005b8381101561528f57815187529582019590820190600101615273565b509495945050505050565b6080815260006152ad608083018761525f565b82810360208401526152bf8187614ed5565b9050846040840152828103606084015261394d8185614ed5565b86815260c0602082015260006152f260c083018861525f565b82810360408401526153048188614ed5565b9050856060840152828103608084015261531e8186614ed5565b9150508260a0830152979650505050505050565b60008251615344818460208701614eb1565b9190910192915050565b6020815260006128b5602083018461525f565b83815260606020820152600061537a606083018561525f565b9050826040830152949350505050565b8481526080602082015260006153a3608083018661525f565b60ff85166040840152828103606084015261394d8185614ed5565b818103818111156102ca576102ca6150d2565b80820281158282048414176102ca576102ca6150d2565b600083516153fa818460208801614eb1565b83519083019061540e818360208801614eb1565b01949350505050565b60608152600061542a606083018661525f565b65ffffffffffff8516602084015282810360408401526113538185614ed5565b848152608060208201526000615463608083018661525f565b65ffffffffffff85166040840152828103606084015261394d8185614ed5565b82815260006020808301845182860160005b828110156154b157815184529284019290840190600101615495565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826154f157634e487b7160e01b600052601260045260246000fd5b500490565b60008451615508818460208901614eb1565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006155486060830186614ed5565b60208301949094525060400152919050565b64ffffffffff818116838216019080821115615578576155786150d2565b5092915050565b87815260e06020820152600061559860e083018961525f565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526155cf8185614ed5565b9a9950505050505050505050565b60a0815260006155f060a083018861525f565b65ffffffffffff8716602084015264ffffffffff8616604084015284606084015282810360808401526156238185614ed5565b98975050505050505050565b600060ff821660ff8103615645576156456150d2565b6001019291505056fea164736f6c6343000815000a6101006040523480156200001257600080fd5b5060405162004c6d38038062004c6d833981016040819052620000359162000071565b6001600160a01b0393841660805291831660a052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614b4c62000121600039600081816106a20152818161159201526116210152600061063a015260006105d2015260006105510152614b4c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b610095610090366004614310565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e5366004614368565b61023c565b005b6040517f636f72650000000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b366004614368565b61026e565b6100b2610289565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610293565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102766102c5565b61027e61050f565b6102866106c8565b50565b6000610237610bcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102c25750335b90565b6102cd610c17565b6102d5610c2f565b6102dd610cd4565b6102e5610d5c565b6102ed610dfc565b6102f5610e84565b6102fd610f04565b610305610f8c565b61030d61102c565b6103156110cc565b61031d61116a565b610325611208565b60408051616e7360f01b6020820152600060228201819052603082015261036791015b60405160208183030381529060405261036090614419565b6001611290565b60408051616e7360f01b602082015260006022820181905260308201526103af91015b6040516020818303038152906040526103a290614419565b6103aa61022d565b611375565b60408051616e7360f01b602082015260006022820181905260308201526103f991015b6040516020818303038152906040526103ea90614419565b6103f261022d565b6001611483565b60408051616e7360f01b60208201526473746f726560d81b6022820152600060308201526104279101610348565b60408051616e7360f01b60208201526473746f726560d81b602282015260006030820152610455910161038a565b60408051616e7360f01b60208201526473746f726560d81b60228201526000603082015261048391016103d2565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104b19101610348565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104df910161038a565b60408051616e7360f01b6020820152641ddbdc9b1960da1b60228201526000603082015261050d91016103d2565b565b6040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e74000000000000000000000000000000006030820152610590917f000000000000000000000000000000000000000000000000000000000000000091015b60405160208183030381529060405261058b90614419565b611555565b6040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526105f8917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610660917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e00000000000000000000000000000000603082015261050d917f00000000000000000000000000000000000000000000000000000000000000009101610573565b600060405180606001604052806040518060400160405280601c81526020017f6772616e7441636365737328627974657333322c61646472657373290000000081525081526020016040518060400160405280601d81526020017f7265766f6b6541636365737328627974657333322c61646472657373290000008152508152602001604051806060016040528060228152602001614b1e602291399052905060005b60038110156107fb576040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e740000000000000000000000000000000060308201526107e991016040516020818303038152906040526107cd90614419565b8383600381106107df576107df61443d565b6020020151611612565b806107f381614469565b91505061076b565b506040805160a0810182526033918101828152600092829190614ac2606084013981526020016040518060600160405280603181526020016149b7603191399052905060005b60028110156108c8576040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526108b691015b6040516020818303038152906040526108a490614419565b8383600281106107df576107df61443d565b806108c081614469565b915050610841565b50600060405180604001604052806040518060400160405280601c81526020017f626174636843616c6c2828627974657333322c6279746573295b5d29000000008152508152602001604051806060016040528060288152602001614a43602891399052905060005b6002811015610992576040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610980910161088c565b8061098a81614469565b915050610931565b50604080516101c081018252601c61018082019081527f696e7374616c6c4d6f64756c6528616464726573732c627974657329000000006101a08301528152815160608101835282815260009260208084019291906149029083013981526020016040518060600160405280602881526020016149e86028913981526020016040518060600160405280602481526020016148de6024913981526020016040518060400160405280601a81526020017f72656769737465724e616d6573706163652862797465733332290000000000008152508152602001604051806060016040528060298152602001614af5602991398152602001604051806060016040528060258152602001614a6b60259139815260200160405180606001604052806024815260200161499360249139815260200160405180606001604052806028815260200161496b602891398152602001604051806060016040528060338152602001614a10603391398152602001604051806060016040528060298152602001614942602991398152602001604051806060016040528060328152602001614a90603291399052905060005b600c811015610bc4576040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e000000000000000000000000000000006030820152610bb29101604051602081830303815290604052610ba090614419565b8383600c81106107df576107df61443d565b80610bbc81614469565b915050610b3e565b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610c12573391505090565b919050565b610c1f6116b9565b610c27611759565b61050d6117f7565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610c8f90614419565b7e14010014000000000000000000000000000000000000000000000000000000610cb761187f565b610cbf6118f7565b610cc7611931565b610ccf6119b6565b611a2d565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610d3490614419565b630100080160dd1b610d4461187f565b610d4c611b01565b610d54611931565b610ccf611b3b565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015261050d9101604051602081830303815290604052610dbc90614419565b7e14010014000000000000000000000000000000000000000000000000000000610de4611bb2565b610dec6118f7565b610df4611c31565b610ccf611cfb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5573657244656c65676174696f6e436f00000000000000000000000000000000603082015261050d9101604051602081830303815290604052610e5c90614419565b630100080160dd1b610e6c611d72565b610e7461187f565b610e7c611df1565b610ccf611ebb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d65737061636544656c6567617400000000000000000000000000000000603082015261050d9101604051602081830303815290604052610ee490614419565b630100080160dd1b610ef461187f565b610efc61187f565b610e7c611931565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610f6490614419565b630101000160d81b610f74611f32565b610f7c611f6c565b610f84611fa6565b610ccf612070565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610fec90614419565b7e1502001401000000000000000000000000000000000000000000000000000061101461187f565b61101c6120e7565b611024612166565b610ccf6121dd565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015261050d910160405160208183030381529060405261108c90614419565b7e240200200400000000000000000000000000000000000000000000000000006110b46122a7565b6110bc6122e1565b6110c4612360565b610ccf6123d7565b60408051611bdd60f21b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e6174757200000000000000000000000000000000603082015261050d910160405160208183030381529060405261112c90614419565b7c01000000000000000000000000000000000000000000000000000000006111526122a7565b61115a6124a1565b611162612360565b610ccf6124db565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b73000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526111ca90614419565b7c01000000000000000000000000000000000000000000000000000000006111f061187f565b6111f8612552565b611200612166565b610ccf61258c565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261126890614419565b630100080160dd1b6112786118f7565b61128061187f565b611288612603565b610ccf612166565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106112c6576112c661443d565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261137091015b60405160208183030381529060405261133890614419565b8260008560405160200161135391151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b61267a565b505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106113ab576113ab61443d565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526113709061141790614419565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061267a565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106114b8576114b861443d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106114f1576114f161443d565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f75726365416363657373000000000000000000000000000000000000603083015261154f9101611320565b50505050565b61137061156061022d565b6040516024810184905273ffffffffffffffffffffffffffffffffffffffff85166044820152600160648201526000907f00000000000000000000000000000000000000000000000000000000000000009060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3350b6a90000000000000000000000000000000000000000000000000000000017905261268f565b61137061161d61022d565b60007f00000000000000000000000000000000000000000000000000000000000000008585868051906020012060405160240161165c939291906144d3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f742d61180000000000000000000000000000000000000000000000000000000017905261268f565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261171990614419565b7e6003022020200000000000000000000000000000000000000000000000000061174161187f565b6117496126bc565b61175161280b565b610ccf612882565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526117b990614419565b7c01000000000000000000000000000000000000000000000000000000006117df61187f565b6117e7612552565b6117ef61280b565b610ccf612a4a565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261185790614419565b630101000160d81b61186761187f565b61186f611f6c565b611877612ac1565b610ccf612b38565b60408051600180825281830190925260009182919060208083019080368337019050509050605f816000815181106118b9576118b961443d565b602002602001019060c58111156118d2576118d261451e565b908160c58111156118e5576118e561451e565b9052506118f181612baf565b91505090565b604080516001808252818301909252600091829190602080830190803683370190505090506061816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816119485790505090506040518060400160405280600b81526020017f6e616d6573706163654964000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816119cd5790505090506040518060400160405280600581526020017f6f776e6572000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000611a37610bcb565b90503073ffffffffffffffffffffffffffffffffffffffff821603611a6957611a64878787878787612d73565b611af8565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f4990611ac5908a908a908a908a908a908a9060040161458c565b600060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050505b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050601f816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611b525790505090506040518060400160405280600781526020017f62616c616e636500000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110611bec57611bec61443d565b602002602001019060c5811115611c0557611c0561451e565b908160c5811115611c1857611c1861451e565b81525050605f816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611c475790505090506040518060400160405280600a81526020017f6d6f64756c654e616d650000000000000000000000000000000000000000000081525081600081518110611ca757611ca761443d565b60200260200101819052506040518060400160405280600d81526020017f617267756d656e74734861736800000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611d125790505090506040518060400160405280600d81526020017f6d6f64756c654164647265737300000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611dac57611dac61443d565b602002602001019060c5811115611dc557611dc561451e565b908160c5811115611dd857611dd861451e565b815250506061816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611e075790505090506040518060400160405280600981526020017f64656c656761746f72000000000000000000000000000000000000000000000081525081600081518110611e6757611e6761443d565b60200260200101819052506040518060400160405280600981526020017f64656c6567617465650000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611ed25790505090506040518060400160405280601381526020017f64656c65676174696f6e436f6e74726f6c496400000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611dac57611dac61443d565b604080516001808252818301909252600091829190602080830190803683370190505090506060816000815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611fbc5790505090506040518060400160405280600a81526020017f7265736f757263654964000000000000000000000000000000000000000000008152508160008151811061201c5761201c61443d565b60200260200101819052506040518060400160405280600681526020017f63616c6c65720000000000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816120875790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106121215761212161443d565b602002602001019060c581111561213a5761213a61451e565b908160c581111561214d5761214d61451e565b815250506060816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161217d5790505090506040518060400160405280600881526020017f73797374656d4964000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816121f35790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106122535761225361443d565b60200260200101819052506040518060400160405280600c81526020017f7075626c69634163636573730000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252600091829190602080830190803683370190505090506043816000815181106118b9576118b961443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f8160008151811061231b5761231b61443d565b602002602001019060c58111156123345761233461451e565b908160c58111156123475761234761451e565b815250506043816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816123775790505090506040518060400160405280601081526020017f66756e6374696f6e53656c6563746f7200000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816123ed5790505090506040518060400160405280600881526020017f73797374656d49640000000000000000000000000000000000000000000000008152508160008151811061244d5761244d61443d565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816001815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060c5816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816124f25790505090506040518060400160405280601181526020017f66756e6374696f6e5369676e6174757265000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060b6816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816125a35790505090506040518060400160405280600581526020017f76616c7565000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161261a5790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b610bc48585612689848761304b565b8561308e565b60606000806126a087878787613322565b91509150816126b2576126b2816133a3565b9695505050505050565b60408051600580825260c082019092526000918291906020820160a080368337019050509050605f816000815181106126f7576126f761443d565b602002602001019060c58111156127105761271061451e565b908160c58111156127235761272361451e565b81525050605f8160018151811061273c5761273c61443d565b602002602001019060c58111156127555761275561451e565b908160c58111156127685761276861451e565b81525050605f816002815181106127815761278161443d565b602002602001019060c581111561279a5761279a61451e565b908160c58111156127ad576127ad61451e565b8152505060c4816003815181106127c6576127c661443d565b602002602001019060c58111156127df576127df61451e565b908160c58111156127f2576127f261451e565b8152505060c4816004815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816128225790505090506040518060400160405280600781526020017f7461626c65496400000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600580825260c08201909252606091816020015b606081526020019060019003908161289a5790505090506040518060400160405280600b81526020017f6669656c644c61796f7574000000000000000000000000000000000000000000815250816000815181106128fa576128fa61443d565b60200260200101819052506040518060400160405280600981526020017f6b6579536368656d6100000000000000000000000000000000000000000000008152508160018151811061294e5761294e61443d565b60200260200101819052506040518060400160405280600b81526020017f76616c7565536368656d61000000000000000000000000000000000000000000815250816002815181106129a2576129a261443d565b60200260200101819052506040518060400160405280601281526020017f616269456e636f6465644b65794e616d65730000000000000000000000000000815250816003815181106129f6576129f661443d565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612a615790505090506040518060400160405280600581526020017f686f6f6b73000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612ad85790505090506040518060400160405280600a81526020017f7265736f75726365496400000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612b4f5790505090506040518060400160405280600681526020017f6578697374730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000601c82511115612be2578151604051635318beb960e01b8152600401612bd991815260200190565b60405180910390fd5b60008080805b8551811015612cbd576000612c26878381518110612c0857612c0861443d565b602002602001015160c5811115612c2157612c2161451e565b6133ab565b905080600003612c3b57600190920191612c73565b8215612c73576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110612c9457612c9461443d565b602002602001015160c5811115612cad57612cad61451e565b901b949094179350600101612be8565b506005811115612ce357604051635318beb960e01b815260048101829052602401612bd9565b84518190036008612cf6600260206145d6565b612d0091906145e9565b83901b939093179260086001612d18600260206145d6565b612d2291906145d6565b612d2c91906145e9565b81901b93909317926008600180612d45600260206145d6565b612d4f91906145d6565b612d5991906145d6565b612d6391906145e9565b9190911b92909217949350505050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590612dd15750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15612e3257613a3160f11b8687604051602001612df091815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252612bd9939291600401614600565b612e3b8561340b565b612e4684600161358c565b612e5183600061358c565b60e084901c60e885901c0160ff16825114612eb15760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff16815114612f115760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614612f895760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b612f9286613733565b15612fec578586604051602001612fab91815260200190565b60408051601f19818403018152908290527fdfaaf9cf000000000000000000000000000000000000000000000000000000008252612bd99291600401614641565b6130388686868686604051602001613004919061465a565b60405160208183030381529060405286604051602001613024919061465a565b6040516020818303038152906040526137ff565b613043866001611290565b505050505050565b600080805b8360ff168110156130865761307260ff601b83900360080287901c168361466d565b91508061307e81614469565b915050613050565b509392505050565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036130fd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516130f0939291906146bb565b60405180910390a261154f565b60006131098585613903565b9050600061311686613959565b905060005b81518110156131f55760008282815181106131385761313861443d565b602002602001015190506131646004826affffffffffffffffffffff1916613a2190919063ffffffff16565b156131e2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906131af908b908b908b908b906004016146ee565b600060405180830381600087803b1580156131c957600080fd5b505af11580156131dd573d6000803e3d6000fd5b505050505b50806131ed81614469565b91505061311b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161322a939291906146bb565b60405180910390a2613245828565ffffffffffff1685613a3f565b60005b8151811015611af85760008282815181106132655761326561443d565b602002602001015190506132916008826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561330f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906132dc908b908b908b908b906004016146ee565b600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050505b508061331a81614469565b915050613248565b600060608373ffffffffffffffffffffffffffffffffffffffff16613348848888613a55565b6040516133559190614732565b600060405180830381855af49150503d8060008114613390576040519150601f19603f3d011682016040523d82523d6000602084013e613395565b606091505b509097909650945050505050565b805160208201fd5b6000808260c58111156133c0576133c061451e565b60ff16905060618110156133da57601f1660010192915050565b60618360c58111156133ee576133ee61451e565b036133fc5750601492915050565b50600092915050565b50919050565b80613442576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061344d82613a84565b90506005811115613494576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401612bd9565b600061349f83613ac1565b905060006134ad838361466d565b9050601c8111156134f4576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401612bd9565b60005b82811015610bc45760ff601b82900360080286901c166000819003613548576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115613583576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016134f7565b80158015613598575081155b156135b957604051635318beb960e01b815260006004820152602401612bd9565b60006135c483613a84565b905060058111156135eb57604051635318beb960e01b815260048101829052602401612bd9565b60006135f684613ac1565b90506000613604838361466d565b9050601c81111561362b57604051635318beb960e01b815260048101829052602401612bd9565b60008060005b838110156136ec5760006136596136488a84613ad3565b60c5811115612c2157612c2161451e565b11156136a357848110613698576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916136e4565b848110156136dd576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101613631565b5083821461371057604051635318beb960e01b815260048101839052602401612bd9565b848114611af857604051635318beb960e01b815260048101829052602401612bd9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061376c5761376c61443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906137eb906137db90614419565b836000630101000160d81b613afb565b90506137f78160f81c90565b949350505050565b600061380c868686613b31565b9050600061381a8484613b53565b905060006138288585613b70565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106138625761386261443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526138f7906138ce90614419565b828686867e60030220202000000000000000000000000000000000000000000000000000613b9c565b50505050505050505050565b6000828260405160200161391892919061474e565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106139935761399361443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090613a0a90613a0290614419565b836000613ece565b90506137f7613a1c8260008451613f08565b613f98565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b61137083838351613a508560200190565b613fa9565b6060838383604051602001613a6c93929190614789565b60405160208183030381529060405290509392505050565b60006008600180613a97600260206145d6565b613aa191906145d6565b613aab91906145d6565b613ab591906145e9565b8260ff911c1692915050565b600060086001613aa1600260206145d6565b6000601b8290036008028360ff911c1660c5811115613af457613af461451e565b9392505050565b6000613b28613b0a8686613903565b60ff858116601b0360080285901c16613b23858761304b565b614069565b95945050505050565b6040805160208101859052908101839052606081810183905290608001613a6c565b8151815160009181810160389190911b1760609190911b17613af4565b60608282604051602001613b859291906147db565b604051602081830303815290604052905092915050565b611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001603613c0d57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051613c00949392919061480a565b60405180910390a2613043565b6000613c1887613959565b905060005b8151811015613cfb576000828281518110613c3a57613c3a61443d565b60200260200101519050613c666001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ce8576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613cb5908c908c908c908c908c908c90600401614849565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050505b5080613cf381614469565b915050613c1d565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051613d32949392919061480a565b60405180910390a26000613d468888613903565b90506000602087019050613d5e826000895184613fa9565b6000613d6985613a84565b1115613ded576000613d7b8a8a6140ba565b878155905060208601915060008060005b613d9588613a84565b8160ff161015613de857613daa8d8d83614110565b9250613dc58a8260ff166028026038011c64ffffffffff1690565b9150613dd48360008488613fa9565b613dde828661466d565b9450600101613d8c565b505050505b60005b83518110156138f7576000848281518110613e0d57613e0d61443d565b60200260200101519050613e396002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ebb576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613e88908e908e908e908e908e908e90600401614849565b600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050505b5080613ec681614469565b915050613df0565b60606137f7613ede858585614110565b6000613f0385613eee8989614190565b9060ff166028026038011c64ffffffffff1690565b6141a3565b6000818311158015613f1b575083518211155b613f57578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401612bd9939291906148a2565b60208401613f65848261466d565b90506000613f7385856145d6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000613af483601560006141c6565b82156140235760208310613fd357602083048401935060208381613fcf57613fcf6148c7565b0692505b82156140235760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161401457505061154f565b50600194909401939182900391015b5b602082106140455780518455600190930192601f1990910190602001614024565b811561154f576000600019600884021c198554835182169119161785555050505050565b60006020821061408f5760208204840193506020828161408b5761408b6148c7565b0691505b508254600882021b602082900380841115613086576001850154600882021c82179150509392505050565b600082826040516020016140cf92919061474e565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161412592919061474e565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000613af461419f84846140ba565b5490565b60405160208101601f19603f848401011660405282825261308685858584614241565b606060006141d48560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816141fa576141fa6148c7565b04905060405193506020840160208202810160405281855260005b82811015614235578451871c825293870193602090910190600101614215565b50505050509392505050565b82156142ca576020831061426b57602083048401935060208381614267576142676148c7565b0692505b82156142ca57602083900360008184101561428f5750600019600884021c1961429a565b50600019600882021c195b8554600886021b8119845116828216178452508184116142bb57505061154f565b50600194909401939182900391015b5b602082106142ec5783548152600190930192601f19909101906020016142cb565b811561154f576000600019600884021c198251865482169119161782525050505050565b60006020828403121561432257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613af457600080fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561437a57600080fd5b813567ffffffffffffffff8082111561439257600080fd5b818401915084601f8301126143a657600080fd5b8135818111156143b8576143b8614352565b604051601f8201601f19908116603f011681019083821181831017156143e0576143e0614352565b816040528281528760208487010111156143f957600080fd5b826020860160208301376000928101602001929092525095945050505050565b805160208083015191908110156134055760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361447c5761447c614453565b5060010190565b60005b8381101561449e578181015183820152602001614486565b50506000910152565b600081518084526144bf816020860160208601614483565b601f01601f19169290920160200192915050565b8381526060602082015260006144ec60608301856144a7565b90507fffffffff0000000000000000000000000000000000000000000000000000000083166040830152949350505050565b634e487b7160e01b600052602160045260246000fd5b600082825180855260208086019550808260051b84010181860160005b8481101561457f57601f1986840301895261456d8383516144a7565b98840198925090830190600101614551565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006145b760c0830185614534565b82810360a08401526145c98185614534565b9998505050505050505050565b8181038181111561022757610227614453565b808202811582820484141761022757610227614453565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000613b2860608301846144a7565b8281526040602082015260006137f760408301846144a7565b602081526000613af46020830184614534565b8082018082111561022757610227614453565b600081518084526020808501945080840160005b838110156146b057815187529582019590820190600101614694565b509495945050505050565b6060815260006146ce6060830186614680565b65ffffffffffff8516602084015282810360408401526126b281856144a7565b8481526080602082015260006147076080830186614680565b65ffffffffffff85166040840152828103606084015261472781856144a7565b979650505050505050565b60008251614744818460208701614483565b9190910192915050565b82815260006020808301845182860160005b8281101561477c57815184529284019290840190600101614760565b5091979650505050505050565b6000845161479b818460208901614483565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600083516147ed818460208801614483565b835190830190614801818360208801614483565b01949350505050565b60808152600061481d6080830187614680565b828103602084015261482f81876144a7565b9050846040840152828103606084015261472781856144a7565b86815260c06020820152600061486260c0830188614680565b828103604084015261487481886144a7565b9050856060840152828103608084015261488e81866144a7565b9150508260a0830152979650505050505050565b6060815260006148b560608301866144a7565b60208301949094525060400152919050565b634e487b7160e01b600052601260045260246000fdfe756e726567697374657253746f7265486f6f6b28627974657333322c616464726573732972656769737465725461626c6528627974657333322c627974657333322c627974657333322c627974657333322c737472696e675b5d2c737472696e675b5d29726567697374657244656c65676174696f6e28616464726573732c627974657333322c627974657329726567697374657246756e6374696f6e53656c6563746f7228627974657333322c737472696e6729726567697374657253797374656d28627974657333322c616464726573732c626f6f6c297472616e7366657242616c616e6365546f4164647265737328627974657333322c616464726573732c75696e7432353629726567697374657253746f7265486f6f6b28627974657333322c616464726573732c75696e7438297265676973746572526f6f7446756e6374696f6e53656c6563746f7228627974657333322c737472696e672c62797465733429626174636843616c6c46726f6d2828616464726573732c627974657333322c6279746573295b5d29756e726567697374657253797374656d486f6f6b28627974657333322c616464726573732972656769737465724e616d65737061636544656c65676174696f6e28627974657333322c627974657333322c6279746573297472616e7366657242616c616e6365546f4e616d65737061636528627974657333322c627974657333322c75696e7432353629726567697374657253797374656d486f6f6b28627974657333322c616464726573732c75696e7438297472616e736665724f776e65727368697028627974657333322c6164647265737329a164736f6c6343000815000a64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65646368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65647365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d617463686368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564476574206c697374206f66206b6579732077697468206120676976656e2076616c75657365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564636f6d707574652074686520746172676574207461626c652073656c6563746f72a164736f6c6343000815000a","sourceMap":"1842:9097:197:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:685;;;:::i;:::-;;2170:134:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9627:127:197;;;:::i;2939:133:107:-;;;:::i;2640:141::-;;;:::i;4959:2346:197:-;;;:::i;7309:1390::-;;;:::i;2456:178:107:-;;;:::i;:::-;;;;;;;:::i;9758:1179:197:-;;;;;;:::i;:::-;;:::i;4046:648::-;;;:::i;4698:257::-;;;:::i;3908:134::-;;;:::i;2310:140:107:-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;1875:141::-;;;:::i;1819:584:101:-;;;:::i;:::-;;;4248:14:203;;4241:22;4223:41;;4211:2;4196:18;1819:584:101;4083:187:203;8703:920:197;;;:::i;2022:142:107:-;;;:::i;1572:26:101:-;;;;;;;;;2595:685:197;2650:37;2681:2;2685:1;2650:30;:37::i;:::-;2625:22;:62;2713:45;2739:18;2713:25;:45::i;:::-;2693:17;:65;2787:45;2813:18;2787:25;:45::i;:::-;2764:20;:68;2917:9;;2854:93;;2890:14;;2917:9;;;;;2934:10;;;;;2854:25;:93::i;:::-;2838:13;:109;;;2969:49;;2986:16;;2969;:49::i;:::-;2953:13;:65;3052:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3025:5:197;:40;;;;-1:-1:-1;;;;;3025:40:197;;;;;;;;;3071:16;3088:18;:16;:18::i;:::-;3071:36;;;;;;;;;;-1:-1:-1;;;;;4459:55:203;;;3071:36:197;;;4441:74:203;4414:18;;3071:36:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3149:5:197;;996:42:24;2304:38;;;;-1:-1:-1;;;;;3149:5:197;;;2304:38:24;;;;;;-1:-1:-1;3113:43:197;;-1:-1:-1;2241:106:24;3113:43:197;3175:16;;;3189:1;3175:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:28:197;;;;:9;;-1:-1:-1;3163:28:197;;;;:::i;:::-;;3212:4;;3197:9;3207:1;3197:12;;;;;;;;:::i;:::-;;;;;;;;;;:19;3234:16;;;3248:1;3234:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3222:28:197;;;;:9;;-1:-1:-1;3222:28:197;;;;:::i;:::-;;3271:4;;3256:9;3266:1;3256:12;;;;;;;;:::i;:::-;;;;;;;;;;:19;2595:685::o;2170:134:107:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2262:35:107;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;9627:127:197:-;9726:23;9747:1;9726:20;:23::i;:::-;9627:127::o;2939:133:107:-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3030:35:107;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2735:39:107;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;4959:2346:197:-;5010:29;:27;:29::i;:::-;5110:5;;5126:13;;5152:24;;;5102:1;5152:24;;;;5033:19:203;;;5152:24:197;;;;;;;;;;5205:1;5068:12:203;;;5210::197;;;;;;;;;;-1:-1:-1;;;5110:113:197;;;5102:1;;-1:-1:-1;;;;;5110:5:197;;:15;;:113;;5126:13;;5141:9;;5152:24;5205:1;;5068:12:203;5110:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5296:30;5329:69;5347:13;;5389:6;5372:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;5372:24:197;;;;;;;;;;;;;5362:35;;;;;;5329:17;:69::i;:::-;5296:102;;5444:38;5453:13;:20;5475:1;5444:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;5488:37;5497:13;5511:1;5497:16;;;;;;;;:::i;:::-;;;;;;;5515:4;;5488:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;5577:5;;5593:13;;5619:24;;;;;;;5033:19:203;;;5619:24:197;;;;;;;;;;5672:1;5068:12:203;;;5677::197;;;;;;;;;;-1:-1:-1;;;5577:113:197;;;-1:-1:-1;;;;;5577:5:197;;;;:15;;:113;;5593:13;;5608:9;;5619:24;5672:1;5068:12:203;5577:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5779:69;5797:13;;5839:6;5822:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;5779:69:197;5763:85;;5894:33;5903:13;:20;5925:1;5894:8;:33::i;:::-;5933:37;5942:13;5956:1;5942:16;;;;;;;;:::i;:::-;;;;;;;5960:4;;5933:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;5976;5985:13;5999:1;5985:16;;;;;;;;:::i;:::-;;;;;;;6003:4;;5976:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6061:14;6078:1;6061:18;;6086:79;;;;;;;;;;;;;;;;;;:14;:79::i;:::-;6171:5;;6187:13;;6213:24;;;;;;;5033:19:203;;;6213:24:197;;;;;;;;;;6266:1;5068:12:203;;;6271::197;;;;;;;;;;-1:-1:-1;;;6171:113:197;;;-1:-1:-1;;;;;6171:5:197;;;;:15;;:113;;6187:13;;6202:9;;6213:24;6266:1;5068:12:203;6171:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6290:14;:12;:14::i;:::-;6393:69;6411:13;;6453:6;6436:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;6393:69:197;6377:85;;6508:38;6517:13;:20;6539:1;6508:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;6552:37;6561:13;6575:1;6561:16;;;;;;;;:::i;:::-;;;;;;;6579:4;;6552:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6678:69;6696:13;;6738:6;6721:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;6678:69:197;6662:85;;6793:38;6802:13;:20;6824:1;6793:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;6837:37;6846:13;6860:1;6846:16;;;;;;;;:::i;:::-;;;;;;;6864:4;;6837:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6909:79;;;;;;;;;;;;;;;;;;:14;:79::i;:::-;6994:5;;7013:13;;6994:44;;;;;-1:-1:-1;;;;;6994:5:197;;;;:18;;:44;;7028:9;;6994:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:14;:12;:14::i;:::-;7147:69;7165:13;;7207:6;7190:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;7147:69:197;7131:85;;7262:38;7271:13;:20;7293:1;7262:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;5004:2301;;;4959:2346::o;7309:1390::-;7346:29;:27;:29::i;:::-;7421:14;7438:1;7421:18;;7446:75;;;;;;;;;;;;;;;;;;:14;:75::i;:::-;7527:5;;7542:13;;7571:24;;;;;;;5033:19:203;;;7571:24:197;;;;;;;;;;5068:12:203;;;7571:24:197;;;;7597:22;;7527:93;;;;-1:-1:-1;;;;;7527:5:197;;;;:14;;:93;;7542:13;;7557:9;;7527:5;;7571:24;;7527:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7626:14;:12;:14::i;:::-;7713:30;7746:63;7764:13;;7800:6;7789:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;7746:63:197;7713:96;;7855:33;7864:13;:20;7886:1;7855:8;:33::i;:::-;7894:32;7903:13;7917:1;7903:16;;;;;;;;:::i;:::-;;;;;;;7921:4;;7894:8;:32::i;:::-;7933:14;7950:1;7933:18;;7997:78;;;;;;;;;;;;;;;;;;:14;:78::i;:::-;8081:5;;8096:13;;8125:24;;;;;;;5033:19:203;;;8125:24:197;;;;;;;;;;5068:12:203;;;8125:24:197;;;;8151:22;;8081:93;;;;-1:-1:-1;;;;;8081:5:197;;;;:14;;:93;;8096:13;;8111:9;;8081:5;;8125:24;;8081:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8180:14;:12;:14::i;:::-;8283:63;8301:13;;8337:6;8326:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;8283:63:197;8267:79;;8392:33;8401:13;:20;8423:1;8392:8;:33::i;:::-;8514:63;8532:13;;8568:6;8557:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;8514:63:197;8498:79;;8623:33;8632:13;:20;8654:1;8623:8;:33::i;:::-;8662:32;8671:13;8685:1;8671:16;;;;;;;;:::i;2456:178:107:-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2572:55:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;9758:1179:197:-;9816:29;:27;:29::i;:::-;9891:5;;9907:13;;9933:23;;;;;;;5033:19:203;;;9933:23:197;;;;;;;;;;9985:1;5068:12:203;;;9990::197;;;;;;;;;;-1:-1:-1;;;9891:112:197;;;-1:-1:-1;;;;;9891:5:197;;;;:15;;:112;;9907:13;;9922:9;;9933:23;9985:1;5068:12:203;9891:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10010:53;;;;;;;;;;;;;;;;;;:14;:53::i;:::-;10126:5;;10139:13;;10160:23;;;;;;5033:19:203;;;10069:30:197;;10102:145;;-1:-1:-1;;;;;10126:5:197;;;;10139:13;;5068:12:203;10160:23:197;;;;;;;-1:-1:-1;;10160:23:197;;;10218:1;10229:12;;;;;;;;;10160:23;10102:16;:145::i;:::-;10069:178;;10253:14;:12;:14::i;:::-;10313:33;10322:13;:20;10344:1;10313:8;:33::i;:::-;10352:32;10361:13;10375:1;10361:16;;;;;;;;:::i;10352:32::-;10436:5;;10452:13;;10478:23;;;;;;;5033:19:203;;;10478:23:197;;;;;;;;;;10530:1;5068:12:203;;;10535::197;;;;;;;;;;-1:-1:-1;;;10436:112:197;;;-1:-1:-1;;;;;10436:5:197;;;;:15;;:112;;10452:13;;10467:9;;10478:23;10530:1;5068:12:203;10436:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10656:5:197;;10669:13;;10690:23;;;;;;5033:19:203;;;10632:145:197;;-1:-1:-1;;;;;;10656:5:197;;;;-1:-1:-1;10669:13:197;;5068:12:203;10690:23:197;4904:182:203;10632:145:197;10616:161;;10823:33;10832:13;:20;10854:1;10823:8;:33::i;:::-;10862:32;10871:13;10885:1;10871:16;;;;;;;;:::i;10862:32::-;10900;10909:13;10923:1;10909:16;;;;;;;;:::i;:::-;;;;;;;10927:4;;10900:8;:32::i;:::-;9810:1127;9758:1179;:::o;4046:648::-;4082:29;:27;:29::i;:::-;4156:13;4172:1;4156:17;;4180:76;;;;;;;;;;;;;;;;;;:14;:76::i;:::-;4262:5;;4278:13;;4304:23;;;;;;;5033:19:203;;;4304:23:197;;;;;;;;;;4356:1;5068:12:203;;;4361::197;;;;;;;;;;-1:-1:-1;;;4262:112:197;;;-1:-1:-1;;;;;4262:5:197;;;;:15;;:112;;4278:13;;4293:9;;4304:23;4356:1;5068:12:203;4262:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:14;:12;:14::i;:::-;4471:30;4504:68;4522:13;;4564:5;4547:23;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;4504:68:197;4471:101;;4618:33;4627:13;:20;4649:1;4618:8;:33::i;:::-;4657:32;4666:13;4680:1;4666:16;;;;;;;;:::i;4698:257::-;4739:5;;4763:19;;;4795:13;;4784:25;;-1:-1:-1;;;;;4739:5:197;;;;:23;;4763:19;;;4784:25;;4795:13;4784:25;7751::203;;;7739:2;7724:18;;7605:177;4784:25:197;;;;;;;;;;;;;4739:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4816:57:197;;;;;4832:40;4816:57;;;8517:98:203;4816:15:197;;-1:-1:-1;4816:15:197;;-1:-1:-1;8490:18:203;;4816:57:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4879:5:197;;4903:19;;;4935:13;;4924:25;;;;;;7751::203;;;;4924::197;;;;;;;;;;7724:18:203;;;4924:25:197;;;;4879:71;;;-1:-1:-1;;;;;4879:5:197;;;;-1:-1:-1;4879:23:197;;-1:-1:-1;4879:71:197;;4903:19;;;;4924:25;4879:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4698:257::o;3908:134::-;3954:83;336:5:16;466:6:59;3963:44:197;401:5:166;;3963:44:197;:::i;:::-;:56;;;;:::i;:::-;:68;;;;:::i;:::-;4033:3;3954:8;:83::i;2310:140:107:-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2887:39:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1875:141;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:101;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:101;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;9561:74:203;;;2221:17:101;9651:18:203;;;9644:34;2196:43:101;;;;;;;;;9534:18:203;;;2196:43:101;;;-1:-1:-1;;1671:64:101;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:101;;;;;;;;;;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:101:o;8703:920:197:-;8748:51;;;;;;;;;;;;;;;;;;:14;:51::i;:::-;8805:25;8833:49;8850:16;8868:13;;8833:16;:49::i;:::-;8805:77;;8888:14;:12;:14::i;:::-;8956:95;8965:14;8956:95;;;8991:14;8956:95;;;;;;;;;;;;;;;;;;;;:8;:95::i;:::-;9107:143;;;;;;;;;;;;;;;;;;;;336:5:16;9130:48:197;;;9107:143;;9187:16;;9107:8;:143::i;:::-;9324:167;9385:33;354:5:166;336::16;9385:33:197;:::i;:::-;9435:9;;9324:167;;;;;;;;;;;;;;;;;9347:72;;;;9324:167;;;;;9435:9;;;;;9324:167;;:8;:167::i;:::-;9543:75;9552:24;:14;:22;:24::i;:::-;9543:75;;;9578:10;;;;;;;;;;;9543:75;;;;;;;;;;;;;;;;;;;;:8;:75::i;:::-;8742:881;8703:920::o;2022:142:107:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2118:39:107;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;225:236:39:-;351:16;;;365:1;351:16;;;;;;;;;301:11;;;;351:16;;;;;;;;;;;;-1:-1:-1;351:16:39;320:47;;390:1;373:11;385:1;373:14;;;;;;;;:::i;:::-;;;;;;:18;;;;;404:52;426:11;439:16;404:21;:52::i;:::-;397:59;;;225:236;;;;;:::o;287:176:41:-;383:19;;;400:1;383:19;;;;;;;;;340:6;;;;383:19;;;;;;;;;;;;-1:-1:-1;383:19:41;354:48;;420:1;408:6;415:1;408:9;;;;;;;;:::i;:::-;;;;;;:13;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;434:24:41;451:6;434:16;:24::i;:::-;427:31;287:176;-1:-1:-1;;;287:176:41:o;941:257:59:-;1028:10;1157:26;399:6;336:5:16;1157:26:59;:::i;:::-;1139:13;;;:45;;336:5:16;1103:31:59;;;;;1084:15;;;:51;:101;;-1:-1:-1;941:257:59;;;;;:::o;1052:559:166:-;1142:10;1158:17;1178:46;1210:13;1178:31;:46::i;:::-;1158:66;;1228:27;1265:51;1302:13;336:5:16;2463:44:59;;2365:148;1265:51:166;1228:89;-1:-1:-1;401:5:166;1544:33;401:5;336::16;1544:33:166;:::i;:::-;:56;;;;:::i;:::-;1521:18;;;:80;;1474:33;354:5;336::16;1474:33:166;:::i;:::-;1390:37;336:5:16;1390:37:166;;;;1440:29;;;;:68;;1355:154;;;;:247;1363:14;1355:247;;-1:-1:-1;;1052:559:166;;;;:::o;514:223:100:-;551:10;600:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;636:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;671:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;700:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;578:156;;;;;:::i;:::-;-1:-1:-1;;;;;11317:15:203;;;11299:34;;11369:15;;;11364:2;11349:18;;11342:43;11421:15;;;11416:2;11401:18;;11394:43;11473:15;;;11468:2;11453:18;;11446:43;11225:3;11210:19;578:156:100;;;;;;;;;;;;;;;;;;;;;;;567:167;;514:223;:::o;3284:620:197:-;3367:5;;3394:13;;3415:22;;3445:20;;3473:17;;3498:15;;;3367:5;3498:15;;;;;;;;;-1:-1:-1;;;;;3367:5:197;;;;:19;;3394:13;3415:22;3445:20;3473:17;3498:15;;;;;;;;;;;;;;;;;-1:-1:-1;;3521:15:197;;;3534:1;3521:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:175;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3754:48;;;;;;;;;;;;;;;;;;:14;:48::i;:::-;3808:5;;3832:19;;;3864:13;;3853:25;;-1:-1:-1;;;;;3808:5:197;;;;:23;;3832:19;;;3853:25;;3864:13;3853:25;7751::203;;;7739:2;7724:18;;7605:177;3853:25:197;;;;;;;;;;;;;3808:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:14;:12;:14::i;4802:354:167:-;4945:16;;;4959:1;4945:16;;;;;;;;;4878:30;;4916:26;;4945:16;;;;;;;;;;;;-1:-1:-1;4945:16:167;4916:45;;4982:9;4967;4977:1;4967:12;;;;;;;;:::i;:::-;;;;;;:24;;;;;4998:18;5019:51;5047:8;5057:9;5068:1;5019:27;:51::i;:::-;4998:72;;5084:66;:44;5105:5;5112:1;5115:5;:12;5084:20;:44::i;:::-;:64;:66::i;:::-;5076:75;4802:354;-1:-1:-1;;;;;4802:354:167:o;5476:178:101:-;5557:1;5552;:6;5548:100;;5579:30;5605:3;5579:30;;;;;;:::i;:::-;;;;;;;;5623:14;5632:1;5635;5623:8;:14::i;4377:185::-;4464:1;4459;:6;4455:101;;4486:31;4513:3;4486:31;;;;;;:::i;:::-;;;;;;;;4531:14;4540:1;4543;4531:8;:14::i;5209:262::-;5271:1;5266;:6;5262:203;;5293:41;;;;;13065:2:203;13047:21;;;13104:2;13084:18;;;13077:30;13143:34;13138:2;13123:18;;13116:62;13214:4;13209:2;13194:18;;13187:32;13251:3;13236:19;;12863:398;5293:41:101;;;;;;;;5353:31;5382:1;5353:31;;;;;;:::i;:::-;;;;;;;;5403;5432:1;5403:31;;;;;;:::i;:::-;;;;;;;;5448:6;:4;:6::i;330:580:0:-;394:39;;;;;;;;;14506:21:203;;;;14563:2;14543:18;;;14536:30;14602:22;14582:18;;;14575:50;309:37:102;14677:20:203;;;14670:52;394:8:0;;;;14642:19:203;;394:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;389:53;;330:580;:::o;389:53::-;468:22;462:36;;;;;:::i;:::-;;;502:1;462:41;558:22;511:150;;;;;;;;:::i;:::-;;;;;;;;;;;;;447:220;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;681:12;694:4;681:18;;;;;;:::i;:::-;;;;;;;;;;;;;;703:1;681:23;736:4;706:67;;;;;;;;:::i;:::-;;;;;;;;;;;;;673:101;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;780:22:0;:29;805:4;780:22;:29;:::i;:::-;;317:28:102;309:37;;-1:-1:-1;;;;;815:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;868:9;842:23;:35;883:22;;;;;;;;:20;;;;:22;;;;;309:37:102;;883:22:0;;;;;;;309:37:102;883:20:0;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:580;:::o;914:534::-;953:11;967:9;987:39;;;;;;;;;14506:21:203;;;;14563:2;14543:18;;;14536:30;14602:22;14582:18;;;14575:50;309:37:102;14677:20:203;;;14670:52;953:23:0;;-1:-1:-1;987:8:0;;;;14642:19:203;;987:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:53;;1028:7;914:534::o;982:53::-;1151:15;1201:3;1195;1169:23;;:29;;;;:::i;:::-;:35;;;;:::i;:::-;:39;;1207:1;1169:39;:::i;:::-;1151:57;;1232:1;1222:7;:11;1214:49;;;;;;;20008:2:203;1214:49:0;;;19990:21:203;20047:2;20027:18;;;20020:30;20086:27;20066:18;;;20059:55;20131:18;;1214:49:0;19806:349:203;1214:49:0;1308:7;1269:12;1282:22;1269:36;;;;;;:::i;:::-;;;;;;;;;;;;;;:46;1321:16;:45;;;;;;;-1:-1:-1;1321:45:0;;;;;;;1343:22;1321:45;;:::i;:::-;;1372:38;1387:22;1372:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:38::i;:::-;1416:27;;;;;;;;;-1:-1:-1;1416:27:0;;:22;;:27;;:22;:27;:::i;4095:277:101:-;4163:1;4158;:6;4154:212;;4185:44;;;;;22145:2:203;22127:21;;;22184:2;22164:18;;;22157:30;22223:34;22218:2;22203:18;;22196:62;22294:7;22289:2;22274:18;;22267:35;22334:3;22319:19;;21943:401;4185:44:101;;;;;;;;4248:34;4280:1;4248:34;;;;;;:::i;:::-;;;;;;;;4301;4333:1;4301:34;;;;;;:::i;1346:620:165:-;1513:30;1598:31;1632:43;1649:16;1667:7;1632:16;:43::i;:::-;1598:77;;1719:18;1766:1;1745:11;:18;:22;1741:139;;;1800:10;1812:14;1828:11;1783:57;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1775:65;;1741:139;;;-1:-1:-1;1865:10:165;1741:139;1899:64;1917:5;1924:20;1956:5;1946:16;;;;;;1899:17;:64::i;:::-;1883:80;1346:620;-1:-1:-1;;;;;;;;1346:620:165:o;2991:160:59:-;3054:7;3118:26;399:6;336:5:16;3118:26:59;:::i;:::-;3084:61;;;;;2991:160;-1:-1:-1;2991:160:59:o;1776:1887:3:-;1879:11;1898:19;1923;1948;1999:16;1970:19;:26;:45;;;;:::i;:::-;1948:67;;647:2:30;2025:11:3;:30;2021:102;;;2064:59;;;;;;;;23840:25:203;;;647:2:30;23881:18:203;;;23874:34;23813:18;;2064:59:3;23666:248:203;2021:102:3;902:1:30;2133:16:3;:37;2129:129;;;2185:73;;;;;;;;23840:25:203;;;902:1:30;23881:18:203;;;23874:34;23813:18;;2185:73:3;23666:248:203;2129:129:3;2364:9;2359:795;2383:19;:26;2379:1;:30;2359:795;;;2421:24;2448:19;2468:1;2448:22;;;;;;;;:::i;:::-;;;;;;;2421:49;;2482:16;2502:1;2482:21;2478:200;;2522:35;;;;;;;;;;;;;;2478:200;334:2:30;2576:16:3;:28;2572:106;;;2623:46;;;;;;;;;;;;;;2572:106;2816:16;2801:31;;;;537:1:30;3108::3;3104;437:2:30;3086:19:3;:23;3085:40;3057:19;3077:1;3057:22;;;;;;;;:::i;:::-;;;;;;;3049:77;;3034:92;;;;3136:3;;;;;;;2413:741;2359:795;;;-1:-1:-1;537:1:30;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3410:41:3;;;3395:56;;;;;537:1:30;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3472:26:3;;:61;;3457:76;;;;;537:1:30;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3554:52:3;;;;3539:67;;;;;1776:1887;-1:-1:-1;;;;1776:1887:3:o;1247:2059:17:-;1315:6;647:2:30;1333:7:17;:14;:33;1329:85;;;1399:7;:14;1375:39;;;;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;1329:85:17;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:30;2531::17;2527;437:2:30;2509:19:17;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:17;;1621:956;;;;902:1:30;2621:13:17;:34;2617:85;;;2664:38;;;;;;;;7751:25:203;;;7724:18;;2664:38:17;7605:177:203;2617:85:17;2802:14;;:30;;;537:1:30;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:17;;;3080:51;;;;;537:1:30;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:17;;;3137:57;;;;;537:1:30;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:17;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:17:o;18525:431:24:-;18661:12;18681:21;18705:17;:15;:17::i;:::-;18681:41;-1:-1:-1;18757:4:24;-1:-1:-1;;;;;18732:30:24;;;18728:224;;18779:63;18805:7;18814:8;18824:17;18779:25;:63::i;:::-;18772:70;;;;;18728:224;18870:75;;;;;-1:-1:-1;;;;;18870:37:24;;;;;:75;;18908:7;;18917:8;;18927:17;;18870:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18870:75:24;;;;;;;;;;;;:::i;18728:224::-;18675:281;18525:431;;;;;:::o;1957:570:18:-;2048:5;2146:3;2137:5;:12;;:34;;;;;2160:4;:11;2153:3;:18;;2137:34;2131:85;;2199:4;2205:5;2212:3;2181:35;;;;;;;;;;;;;:::i;2131:85::-;2284:4;2274:15;;2331:17;2343:5;2274:15;2331:17;:::i;:::-;;-1:-1:-1;2354:12:18;2369:11;2375:5;2369:3;:11;:::i;:::-;643:17;2505:15;2497:3;2485:15;;;;2484:37;;;;;;-1:-1:-1;;;;;1957:570:18:o;45218:220:34:-;45284:24;45316:30;45349:32;45367:6;45375:2;45379:1;45349:17;:32::i;2409:432:101:-;2997:42;2985:55;3066:16;2452:359;;2652:67;;;1671:64;2652:67;;;26685:74:203;;;2677:17:101;26775:18:203;;;26768:34;;;;2712:4:101;26818:18:203;;;26811:34;2489:11:101;;1671:64;2586:43;;26658:18:203;;2652:67:101;;;-1:-1:-1;;2652:67:101;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:101;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:101;2820:7;:14;;;;;;;;2409:432::o;1754:155:0:-;1818:86;317:28:102;309:37;;-1:-1:-1;;;;;1860:11:0;;1872:12;1885:4;1872:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;1860:31;;;;;;;;;;;;7751:25:203;;;7739:2;7724:18;;7605:177;1860:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1860:31:0;;;;;;;;;;;;:::i;:::-;1898:4;1830:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1818:11;:86::i;5633:380:167:-;5807:16;;;5821:1;5807:16;;;;;;;;;5740:30;;5778:26;;5807:16;;;;;;;;;;;;-1:-1:-1;5807:16:167;5778:45;;5844:9;5829;5839:1;5829:12;;;;;;;;:::i;:::-;;;;;;;;;;:24;5881:46;;;;;5860:18;;-1:-1:-1;;;;;5881:22:167;;;;;:46;;5904:8;;5914:9;;5860:18;;5881:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5881:46:167;;;;;;;;;;;;:::i;:::-;5860:67;;5941:66;:44;5962:5;5969:1;5972:5;:12;5941:20;:44::i;:66::-;5933:75;5633:380;-1:-1:-1;;;;;;5633:380:167:o;3195:520:1:-;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:1:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:1;;3195:520;-1:-1:-1;;3195:520:1:o;3592:121::-;-1:-1:-1;3707:1:1;;3195:520;-1:-1:-1;;3195:520:1:o;3592:121::-;3270:445;3195:520;;;:::o;1766:227:24:-;996:42;1855:22;1816:7;;-1:-1:-1;;;;;1855:22:24;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1825:168;1766:227;:::o;36604:522:20:-;36740:12;36864:257;36903:79;36945:7;36954:8;36964:17;36903:41;:79::i;:::-;37000:1;37019:93;37094:17;37019:66;37067:7;37076:8;37019:47;:66::i;:::-;:74;6801:16:15;;922;6801;834;6790:27;6750:68;6728:92;;;6613:218;37019:93:20;36864:12;:257::i;:::-;36851:270;36604:522;-1:-1:-1;;;;36604:522:20:o;2611:1127:36:-;2731:22;2761:21;2785;:11;2881:3:18;2859:25;;2785:104;:21:36;2761:45;-1:-1:-1;643:17:18;3122:38;;2812:20:36;2974:11;3122:38:18;2974:11:36;2959:26;;;;:::i;:::-;;2945:40;;3094:4;3088:11;3079:20;;3137:4;3130:5;3126:16;3197:2;3184:11;3180:20;3166:12;3162:39;3156:4;3149:53;3245:11;3238:5;3231:26;3288:1;3265:463;3304:11;3301:1;3298:18;3265:463;;;3698:20;;3677:42;;3656:64;;3570:31;;;;3483:4;3465:23;;;;3391:1;3384:9;3265:463;;;3269:28;;3046:688;;;2611:1127;;;;;:::o;5630:121:115:-;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:115;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;51939:274:20:-;52083:7;52188;52197:8;52171:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52161:46;;;;;;52140:17;52133:25;;52113:45;;;41681:34;52113:45;:94;52105:103;;52098:110;;51939:274;;;;;:::o;53136:301::-;53257:13;53349:82;53380:48;53410:7;53419:8;53380:29;:48::i;:::-;4640:21:19;;4534:137;4971:665;5383:4;5377:11;5424:4;5412:17;;-1:-1:-1;;5302:14:19;5471:26;;;5302:14;5298:28;5443:4;5436:63;5543:6;5535;5528:22;5561:51;5566:14;5582:6;5590;5598:13;5561:4;:51::i;181:376:115:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;52568:230:20:-;52689:7;52773;52782:8;52756:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52756:35:20;;;;;;;;;52746:46;;52756:35;52746:46;;;;41772:40;52719:73;;52568:230;-1:-1:-1;;;52568:230:20:o;6001:2377:19:-;6118:10;;6114:1540;;6271:2;6261:6;:12;6257:122;;6334:2;6325:6;:11;6307:29;;;;6358:2;6348:12;;;;;;:::i;:::-;;;;6257:122;6469:10;;6465:1183;;6677:2;:11;;;6551:21;6735:22;;;6731:133;;;-1:-1:-1;;;537:1:30;1116:25:31;;1094:48;1092:51;6731:133:19;;;-1:-1:-1;;;537:1:30;1116:25:31;;1094:48;1092:51;6731:133:19;7058:14;7052:21;7037:12;7029:6;7025:25;7021:53;7297:4;7293:9;7277:13;7271:20;7267:36;7204:4;7192:10;7188:21;7133:184;7106:13;7086:243;;7388:13;7378:6;:23;7374:36;;7403:7;;;;7374:36;-1:-1:-1;7551:1:19;7533:19;;;;;7606:23;;;;;7564:30;6465:1183;7683:253;7700:2;7690:6;:12;7683:253;;7794:21;;7772:44;;7869:1;7851:19;;;;-1:-1:-1;;7909:12:19;;;;7897:2;7880:19;7683:253;;;8004:10;;8000:374;;8024:12;-1:-1:-1;;537:1:30;1116:25:31;;1094:48;1092:51;8306:20:19;;8221:21;;8217:32;;8328:9;;8302:36;8166:184;8123:237;;-1:-1:-1;6001:2377:19;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:681:203;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:203;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:203;;14:681;-1:-1:-1;;;;;;14:681:203:o;700:1697::-;904:4;933:2;973;962:9;958:18;1003:2;992:9;985:21;1026:6;1061;1055:13;1092:6;1084;1077:22;1118:2;1108:12;;1151:2;1140:9;1136:18;1129:25;;1213:2;1203:6;1200:1;1196:14;1185:9;1181:30;1177:39;1251:2;1243:6;1239:15;1272:1;1293;1303:1065;1319:6;1314:3;1311:15;1303:1065;;;1388:22;;;1412:66;1384:95;1372:108;;1503:13;;1590:9;;-1:-1:-1;;;;;1586:58:203;1571:74;;1684:11;;1678:18;1716:15;;;1709:27;;;1797:19;;1543:15;;;1829:24;;;1919:21;;;;1964:1;;1887:2;1875:15;;;1978:282;1994:8;1989:3;1986:17;1978:282;;;2075:15;;2092:66;2071:88;2057:103;;2229:17;;;;2022:1;2013:11;;;;;2186:14;;;;1978:282;;;-1:-1:-1;2346:12:203;;;;2283:5;-1:-1:-1;;;2311:15:203;;;;1345:1;1336:11;1303:1065;;;-1:-1:-1;2385:6:203;;700:1697;-1:-1:-1;;;;;;;;;700:1697:203:o;2402:180::-;2461:6;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;-1:-1:-1;2553:23:203;;2402:180;-1:-1:-1;2402:180:203:o;2587:250::-;2672:1;2682:113;2696:6;2693:1;2690:13;2682:113;;;2772:11;;;2766:18;2753:11;;;2746:39;2718:2;2711:10;2682:113;;;-1:-1:-1;;2829:1:203;2811:16;;2804:27;2587:250::o;2842:330::-;2884:3;2922:5;2916:12;2949:6;2944:3;2937:19;2965:76;3034:6;3027:4;3022:3;3018:14;3011:4;3004:5;3000:16;2965:76;:::i;:::-;3086:2;3074:15;-1:-1:-1;;3070:88:203;3061:98;;;;3161:4;3057:109;;2842:330;-1:-1:-1;;2842:330:203:o;3177:616::-;3229:3;3267:5;3261:12;3294:6;3289:3;3282:19;3320:4;3361:2;3356:3;3352:12;3386:11;3413;3406:18;;3463:6;3460:1;3456:14;3449:5;3445:26;3433:38;;3505:2;3498:5;3494:14;3526:1;3536:231;3550:6;3547:1;3544:13;3536:231;;;3621:5;3615:4;3611:16;3606:3;3599:29;3649:38;3682:4;3673:6;3667:13;3649:38;:::i;:::-;3745:12;;;;3641:46;-1:-1:-1;3710:15:203;;;;3572:1;3565:9;3536:231;;;-1:-1:-1;3783:4:203;;3177:616;-1:-1:-1;;;;;;;3177:616:203:o;3798:280::-;3997:2;3986:9;3979:21;3960:4;4017:55;4068:2;4057:9;4053:18;4045:6;4017:55;:::i;4526:184::-;-1:-1:-1;;;4575:1:203;4568:88;4675:4;4672:1;4665:15;4699:4;4696:1;4689:15;4715:184;-1:-1:-1;;;4764:1:203;4757:88;4864:4;4861:1;4854:15;4888:4;4885:1;4878:15;5228:469;5289:3;5327:5;5321:12;5354:6;5349:3;5342:19;5380:4;5409:2;5404:3;5400:12;5393:19;;5431:5;5428:1;5421:16;5473:2;5470:1;5460:16;5494:1;5504:168;5518:6;5515:1;5512:13;5504:168;;;5579:13;;5567:26;;5613:12;;;;5660:1;5648:14;;;;5533:9;5504:168;;;-1:-1:-1;5688:3:203;;5228:469;-1:-1:-1;;;;;5228:469:203:o;5702:798::-;6091:6;6080:9;6073:25;6134:3;6129:2;6118:9;6114:18;6107:31;6054:4;6161:65;6221:3;6210:9;6206:19;6198:6;6161:65;:::i;:::-;6274:9;6266:6;6262:22;6257:2;6246:9;6242:18;6235:50;6308:33;6334:6;6326;6308:33;:::i;:::-;6294:47;;6377:6;6372:2;6361:9;6357:18;6350:34;6433:9;6425:6;6421:22;6415:3;6404:9;6400:19;6393:51;6461:33;6487:6;6479;6461:33;:::i;6505:368::-;6740:6;6729:9;6722:25;6783:2;6778;6767:9;6763:18;6756:30;6703:4;6803:64;6863:2;6852:9;6848:18;6840:6;6803:64;:::i;6878:722::-;7252:6;7241:9;7234:25;7295:3;7290:2;7279:9;7275:18;7268:31;7215:4;7322:65;7382:3;7371:9;7367:19;7359:6;7322:65;:::i;:::-;7435:4;7427:6;7423:17;7418:2;7407:9;7403:18;7396:45;7489:9;7481:6;7477:22;7472:2;7461:9;7457:18;7450:50;7517:33;7543:6;7535;7517:33;:::i;:::-;7509:41;;;7587:6;7581:3;7570:9;7566:19;7559:35;6878:722;;;;;;;;:::o;8000:368::-;-1:-1:-1;;;;;8209:6:203;8205:55;8194:9;8187:74;8297:2;8292;8281:9;8277:18;8270:30;8168:4;8317:45;8358:2;8347:9;8343:18;8335:6;8317:45;:::i;8626:184::-;-1:-1:-1;;;8675:1:203;8668:88;8775:4;8772:1;8765:15;8799:4;8796:1;8789:15;8815:125;8880:9;;;8901:10;;;8898:36;;;8914:18;;:::i;8945:437::-;9024:1;9020:12;;;;9067;;;9088:61;;9142:4;9134:6;9130:17;9120:27;;9088:61;9195:2;9187:6;9184:14;9164:18;9161:38;9158:218;;-1:-1:-1;;;9229:1:203;9222:88;9333:4;9330:1;9323:15;9361:4;9358:1;9351:15;9689:430;9886:66;9878:6;9874:79;9869:3;9862:92;9844:3;9983:6;9977:13;9999:74;10066:6;10062:1;10057:3;10053:11;10046:4;10038:6;10034:17;9999:74;:::i;:::-;10093:16;;;;10111:1;10089:24;;9689:430;-1:-1:-1;;;9689:430:203:o;10124:287::-;10253:3;10291:6;10285:13;10307:66;10366:6;10361:3;10354:4;10346:6;10342:17;10307:66;:::i;:::-;10389:16;;;;;10124:287;-1:-1:-1;;10124:287:203:o;10416:277::-;10483:6;10536:2;10524:9;10515:7;10511:23;10507:32;10504:52;;;10552:1;10549;10542:12;10504:52;10584:9;10578:16;10637:5;10630:13;10623:21;10616:5;10613:32;10603:60;;10659:1;10656;10649:12;10698:184;-1:-1:-1;;;10747:1:203;10740:88;10847:4;10844:1;10837:15;10871:4;10868:1;10861:15;11500:907;12025:6;12014:9;12007:25;12068:6;12063:2;12052:9;12048:18;12041:34;12111:6;12106:2;12095:9;12091:18;12084:34;12154:6;12149:2;12138:9;12134:18;12127:34;12198:3;12192;12181:9;12177:19;12170:32;11988:4;12225:56;12276:3;12265:9;12261:19;12253:6;12225:56;:::i;:::-;12330:9;12322:6;12318:22;12312:3;12301:9;12297:19;12290:51;12358:43;12394:6;12386;12358:43;:::i;:::-;12350:51;11500:907;-1:-1:-1;;;;;;;;;11500:907:203:o;12412:446::-;12662:2;12651:9;12644:21;12701:1;12696:2;12685:9;12681:18;12674:29;12739:7;12734:2;12723:9;12719:18;12712:35;12785:3;12778:4;12767:9;12763:20;12756:33;12625:4;12806:46;12847:3;12836:9;12832:19;12824:6;12806:46;:::i;13430:348::-;13660:2;13649:9;13642:21;13623:4;13680:49;13725:2;13714:9;13710:18;13343:2;13331:15;;13378:12;13371:4;13362:14;;13355:36;13416:2;13407:12;;13266:159;13680:49;13672:57;;13765:6;13760:2;13749:9;13745:18;13738:34;13430:348;;;;:::o;13947:::-;14177:2;14166:9;14159:21;14140:4;14197:49;14242:2;14231:9;14227:18;13860:2;13848:15;;13895:12;13888:4;13879:14;;13872:36;13933:2;13924:12;;13783:159;14733:780;14783:3;14824:5;14818:12;14853:36;14879:9;14853:36;:::i;:::-;14908:1;14925:18;;;14952:191;;;;15157:1;15152:355;;;;14918:589;;14952:191;15000:66;14989:9;14985:82;14980:3;14973:95;15123:6;15116:14;15109:22;15101:6;15097:35;15092:3;15088:45;15081:52;;14952:191;;15152:355;15183:5;15180:1;15173:16;15212:4;15257:2;15254:1;15244:16;15282:1;15296:165;15310:6;15307:1;15304:13;15296:165;;;15388:14;;15375:11;;;15368:35;15431:16;;;;15325:10;;15296:165;;;15300:3;;;15490:6;15485:3;15481:16;15474:23;;14918:589;;;;;14733:780;;;;:::o;15518:664::-;15868:66;15863:3;15856:79;15838:3;15954:47;15997:2;15992:3;15988:12;15980:6;15954:47;:::i;:::-;16021:66;16010:78;;16117:31;16112:2;16104:11;;16097:52;16173:2;16165:11;;15518:664;-1:-1:-1;;;15518:664:203:o;16187:220::-;16336:2;16325:9;16318:21;16299:4;16356:45;16397:2;16386:9;16382:18;16374:6;16356:45;:::i;16706:694::-;17049:66;17044:3;17037:79;17019:3;17145:6;17139:13;17161:75;17229:6;17224:2;17219:3;17215:12;17208:4;17200:6;17196:17;17161:75;:::i;:::-;17300:66;17295:2;17255:16;;;;17287:11;;;17280:87;-1:-1:-1;17391:2:203;17383:11;;16706:694;-1:-1:-1;16706:694:203:o;17405:545::-;17507:2;17502:3;17499:11;17496:448;;;17543:1;17568:5;17564:2;17557:17;17613:4;17609:2;17599:19;17683:2;17671:10;17667:19;17664:1;17660:27;17654:4;17650:38;17719:4;17707:10;17704:20;17701:47;;;-1:-1:-1;17742:4:203;17701:47;17797:2;17792:3;17788:12;17785:1;17781:20;17775:4;17771:31;17761:41;;17852:82;17870:2;17863:5;17860:13;17852:82;;;17915:17;;;17896:1;17885:13;17852:82;;;17856:3;;;17405:545;;;:::o;18186:1482::-;18312:3;18306:10;18339:18;18331:6;18328:30;18325:56;;;18361:18;;:::i;:::-;18390:97;18480:6;18440:38;18472:4;18466:11;18440:38;:::i;:::-;18434:4;18390:97;:::i;:::-;18542:4;;18606:2;18595:14;;18623:1;18618:793;;;;19455:1;19472:6;19469:89;;;-1:-1:-1;19524:19:203;;;19518:26;19469:89;-1:-1:-1;;18083:1:203;18079:11;;;18075:84;18071:89;18061:100;18167:1;18163:11;;;18058:117;19571:81;;18588:1074;;18618:793;5175:1;5168:14;;;5212:4;5199:18;;-1:-1:-1;;18654:79:203;;;18842:236;18856:7;18853:1;18850:14;18842:236;;;18945:19;;;18939:26;18924:42;;19037:27;;;;19005:1;18993:14;;;;18872:19;;18842:236;;;18846:3;19106:6;19097:7;19094:19;19091:261;;;19167:19;;;19161:26;-1:-1:-1;;19250:1:203;19246:14;;;19262:3;19242:24;19238:97;19234:102;19219:118;19204:134;;19091:261;-1:-1:-1;;;;;19398:1:203;19382:14;;;19378:22;19365:36;;-1:-1:-1;18186:1482:203:o;19673:128::-;19740:9;;;19761:11;;;19758:37;;;19775:18;;:::i;20160:197::-;20288:3;20313:38;20347:3;20339:6;20313:38;:::i;20362:1576::-;20481:3;20475:4;20472:13;20469:26;;20488:5;;20362:1576::o;20469:26::-;20518:37;20550:3;20544:10;20518:37;:::i;:::-;20578:18;20570:6;20567:30;20564:56;;;20600:18;;:::i;:::-;20629:97;20719:6;20679:38;20711:4;20705:11;20679:38;:::i;20629:97::-;20752:1;20780:2;20772:6;20769:14;20797:1;20792:889;;;;21725:1;21742:6;21739:89;;;-1:-1:-1;21794:19:203;;;21788:26;21739:89;-1:-1:-1;;18083:1:203;18079:11;;;18075:84;18071:89;18061:100;18167:1;18163:11;;;18058:117;21841:81;;20762:1170;;20792:889;5175:1;5168:14;;;5212:4;5199:18;;-1:-1:-1;;20828:79:203;;;5175:1;5168:14;;;5212:4;5199:18;;21073:9;21095:251;21109:7;21106:1;21103:14;21095:251;;;21191:21;;;21185:28;21170:44;;21241:1;21314:18;;;;21269:15;;;;21132:4;21125:12;21095:251;;;21099:3;21374:6;21365:7;21362:19;21359:263;;;21435:21;;21429:28;-1:-1:-1;;21532:3:203;21520:1;21516:14;;;21512:24;21508:97;21504:102;21489:118;21474:134;;;-1:-1:-1;;21668:1:203;21652:14;;;21648:22;21635:36;;-1:-1:-1;20362:1576:203:o;23055:606::-;23292:3;23330:6;23324:13;23346:66;23405:6;23400:3;23393:4;23385:6;23381:17;23346:66;:::i;:::-;23434:16;;23459:21;;;23505:13;;23527:81;23505:13;23592:4;23581:16;;;;23562:17;;23527:81;:::i;:::-;23628:20;23650:4;23624:31;;23055:606;-1:-1:-1;;;;;23055:606:203:o;23919:168::-;23992:9;;;24023;;24040:15;;;24034:22;;24020:37;24010:71;;24061:18;;:::i;24092:435::-;24145:3;24183:5;24177:12;24210:6;24205:3;24198:19;24236:4;24265:2;24260:3;24256:12;24249:19;;24302:2;24295:5;24291:14;24323:1;24333:169;24347:6;24344:1;24341:13;24333:169;;;24408:13;;24396:26;;24442:12;;;;24477:15;;;;24369:1;24362:9;24333:169;;24532:441;24794:6;24783:9;24776:25;24837:2;24832;24821:9;24817:18;24810:30;24757:4;24857:56;24909:2;24898:9;24894:18;24886:6;24857:56;:::i;:::-;24849:64;;24961:4;24953:6;24949:17;24944:2;24933:9;24929:18;24922:45;24532:441;;;;;;:::o;24978:673::-;25053:5;25083:18;25124:2;25116:6;25113:14;25110:40;;;25130:18;;:::i;:::-;25264:2;25258:9;25330:2;25318:15;;-1:-1:-1;;25314:24:203;;;25340:2;25310:33;25306:42;25294:55;;;25364:18;;;25384:22;;;25361:46;25358:72;;;25410:18;;:::i;:::-;25450:10;25446:2;25439:22;25479:6;25470:15;;25509:6;25501;25494:22;25549:3;25540:6;25535:3;25531:16;25528:25;25525:45;;;25566:1;25563;25556:12;25525:45;25579:66;25638:6;25631:4;25623:6;25619:17;25614:3;25579:66;:::i;:::-;;;;24978:673;;;;;:::o;25656:457::-;25735:6;25788:2;25776:9;25767:7;25763:23;25759:32;25756:52;;;25804:1;25801;25794:12;25756:52;25837:9;25831:16;25870:18;25862:6;25859:30;25856:50;;;25902:1;25899;25892:12;25856:50;25925:22;;25978:4;25970:13;;25966:27;-1:-1:-1;25956:55:203;;26007:1;26004;25997:12;25956:55;26030:77;26099:7;26094:2;26088:9;26083:2;26079;26075:11;26030:77;:::i;26118:360::-;26321:2;26310:9;26303:21;26284:4;26341:45;26382:2;26371:9;26367:18;26359:6;26341:45;:::i;:::-;26417:2;26402:18;;26395:34;;;;-1:-1:-1;26460:2:203;26445:18;26438:34;26333:53;26118:360;-1:-1:-1;26118:360:203:o;27319:764::-;27709:14;27704:3;27697:27;27679:3;27753:6;27747:13;27769:75;27837:6;27832:2;27827:3;27823:12;27816:4;27808:6;27804:17;27769:75;:::i;:::-;27908:3;27903:2;27863:16;;;27895:11;;;27888:24;27937:13;;27959:76;27937:13;28021:2;28013:11;;28006:4;27994:17;;27959:76;:::i;:::-;28055:17;28074:2;28051:26;;27319:764;-1:-1:-1;;;;27319:764:203:o;28544:184::-;-1:-1:-1;;;28593:1:203;28586:88;28693:4;28690:1;28683:15;28717:4;28714:1;28707:15;28733:639;28983:6;28978:3;28971:19;28953:3;29009:2;29042;29037:3;29033:12;29074:6;29068:13;29139:2;29131:6;29127:15;29160:1;29170:175;29184:6;29181:1;29178:13;29170:175;;;29247:13;;29233:28;;29283:14;;;;29320:15;;;;29206:1;29199:9;29170:175;","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","testGetKeysWithValue(uint256)":"76270d01","testGetKeysWithValueGas()":"39e2edb9","testGetTargetTableId()":"e004c9e9","testInstall()":"786bd7bc","testInstallTwice()":"78cdebf9","testMatchingByteSizes()":"79fe553d","testSetAndDeleteRecordHook()":"4a8cf93d","testSetField()":"615295ee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_TooManyFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"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\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"testGetKeysWithValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetKeysWithValueGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTargetTableId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testInstall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testInstallTwice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testMatchingByteSizes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSetAndDeleteRecordHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSetField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/KeysWithValueModule.t.sol\":\"KeysWithValueModuleTest\"},\"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\":\"0xf0b03a19a92cd2e9950c25b6d307e5aeca4a64be8932194431197d0570e9bf3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef2a14f0fb6e5bcab0c70d3648d247c3919c63eabc8b226be4d1f359d8af860f\",\"dweb:/ipfs/QmXi1HgeUNmS9GwSFMDJa8QVT7KiENG9VjgBB78hpHrHV6\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xe0bc789337c31551a3ad42fd63aba2489a3aa8567d9f3140b3abc9abdc0d2f1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d5313aaa217e563083d9e4ded9479d673b17ba71a189b6a0315839812a5c57a\",\"dweb:/ipfs/QmQJfHFMSPrS6p6q3rzKX6HDNCVsQQAWxGdd383FSfKChd\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x7335db1982f43f867f90c3e151e3cc6d6ad40ee76401e2e06b8fdff257d6526f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a49d381ef0a0defc90f41166bc7f45cf31e8d82d1517e6a323a90e79b4e45d1f\",\"dweb:/ipfs/QmP46aGM8cYPkn6C4rGnrumcg24g7aUzCAez41zPs2rqhx\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xbe6448092b2d0c77a7cb282e8a452732587a6e04802ad21f4da27a9d6ef1496a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d098409f9352637599b897d046ad23e20894ea3a8460687df2a13d2d960966d\",\"dweb:/ipfs/Qmd3w6dSq3kQVQQtH94wcKRzkaNEDWcE2m9bgbWWDqNE3w\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x9c3ba4c889db2cc2155ddfc966f5df45cf73739cacc358e0ed71ee9d34d9cef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bc8e8abc3d5ce2af06c3a9f37ebe69cb287514c4572327b09d26121133646e5\",\"dweb:/ipfs/QmY7BmHTiGAJabiLZXLx2zsRs9HfZzK97kwmnwfCidcHZ5\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0xf2ac4fe9b94aba49819b8bfd9952a73e21bd30aa956aa3a0ba4333d0e4891e91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41b0bb60c662aab1287d0ec92cdd7ce07e6a732ed8d5e6045e14c7ba49d4ce8\",\"dweb:/ipfs/QmYMHVsvJpDrpFW24uHmJFjA8tbr7WjyP4KAFnroApP7Br\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0xd886462cb60be5929d17bed2740225effa8149ef6358378e9e1f385d58673be9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f66f49397097f9445159417fb61bd362de7849b1e572a3a9b5cb0536636a3d9\",\"dweb:/ipfs/QmPYEREcaUyoqykx4hjJG4k3P9HYmAM4gAxvGsJT6yWqvn\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x08f813a47c9b17e647c4051b310fb7b04e2af87c5440f4c916e4e6b5bfb29710\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a7966452656a25e3555e39f10121a69690b0ecf23524c073f61f9ea31a922f3\",\"dweb:/ipfs/QmQiEsLYyZFBZbcAbzwSK2dKxpj7xbs7CPLt3py3uGZSSN\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x5a32d464b56d13b9cf93f15c366e1ba8c4e2242bbad3990829c7f674e49ac2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adf1460050534fbdf4b2615c9dee03aed9d84bc0198cb082b10e579ab01d568e\",\"dweb:/ipfs/Qma2zugjeP748bkmbYhqVrzrKcdn18KLH3TZMfVuhHq2M4\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x6f21b3b6e6c202a1f9a5ba3ce7a656d38b51e1f1755a7ba3d1bc4c083a94aa94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5499fa030ff8dee5db70851dc678a9f0eb7c2a548f27fd5a3ecd0b44038642a\",\"dweb:/ipfs/Qme3ZGKP1YYMt98rFJ8uRRZ2jgWaqNdKAS9HaEP4HYPrB6\"]},\"node_modules/@latticexyz/store/src/StoreData.sol\":{\"keccak256\":\"0x4e451128c33a01d520c1944b3db42a62c158aea8fa11e786a58a0f719a189526\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2f98f30a7b2c9ef020e274b87ae0fa66d1380343a00ecf6bd796ae31cd9b279\",\"dweb:/ipfs/QmYXHSBn4Hp7cimDLKy86ep23v2VRUS6dLPevcVMs3dJrw\"]},\"node_modules/@latticexyz/store/src/StoreHook.sol\":{\"keccak256\":\"0xd267686b3961da4d9a39e2cd39b89d7074ed27a516a03085bb69a6efea0a424e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8c96a99b6c8dab12799165b888ed5c647638a1114bec138dd65ad46c6d1cf34\",\"dweb:/ipfs/QmaMAkfEmRivfHts72hfYiiQiVc15QSRsXkPHM3d2AbFjf\"]},\"node_modules/@latticexyz/store/src/StoreRead.sol\":{\"keccak256\":\"0xd918972009bd009dbad7032b8ff076928cec18c0891bb12493a1799df83e9cfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://966bb2090623b9a6aae0e5df9ae4c9c21bbde97867a239303c934c765eebf738\",\"dweb:/ipfs/QmRui6vJ8UfNHAueDyRuSXfW7wwuxRxAHgGjB7wVJEB6cJ\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x6ba24d7c79f616a40a5a28466a113c3b491196ed43a236124ae9f52f940ebae6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c055a11a1a52d820e5f71c1434b94b2083304d94655d7dbcefb7c7b4e42a095f\",\"dweb:/ipfs/QmUU119ZHn9S3ExK8ZhNyHbdxWMu3RasLDZco9vR9KDQJw\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0x0d5cb177f2e3f968b5d8962727ee95f6ec12f2f02635bd3388e8ba658a513782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1f989b97f782ba8a7b7aa85c79564a4eeca21e8c0c255d287d5a2fb42700e9\",\"dweb:/ipfs/QmXVeQ9p6b8GRMYE8QWPR89xRsMWRQsxPMgQHsUvMWbLeb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x92e5306a8572903c6ed2ede4713de8356221511aaa9043a115010d8dc504d95d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c36a58e47472e86c8b995c33eef1be95c7073d30e8e4b59b4c65413cbe34f695\",\"dweb:/ipfs/QmaHP8apm4XnMSQkMT4Wysu8LxVSnH5JcPne5PV8YPyJNv\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xc1ce9530a25c9e1ebc6a4d1789f26b9607f09b38132a64ced9cfcf34e3011e91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d67414de99946c6c199fce2700a2765e279d4fa9c0ff665035193883221979ee\",\"dweb:/ipfs/QmViGZuPahjSGa18UtAjSXbAao9wuMK4m6hxjtX6pDqqU7\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xe050786c52cfb1da012bba86744d2a89f8aa6507342e498c96fbe013b0d6302f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a62d2f8eb85ddc6de911a0b415bbcf666001ecfd15e681f718cb9ae053a3a793\",\"dweb:/ipfs/QmXZHfKXZNQRJMqLpS15kgZgMfMUkoB8FhypDWDaYaqtJG\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0xca2e2218bccd60ed690f29152b234a553f3021cad4903c0cfb5cf757fa41d650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65f3bf5b851072ba1367ec74b3c66cab6185f3c8c8d6ada007cdc8c513465d25\",\"dweb:/ipfs/QmdHsBNc7ccvTK7VDB9yAktdbRNBrEsUdBNFZTqdq8Vao2\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol\":{\"keccak256\":\"0xfe4f71b7fb06de6ba0913882bd26144aefe4a66574f5e9aac12b998b3354fb06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c68240bf15eeb39641d347ea918607175265965e688bfdf8d87855143c67d47\",\"dweb:/ipfs/QmX1ZSNs8KhqwozScUGCXcQd1g2UqHfpe7XjQotrpef6GC\"]},\"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol\":{\"keccak256\":\"0xf3e2bd87ad4e739859c154c04273b00570d42f4bc7baf811686f55d500131bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1c595200d3c743daa570303bc53a567fa496f58250d40730e49c1ff5d592c07\",\"dweb:/ipfs/Qmd8rfJ2YvqCmPgAm4tuhqzyz9UQ3s6p7ozvqfakwvg86b\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0x963a4fc3983bf92a473e67f49b62b8f52d94360bb904664b24bbff844e6a4a41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cf0ea9f68a1a9738b116259dc2cb06e98cc591d82b2c271b0e70e8daa742952\",\"dweb:/ipfs/QmRVxuBtGgw49v3KGm3HTBNS5ZJ9wEvENwipJEFEtoiaZ4\"]},\"node_modules/@latticexyz/world/src/Delegation.sol\":{\"keccak256\":\"0x09324c2d43eac847a312e1879de1019d1b6eb333d9c9e0d42c449d76f5d9fc89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6f751c31f1305ffb328b1cd4bcc3999439f63f2b8ad9a33bbebdccdf60e716\",\"dweb:/ipfs/QmRfj5xWwC3wzFr9iAQBr1pAQmLYPJhDRXyRcJpYfhDdoE\"]},\"node_modules/@latticexyz/world/src/ERC165Checker.sol\":{\"keccak256\":\"0x26204bcfddbc272eae391f4512a629f53697867d582ea8cabcd6a8e04a255270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46944bac8253250ba3f645a6164df8e996738bc76a544867677e54ede57619a1\",\"dweb:/ipfs/QmY1XSxQY9MuQSEvGaeQT6kqmeJ3VhYyRRTfzCkRmdsWsX\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x9ace961d4e283e0974762fddb14bb15e256d1d1086c813957fa0a0c9abeca900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ce3e6875d5ae61e12f3a36b8cdd2aa42e137f4d356109f89101fc7ea2d38f35\",\"dweb:/ipfs/QmbCarvuyKZhaEKebPnzwxCrXPGZvZB5AnJxfXgCgex9py\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x96b32546011ad67c3d03815dfd9375e9f8a255f98aaf89880afa1c8548d372b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58294560e554b8d8c6e3e870768523aa034631d4908ce25e730bb372ce7795c\",\"dweb:/ipfs/QmU9KfaZRNmQdoZE5bNrMN6QJCm7HGfsCBPvBGbMLLq9E5\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xc7da95c29b6dc76d21ea866139e4cefeceeec094326811a4e5afafe494d6a881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3048f85d42046b460ff285e38091a18ff848a489670e278b233669baecc2d6ef\",\"dweb:/ipfs/QmPbeYVnPefPmtpaXXAGAjEGXjducZf9sF8fKqgfENCpwj\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0xd0060c58956a1fe0855bcd9099e8764922f0d3b96f9683bd9622b8da05524f19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6098c318c6b2606aa0a31554c6dd5923b6c106c24daa2f1119311cd4f4e47bce\",\"dweb:/ipfs/QmZTSSpfmNWakCYvFFZhd7zjmnkNPuSeYKhfCQwZ2gjRWL\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x2ec34d896ea59d4bd47b99c1c1476c9c8f94f21d8af5f35ceebfeced4dd48ec2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97dc97678b209c5e69d8b45adb3fe8c8d8b8fffbd725a8deb462c790a6a58a01\",\"dweb:/ipfs/QmbUntQJj9n55PDjXcdJtmsWSPdWzyhbe6UCK9iHJuq3XM\"]},\"node_modules/@latticexyz/world/src/World.sol\":{\"keccak256\":\"0x2fa1e13f367a2110bce824ed5fc8b3d74cf60b0075492a7831dc887fc47de54b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7afd2c5fddf3d635a25a03aeb34991036ec8a9a59f44ea323f8c1f3f17bbf14\",\"dweb:/ipfs/QmbYiNvJmD8mCjeAY83Jebb54dTcgYd4Knr9jbKnMcDwf6\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0x7daa706e844ddc2ffa9ff2197139fa73faee614030c5d541e339c219129005ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62da4413068810e6fa32ef87b2a83386a0084ec2bb26722515127e5893281cbc\",\"dweb:/ipfs/Qma5SLsHRq3igdXfKz24XSGfMd3dXyNxv52WSTsrcLRWPV\"]},\"node_modules/@latticexyz/world/src/codegen/index.sol\":{\"keccak256\":\"0x01fd0a07213a3f79997c859ae5f8c19fc3f1cc3a0fe7201b50c3e32082538610\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://902a6bc854a9b0134a97e47dea61a330c0e24d5eb315615c21c879b57c5da7c8\",\"dweb:/ipfs/Qmcx9Zr24GbnrRvEFMGgyzZcwmeXxbyz87Lb8BonKRW6PX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf103db760a912d42dac0c409feb2d1929864ae81f89a7186047ea6f98b9db2ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ee556bbf7f7aa2f221e1f5a9d80caca8d4e5bc9282f59d5611a7c9ea7c06024\",\"dweb:/ipfs/QmQouopBhk5VuzdUSVc9MC3C5nhbm1MgHmQhemf6w66WxE\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreRegistrationSystem.sol\":{\"keccak256\":\"0xb5e41596b245dbb0f4317174ae08c963a55df07cfd1a2e65bd082628bc446350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://007f0e50c7f40d3932c5db51f729148f7d67573ef2f429043d901c7b017d7f43\",\"dweb:/ipfs/QmdmnY9RFyGjhmjSif3wZYHSMhtkTNhxi74dzVzsQBgi2N\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x2fd9727c04a06dacd957c320e5c91844e389df164a02f6c35e169852d974a1f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfab99486f9011db6590d75947a8510540bc5d6160866cfd1fafe16daa024961\",\"dweb:/ipfs/QmPAyaKJwhawWcyegfHv1QkJYzdAMpySok2gDKVPpw1rvD\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x8bcbbd417bc83b92c1d40444cf2e617d8a5c7e4d7486dcc3467fef2470338bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedd3d896ccc900aa9a4f53ec7a9245e5630f51e847a0e2356e12e4492084a8e\",\"dweb:/ipfs/QmRQJwy5XYHGXT973hYdPUR6cG8fSDPi8kPgprYJXUfuVf\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSignatures.sol\":{\"keccak256\":\"0xed3112d1dfeb8afa9be21cc3bf70f7af31b0443e9579f080e7ac2640664b8426\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571277bf66022fb97fb43948379b560c6d6904dc0272f91b30d3ab16a5b76c91\",\"dweb:/ipfs/QmNhb9rrrW8KXzLfg3eiUR86hnRhaD2kzN5mAcWuWQ4pu5\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0x334f30cf5cac3f795cd63f15582a6a50c91c91644000a1a5c3005a4c17b075ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79369df71ea24d4eb6579f9edc5ac3f8c8d4fe2563db7438c957f7cd8fd696d4\",\"dweb:/ipfs/QmZBQv6xBpXWocxy4nX5o8XJYuvi88y69YmHJYUGgGFRN9\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceDelegationControl.sol\":{\"keccak256\":\"0x760eec42bbfbdb497a80fa704956c82bca38d21ee220a1671ac7fc1364ddc0ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://313982b1791750271b460fa94c3ea54eeb2d88b3093ab2cace6014a6c9ee387b\",\"dweb:/ipfs/QmVagcNagZkFZeVieECp53rjZEYBB6LU8HP4BjKzfiC4Qr\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb59422d88ec4d7ea5870bfbcd26cce216808aca2524d78be044e6246c2e0c8cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://690489521124436a18dd3b2efc1c28636488414b82c6dabf743bde1c8f9ab70b\",\"dweb:/ipfs/Qma89LxYq3aBdNZnsiH2qKuq47gmSn9QpeoFe23pahus5Z\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xa6dd49d8d3bc8ce68d45ebc01f087ef83b1d758e9967322fd15cf641331c2527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a80f0382a7bad47b1b947bc9b447eafb35599b0e11a9bdcb45c7cddb3bc1375a\",\"dweb:/ipfs/QmRBWAsqUya6uxXn5fqJPgnkytDfp8HXixcymwTmYKuoPc\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0x43cb675401e3e464a93ae0ddaefdb6ac03b734b7226ba89b8727d6421e50e2e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a37a9d6881779113b1b78b0e9175b64089da881be1176fc764ceaee9fc65436\",\"dweb:/ipfs/QmXgCyyJUAAn99Czgv51nkr6qi9hFduhJpybkn95ipJHJL\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xd0128bfb43b2afdc0c0410b6a642ce7b5ae4e5c90c367e542ea0b3e8d02eba22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59fd7075792470f625e15e7c7a5d377b6657b26ce22a82c705888c2773840330\",\"dweb:/ipfs/QmdPygA9VW1Zdds4FTejEDSEKzaPWDFvXP1VqsaJB6KF8q\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x20ad3ee26ef118cb8b055803c4a5ef2aac4791ce9e8720fc6a549120c53ab37a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c1a2e3abb381a36696aeb3588a2604706e88b8505caddbdb696f96249e6231\",\"dweb:/ipfs/QmQvPVUFGBRpbaK9et2L7rVVmCByD1gDhaFvtJNL7cM7d2\"]},\"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol\":{\"keccak256\":\"0xa9a5ebaa93ce6fe8b1f2cef5fd1350ea755d2ab0ff7ae2a5c369e493c2d205d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba46cddd36f4a69e120e11edb0cbb8cd8d8363636544fe21e9712e41786f231\",\"dweb:/ipfs/Qmc87CiTYDULyEwTZmbfHcrqx2gNRrkSakYdS6wRXi7LQN\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/CoreModule.sol\":{\"keccak256\":\"0x1854f68cb404adb13910c7cb5dc91b4db83b33705a92717485df16742acfac43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1119dea8f6a76977e6327b789fae9023eedd63df9a50b6a7b4c6190f02de10a9\",\"dweb:/ipfs/QmXJ6YthgxX5ybpCgcECBHC2uPnycnC7mzh3KTbF9vZWDz\"]},\"node_modules/@latticexyz/world/src/modules/core/CoreRegistrationSystem.sol\":{\"keccak256\":\"0x4969fab8e65df062b3ee1d5c55c5dc980b4c8d531a90977e5f318500eafe2125\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ca575dec2084e8ec0558c6866af383fea4f5111079f06db8c78b1a7dc78417\",\"dweb:/ipfs/QmZCHfyhMQ4Z4sJvW9uzYhuTNTThoRwH8Usqx6q95AbNSb\"]},\"node_modules/@latticexyz/world/src/modules/core/constants.sol\":{\"keccak256\":\"0xbe6408440b758884cfff869ae6c8aefa476ab97b07855dd51571bb358e9ecae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854427618d6d700c2dbba45cc475bd341b14612d4dc05af687371dc725e0a11e\",\"dweb:/ipfs/QmXueKPv6WDyAwjwej5XHnBTMQeUYEbtgNryqt4Tnsj3sK\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/AccessManagementSystem.sol\":{\"keccak256\":\"0x29cd0f1a2ec749bc25774682977cad4dd238602a3b4e926cc08bb7781fabf2bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d1f0b23e9ed303b543e943abcb5641d0744e2c1ae003df6dea877a070f96e0\",\"dweb:/ipfs/QmfQj5P8Lw6DfMfVnhsAaDCtN6iYfKp8V4uxX5LQQnzxLo\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/BalanceTransferSystem.sol\":{\"keccak256\":\"0x8170eb46e9716b8040b9a95d8740e1e897538afb1da95a1994cba7907522b4fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b19dbd9f3ca1f541883879985589095f851bdd201d9cdde2d6742dda9ad01a2e\",\"dweb:/ipfs/QmTgSMvsVFAEMK72D7myoJtEykDxAMweueJNEagSChyA1Y\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/BatchCallSystem.sol\":{\"keccak256\":\"0xf24b9cc96cccb8ef98c9aa8585e4a5c003b3b8a00c5a9c6db5c750460960a7d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa918bcba66835a0866a11c5b43b5da11d68fb68c697f89a273d5dd3a5f1f5c\",\"dweb:/ipfs/QmZyyVdNoUiyLMimmNkZkQv5o86k4sGyo1CGEMrt794eC2\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/ModuleInstallationSystem.sol\":{\"keccak256\":\"0xc9b0efce92d9be51ff564fa18efc13365a64cde8dd2e2ef88bac4abe7d432a3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86d2a49cc96ad7e783490c6e44aa2d078444505edc49d1061711200a607441a6\",\"dweb:/ipfs/QmbKkJnRkUE47uWwmhqqmaVozRXLt45ebSZbZnpJpnJfvj\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/StoreRegistrationSystem.sol\":{\"keccak256\":\"0xf7edf07894b8c6938b77491d36944d22b37b9e9e8105a689120f66e76450d3dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55be67cb294109fbb9a323c5f788aa7d1b844f7bc57f5bed6b758d2d80447a24\",\"dweb:/ipfs/QmUv8FwmcV6mP2o7aZiZkRxrnQdnaRLYiFWs8ifaEadKJr\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/WorldRegistrationSystem.sol\":{\"keccak256\":\"0xbae6190d740add0ee986f82b1143f8f160d232e0f3c2eb4d7908040f07b45427\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://022b092b8757770e5799d22de9b09b774f6ecae9820e91847f794785fbdf7198\",\"dweb:/ipfs/QmaSUvvjFYZT2NmNUQJer7L9qAz4P1KJVQ8Z2Giro9Cpxm\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/requireInterface.sol\":{\"keccak256\":\"0x229777eeaac1099104e10832f59bc02f3494a5b6de8225810a3b175643d97039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bf7e4df65be1808418d8dbb1decb346ec2a3b7a11b895818ae90f319522f795\",\"dweb:/ipfs/Qmco2UnqR9oop9ppY2Zbv1LWCQKGM99A7j6iWGsMCrwSmy\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0xdd201aa30700e70c35c1d4e50c375e511d798961183c8531f947c2d15969debb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9c165b1beb7c1d3f75107407c34a5b3424ec8cb322d494892bceed23323ffb9\",\"dweb:/ipfs/QmdH8rtgJaENsMc6HodAbahKg7PiZUJwoZufnHCw3TwrBx\"]},\"node_modules/@latticexyz/world/src/version.sol\":{\"keccak256\":\"0x5db84611779a814a582b5559f636640e3599dba1f36b99c529a19ce73b2d2d44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b06ae2f3b888ba3dc719b2d19f60deb7c3398324f636c9dad0b92706dfc08f5a\",\"dweb:/ipfs/QmaLgppohesJhF3ZdMWwM8NHcLiv8SRSCArS4QssfG2dC1\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xc7e0aa6e4746b2d0e2eace7e462adf2f03dbc7f0c880794a577bfdbce426fcc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7538caf090fc69fff272049cfc00d0f35ae63ee700c2091b9cc4ed5709a3b45\",\"dweb:/ipfs/QmYriK2VpsVAePPLTP6mDZkTYMT9AkgmC2C93ktjVMDaP4\"]},\"node_modules/@latticexyz/world/test/createCoreModule.sol\":{\"keccak256\":\"0xb0baab0e9c67c1b945a95291aed4e16cf73ed7b95bc671076fd1a7d960e043d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b603f7c656fed7e592cd598ca94ac46fab6ed31a6d951cf4661bc7f3f24166f2\",\"dweb:/ipfs/QmeNDUPYh3yuUj6oQ19VgKYruY1kDWenNhywzWYXeuxy39\"]},\"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/modules/keyswithvalue/KeysWithValueHook.sol\":{\"keccak256\":\"0xee64527269e80d32ca25db99c417f582a0b134c9fb878cf14489baa2aaec40e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37714f1fa7cf984130a08a0e9f320817cbe0053eae44d432676951f3b90653f\",\"dweb:/ipfs/QmZjWVwJPrsscv9zJU8jBfMn39yDquYePcACRYQW6qiaFx\"]},\"src/modules/keyswithvalue/KeysWithValueModule.sol\":{\"keccak256\":\"0x7d1be4afa4605e30f6381dd7a600d149652ca34c38f0bc11cbdb471e332f2101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f31e9c2d2c014abec416191b92aaf6a73e0cf96f5b8ef2ac9352d5c33fc7d06\",\"dweb:/ipfs/QmVHBiNqQCNuycj6vEEfCtD2JScDBr3RHTUo31jrXRg5MK\"]},\"src/modules/keyswithvalue/constants.sol\":{\"keccak256\":\"0xf8745d975bd2f321e676d083a215513b114c70f7d5a105244dfe444a78e74de5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7fc161f890a9ee2edf731f57fcfee2ab4e3b4bebb9470df7850a138c08fc2c8\",\"dweb:/ipfs/QmVyyFaR1tzTYgmiGHnumdXQKsjb5qRVPMS3uTRX1ik3XL\"]},\"src/modules/keyswithvalue/getKeysWithValue.sol\":{\"keccak256\":\"0xe3257d260cd8265b4de124487be15fb57afd665ddf82c4ef23abbfc82a112fb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c467264fe3e4cb0d67e9290bbcf82b5519a8b55930a7f9dd40f97abf8fc14ef4\",\"dweb:/ipfs/Qmd7E7mv2UeWnaMFEcCkwvDGxnrogS4voPkskvpZZg25Gv\"]},\"src/modules/keyswithvalue/getTargetTableId.sol\":{\"keccak256\":\"0xa7d235a9c96925a340aeaa166c8b67d289b4450ca59f0645052207d318030d78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dce50e51faa63a75e051d8ccf463271674f588088fca6ab168e06a5fe8cc16b\",\"dweb:/ipfs/QmP2eZFJPMiazcEhdv9Q5SJYRNna7CHoV6o8bxURzRtCHh\"]},\"src/modules/keyswithvalue/tables/KeysWithValue.sol\":{\"keccak256\":\"0x299bc2f1d01b60296358eeab8f45246dcde05f33fa90491bcb75369179295722\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a8b2191c6de0ba782759c15b1ba35bbb769a0b77f3ba4f1f0c6b56249abfb47\",\"dweb:/ipfs/QmRaYb73HShtmrkmrjSWkkUfgbFvwzK4VroACQT2LSGkqM\"]},\"src/modules/utils/ArrayLib.sol\":{\"keccak256\":\"0x5063027c39c927b80c84ac3bb36d20e19fbbddb746380c1efaf2f33f6fec30b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c49eab76687709db420cbe52737610563f44344ef13608e0809e38c43179cb43\",\"dweb:/ipfs/QmRdQ7iW5j51AVJWin8aaKmj6Xj97ZV5vjfVjG5RqYG5xB\"]},\"test/KeysWithValueModule.t.sol\":{\"keccak256\":\"0xd699ce5d6b8f8eb941e1db4d31f6cd31100a733ae7bd26f669f49028504f94cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb132276a416734f1644c391457910fac374babea6937ea9d9ed2726d3db3591\",\"dweb:/ipfs/QmUpw56k1b2tmrF2imGQoAWg3ETH9xf3VTQinrAgCmF5gw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayoutLib_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayoutLib_TooManyFields"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"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":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testGetKeysWithValue"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetKeysWithValueGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTargetTableId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testInstall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testInstallTwice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testMatchingByteSizes"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSetAndDeleteRecordHook"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSetField"}],"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/KeysWithValueModule.t.sol":"KeysWithValueModuleTest"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/gas-report/src/GasReporter.sol":{"keccak256":"0xf0b03a19a92cd2e9950c25b6d307e5aeca4a64be8932194431197d0570e9bf3b","urls":["bzz-raw://ef2a14f0fb6e5bcab0c70d3648d247c3919c63eabc8b226be4d1f359d8af860f","dweb:/ipfs/QmXi1HgeUNmS9GwSFMDJa8QVT7KiENG9VjgBB78hpHrHV6"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xe0bc789337c31551a3ad42fd63aba2489a3aa8567d9f3140b3abc9abdc0d2f1b","urls":["bzz-raw://6d5313aaa217e563083d9e4ded9479d673b17ba71a189b6a0315839812a5c57a","dweb:/ipfs/QmQJfHFMSPrS6p6q3rzKX6HDNCVsQQAWxGdd383FSfKChd"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x7335db1982f43f867f90c3e151e3cc6d6ad40ee76401e2e06b8fdff257d6526f","urls":["bzz-raw://a49d381ef0a0defc90f41166bc7f45cf31e8d82d1517e6a323a90e79b4e45d1f","dweb:/ipfs/QmP46aGM8cYPkn6C4rGnrumcg24g7aUzCAez41zPs2rqhx"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xbe6448092b2d0c77a7cb282e8a452732587a6e04802ad21f4da27a9d6ef1496a","urls":["bzz-raw://1d098409f9352637599b897d046ad23e20894ea3a8460687df2a13d2d960966d","dweb:/ipfs/Qmd3w6dSq3kQVQQtH94wcKRzkaNEDWcE2m9bgbWWDqNE3w"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x9c3ba4c889db2cc2155ddfc966f5df45cf73739cacc358e0ed71ee9d34d9cef9","urls":["bzz-raw://0bc8e8abc3d5ce2af06c3a9f37ebe69cb287514c4572327b09d26121133646e5","dweb:/ipfs/QmY7BmHTiGAJabiLZXLx2zsRs9HfZzK97kwmnwfCidcHZ5"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0xf2ac4fe9b94aba49819b8bfd9952a73e21bd30aa956aa3a0ba4333d0e4891e91","urls":["bzz-raw://c41b0bb60c662aab1287d0ec92cdd7ce07e6a732ed8d5e6045e14c7ba49d4ce8","dweb:/ipfs/QmYMHVsvJpDrpFW24uHmJFjA8tbr7WjyP4KAFnroApP7Br"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0xd886462cb60be5929d17bed2740225effa8149ef6358378e9e1f385d58673be9","urls":["bzz-raw://6f66f49397097f9445159417fb61bd362de7849b1e572a3a9b5cb0536636a3d9","dweb:/ipfs/QmPYEREcaUyoqykx4hjJG4k3P9HYmAM4gAxvGsJT6yWqvn"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0x08f813a47c9b17e647c4051b310fb7b04e2af87c5440f4c916e4e6b5bfb29710","urls":["bzz-raw://0a7966452656a25e3555e39f10121a69690b0ecf23524c073f61f9ea31a922f3","dweb:/ipfs/QmQiEsLYyZFBZbcAbzwSK2dKxpj7xbs7CPLt3py3uGZSSN"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x5a32d464b56d13b9cf93f15c366e1ba8c4e2242bbad3990829c7f674e49ac2f7","urls":["bzz-raw://adf1460050534fbdf4b2615c9dee03aed9d84bc0198cb082b10e579ab01d568e","dweb:/ipfs/Qma2zugjeP748bkmbYhqVrzrKcdn18KLH3TZMfVuhHq2M4"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x6f21b3b6e6c202a1f9a5ba3ce7a656d38b51e1f1755a7ba3d1bc4c083a94aa94","urls":["bzz-raw://e5499fa030ff8dee5db70851dc678a9f0eb7c2a548f27fd5a3ecd0b44038642a","dweb:/ipfs/Qme3ZGKP1YYMt98rFJ8uRRZ2jgWaqNdKAS9HaEP4HYPrB6"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreData.sol":{"keccak256":"0x4e451128c33a01d520c1944b3db42a62c158aea8fa11e786a58a0f719a189526","urls":["bzz-raw://c2f98f30a7b2c9ef020e274b87ae0fa66d1380343a00ecf6bd796ae31cd9b279","dweb:/ipfs/QmYXHSBn4Hp7cimDLKy86ep23v2VRUS6dLPevcVMs3dJrw"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreHook.sol":{"keccak256":"0xd267686b3961da4d9a39e2cd39b89d7074ed27a516a03085bb69a6efea0a424e","urls":["bzz-raw://c8c96a99b6c8dab12799165b888ed5c647638a1114bec138dd65ad46c6d1cf34","dweb:/ipfs/QmaMAkfEmRivfHts72hfYiiQiVc15QSRsXkPHM3d2AbFjf"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreRead.sol":{"keccak256":"0xd918972009bd009dbad7032b8ff076928cec18c0891bb12493a1799df83e9cfa","urls":["bzz-raw://966bb2090623b9a6aae0e5df9ae4c9c21bbde97867a239303c934c765eebf738","dweb:/ipfs/QmRui6vJ8UfNHAueDyRuSXfW7wwuxRxAHgGjB7wVJEB6cJ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0x6ba24d7c79f616a40a5a28466a113c3b491196ed43a236124ae9f52f940ebae6","urls":["bzz-raw://c055a11a1a52d820e5f71c1434b94b2083304d94655d7dbcefb7c7b4e42a095f","dweb:/ipfs/QmUU119ZHn9S3ExK8ZhNyHbdxWMu3RasLDZco9vR9KDQJw"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0x0d5cb177f2e3f968b5d8962727ee95f6ec12f2f02635bd3388e8ba658a513782","urls":["bzz-raw://6c1f989b97f782ba8a7b7aa85c79564a4eeca21e8c0c255d287d5a2fb42700e9","dweb:/ipfs/QmXVeQ9p6b8GRMYE8QWPR89xRsMWRQsxPMgQHsUvMWbLeb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0x92e5306a8572903c6ed2ede4713de8356221511aaa9043a115010d8dc504d95d","urls":["bzz-raw://c36a58e47472e86c8b995c33eef1be95c7073d30e8e4b59b4c65413cbe34f695","dweb:/ipfs/QmaHP8apm4XnMSQkMT4Wysu8LxVSnH5JcPne5PV8YPyJNv"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xc1ce9530a25c9e1ebc6a4d1789f26b9607f09b38132a64ced9cfcf34e3011e91","urls":["bzz-raw://d67414de99946c6c199fce2700a2765e279d4fa9c0ff665035193883221979ee","dweb:/ipfs/QmViGZuPahjSGa18UtAjSXbAao9wuMK4m6hxjtX6pDqqU7"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xe050786c52cfb1da012bba86744d2a89f8aa6507342e498c96fbe013b0d6302f","urls":["bzz-raw://a62d2f8eb85ddc6de911a0b415bbcf666001ecfd15e681f718cb9ae053a3a793","dweb:/ipfs/QmXZHfKXZNQRJMqLpS15kgZgMfMUkoB8FhypDWDaYaqtJG"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0xca2e2218bccd60ed690f29152b234a553f3021cad4903c0cfb5cf757fa41d650","urls":["bzz-raw://65f3bf5b851072ba1367ec74b3c66cab6185f3c8c8d6ada007cdc8c513465d25","dweb:/ipfs/QmdHsBNc7ccvTK7VDB9yAktdbRNBrEsUdBNFZTqdq8Vao2"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol":{"keccak256":"0xfe4f71b7fb06de6ba0913882bd26144aefe4a66574f5e9aac12b998b3354fb06","urls":["bzz-raw://3c68240bf15eeb39641d347ea918607175265965e688bfdf8d87855143c67d47","dweb:/ipfs/QmX1ZSNs8KhqwozScUGCXcQd1g2UqHfpe7XjQotrpef6GC"],"license":"MIT"},"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol":{"keccak256":"0xf3e2bd87ad4e739859c154c04273b00570d42f4bc7baf811686f55d500131bbf","urls":["bzz-raw://a1c595200d3c743daa570303bc53a567fa496f58250d40730e49c1ff5d592c07","dweb:/ipfs/Qmd8rfJ2YvqCmPgAm4tuhqzyz9UQ3s6p7ozvqfakwvg86b"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0x963a4fc3983bf92a473e67f49b62b8f52d94360bb904664b24bbff844e6a4a41","urls":["bzz-raw://2cf0ea9f68a1a9738b116259dc2cb06e98cc591d82b2c271b0e70e8daa742952","dweb:/ipfs/QmRVxuBtGgw49v3KGm3HTBNS5ZJ9wEvENwipJEFEtoiaZ4"],"license":"MIT"},"node_modules/@latticexyz/world/src/Delegation.sol":{"keccak256":"0x09324c2d43eac847a312e1879de1019d1b6eb333d9c9e0d42c449d76f5d9fc89","urls":["bzz-raw://bd6f751c31f1305ffb328b1cd4bcc3999439f63f2b8ad9a33bbebdccdf60e716","dweb:/ipfs/QmRfj5xWwC3wzFr9iAQBr1pAQmLYPJhDRXyRcJpYfhDdoE"],"license":"MIT"},"node_modules/@latticexyz/world/src/ERC165Checker.sol":{"keccak256":"0x26204bcfddbc272eae391f4512a629f53697867d582ea8cabcd6a8e04a255270","urls":["bzz-raw://46944bac8253250ba3f645a6164df8e996738bc76a544867677e54ede57619a1","dweb:/ipfs/QmY1XSxQY9MuQSEvGaeQT6kqmeJ3VhYyRRTfzCkRmdsWsX"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x9ace961d4e283e0974762fddb14bb15e256d1d1086c813957fa0a0c9abeca900","urls":["bzz-raw://3ce3e6875d5ae61e12f3a36b8cdd2aa42e137f4d356109f89101fc7ea2d38f35","dweb:/ipfs/QmbCarvuyKZhaEKebPnzwxCrXPGZvZB5AnJxfXgCgex9py"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x96b32546011ad67c3d03815dfd9375e9f8a255f98aaf89880afa1c8548d372b9","urls":["bzz-raw://c58294560e554b8d8c6e3e870768523aa034631d4908ce25e730bb372ce7795c","dweb:/ipfs/QmU9KfaZRNmQdoZE5bNrMN6QJCm7HGfsCBPvBGbMLLq9E5"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xc7da95c29b6dc76d21ea866139e4cefeceeec094326811a4e5afafe494d6a881","urls":["bzz-raw://3048f85d42046b460ff285e38091a18ff848a489670e278b233669baecc2d6ef","dweb:/ipfs/QmPbeYVnPefPmtpaXXAGAjEGXjducZf9sF8fKqgfENCpwj"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0xd0060c58956a1fe0855bcd9099e8764922f0d3b96f9683bd9622b8da05524f19","urls":["bzz-raw://6098c318c6b2606aa0a31554c6dd5923b6c106c24daa2f1119311cd4f4e47bce","dweb:/ipfs/QmZTSSpfmNWakCYvFFZhd7zjmnkNPuSeYKhfCQwZ2gjRWL"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x2ec34d896ea59d4bd47b99c1c1476c9c8f94f21d8af5f35ceebfeced4dd48ec2","urls":["bzz-raw://97dc97678b209c5e69d8b45adb3fe8c8d8b8fffbd725a8deb462c790a6a58a01","dweb:/ipfs/QmbUntQJj9n55PDjXcdJtmsWSPdWzyhbe6UCK9iHJuq3XM"],"license":"MIT"},"node_modules/@latticexyz/world/src/World.sol":{"keccak256":"0x2fa1e13f367a2110bce824ed5fc8b3d74cf60b0075492a7831dc887fc47de54b","urls":["bzz-raw://a7afd2c5fddf3d635a25a03aeb34991036ec8a9a59f44ea323f8c1f3f17bbf14","dweb:/ipfs/QmbYiNvJmD8mCjeAY83Jebb54dTcgYd4Knr9jbKnMcDwf6"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0x7daa706e844ddc2ffa9ff2197139fa73faee614030c5d541e339c219129005ff","urls":["bzz-raw://62da4413068810e6fa32ef87b2a83386a0084ec2bb26722515127e5893281cbc","dweb:/ipfs/Qma5SLsHRq3igdXfKz24XSGfMd3dXyNxv52WSTsrcLRWPV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/index.sol":{"keccak256":"0x01fd0a07213a3f79997c859ae5f8c19fc3f1cc3a0fe7201b50c3e32082538610","urls":["bzz-raw://902a6bc854a9b0134a97e47dea61a330c0e24d5eb315615c21c879b57c5da7c8","dweb:/ipfs/Qmcx9Zr24GbnrRvEFMGgyzZcwmeXxbyz87Lb8BonKRW6PX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf103db760a912d42dac0c409feb2d1929864ae81f89a7186047ea6f98b9db2ed","urls":["bzz-raw://9ee556bbf7f7aa2f221e1f5a9d80caca8d4e5bc9282f59d5611a7c9ea7c06024","dweb:/ipfs/QmQouopBhk5VuzdUSVc9MC3C5nhbm1MgHmQhemf6w66WxE"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreRegistrationSystem.sol":{"keccak256":"0xb5e41596b245dbb0f4317174ae08c963a55df07cfd1a2e65bd082628bc446350","urls":["bzz-raw://007f0e50c7f40d3932c5db51f729148f7d67573ef2f429043d901c7b017d7f43","dweb:/ipfs/QmdmnY9RFyGjhmjSif3wZYHSMhtkTNhxi74dzVzsQBgi2N"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x2fd9727c04a06dacd957c320e5c91844e389df164a02f6c35e169852d974a1f8","urls":["bzz-raw://cfab99486f9011db6590d75947a8510540bc5d6160866cfd1fafe16daa024961","dweb:/ipfs/QmPAyaKJwhawWcyegfHv1QkJYzdAMpySok2gDKVPpw1rvD"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x8bcbbd417bc83b92c1d40444cf2e617d8a5c7e4d7486dcc3467fef2470338bcb","urls":["bzz-raw://aedd3d896ccc900aa9a4f53ec7a9245e5630f51e847a0e2356e12e4492084a8e","dweb:/ipfs/QmRQJwy5XYHGXT973hYdPUR6cG8fSDPi8kPgprYJXUfuVf"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSignatures.sol":{"keccak256":"0xed3112d1dfeb8afa9be21cc3bf70f7af31b0443e9579f080e7ac2640664b8426","urls":["bzz-raw://571277bf66022fb97fb43948379b560c6d6904dc0272f91b30d3ab16a5b76c91","dweb:/ipfs/QmNhb9rrrW8KXzLfg3eiUR86hnRhaD2kzN5mAcWuWQ4pu5"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0x334f30cf5cac3f795cd63f15582a6a50c91c91644000a1a5c3005a4c17b075ac","urls":["bzz-raw://79369df71ea24d4eb6579f9edc5ac3f8c8d4fe2563db7438c957f7cd8fd696d4","dweb:/ipfs/QmZBQv6xBpXWocxy4nX5o8XJYuvi88y69YmHJYUGgGFRN9"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceDelegationControl.sol":{"keccak256":"0x760eec42bbfbdb497a80fa704956c82bca38d21ee220a1671ac7fc1364ddc0ed","urls":["bzz-raw://313982b1791750271b460fa94c3ea54eeb2d88b3093ab2cace6014a6c9ee387b","dweb:/ipfs/QmVagcNagZkFZeVieECp53rjZEYBB6LU8HP4BjKzfiC4Qr"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb59422d88ec4d7ea5870bfbcd26cce216808aca2524d78be044e6246c2e0c8cd","urls":["bzz-raw://690489521124436a18dd3b2efc1c28636488414b82c6dabf743bde1c8f9ab70b","dweb:/ipfs/Qma89LxYq3aBdNZnsiH2qKuq47gmSn9QpeoFe23pahus5Z"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xa6dd49d8d3bc8ce68d45ebc01f087ef83b1d758e9967322fd15cf641331c2527","urls":["bzz-raw://a80f0382a7bad47b1b947bc9b447eafb35599b0e11a9bdcb45c7cddb3bc1375a","dweb:/ipfs/QmRBWAsqUya6uxXn5fqJPgnkytDfp8HXixcymwTmYKuoPc"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0x43cb675401e3e464a93ae0ddaefdb6ac03b734b7226ba89b8727d6421e50e2e8","urls":["bzz-raw://6a37a9d6881779113b1b78b0e9175b64089da881be1176fc764ceaee9fc65436","dweb:/ipfs/QmXgCyyJUAAn99Czgv51nkr6qi9hFduhJpybkn95ipJHJL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xd0128bfb43b2afdc0c0410b6a642ce7b5ae4e5c90c367e542ea0b3e8d02eba22","urls":["bzz-raw://59fd7075792470f625e15e7c7a5d377b6657b26ce22a82c705888c2773840330","dweb:/ipfs/QmdPygA9VW1Zdds4FTejEDSEKzaPWDFvXP1VqsaJB6KF8q"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x20ad3ee26ef118cb8b055803c4a5ef2aac4791ce9e8720fc6a549120c53ab37a","urls":["bzz-raw://58c1a2e3abb381a36696aeb3588a2604706e88b8505caddbdb696f96249e6231","dweb:/ipfs/QmQvPVUFGBRpbaK9et2L7rVVmCByD1gDhaFvtJNL7cM7d2"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol":{"keccak256":"0xa9a5ebaa93ce6fe8b1f2cef5fd1350ea755d2ab0ff7ae2a5c369e493c2d205d5","urls":["bzz-raw://5ba46cddd36f4a69e120e11edb0cbb8cd8d8363636544fe21e9712e41786f231","dweb:/ipfs/Qmc87CiTYDULyEwTZmbfHcrqx2gNRrkSakYdS6wRXi7LQN"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/CoreModule.sol":{"keccak256":"0x1854f68cb404adb13910c7cb5dc91b4db83b33705a92717485df16742acfac43","urls":["bzz-raw://1119dea8f6a76977e6327b789fae9023eedd63df9a50b6a7b4c6190f02de10a9","dweb:/ipfs/QmXJ6YthgxX5ybpCgcECBHC2uPnycnC7mzh3KTbF9vZWDz"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/CoreRegistrationSystem.sol":{"keccak256":"0x4969fab8e65df062b3ee1d5c55c5dc980b4c8d531a90977e5f318500eafe2125","urls":["bzz-raw://94ca575dec2084e8ec0558c6866af383fea4f5111079f06db8c78b1a7dc78417","dweb:/ipfs/QmZCHfyhMQ4Z4sJvW9uzYhuTNTThoRwH8Usqx6q95AbNSb"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/constants.sol":{"keccak256":"0xbe6408440b758884cfff869ae6c8aefa476ab97b07855dd51571bb358e9ecae0","urls":["bzz-raw://854427618d6d700c2dbba45cc475bd341b14612d4dc05af687371dc725e0a11e","dweb:/ipfs/QmXueKPv6WDyAwjwej5XHnBTMQeUYEbtgNryqt4Tnsj3sK"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/AccessManagementSystem.sol":{"keccak256":"0x29cd0f1a2ec749bc25774682977cad4dd238602a3b4e926cc08bb7781fabf2bc","urls":["bzz-raw://98d1f0b23e9ed303b543e943abcb5641d0744e2c1ae003df6dea877a070f96e0","dweb:/ipfs/QmfQj5P8Lw6DfMfVnhsAaDCtN6iYfKp8V4uxX5LQQnzxLo"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/BalanceTransferSystem.sol":{"keccak256":"0x8170eb46e9716b8040b9a95d8740e1e897538afb1da95a1994cba7907522b4fc","urls":["bzz-raw://b19dbd9f3ca1f541883879985589095f851bdd201d9cdde2d6742dda9ad01a2e","dweb:/ipfs/QmTgSMvsVFAEMK72D7myoJtEykDxAMweueJNEagSChyA1Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/BatchCallSystem.sol":{"keccak256":"0xf24b9cc96cccb8ef98c9aa8585e4a5c003b3b8a00c5a9c6db5c750460960a7d1","urls":["bzz-raw://afa918bcba66835a0866a11c5b43b5da11d68fb68c697f89a273d5dd3a5f1f5c","dweb:/ipfs/QmZyyVdNoUiyLMimmNkZkQv5o86k4sGyo1CGEMrt794eC2"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/ModuleInstallationSystem.sol":{"keccak256":"0xc9b0efce92d9be51ff564fa18efc13365a64cde8dd2e2ef88bac4abe7d432a3d","urls":["bzz-raw://86d2a49cc96ad7e783490c6e44aa2d078444505edc49d1061711200a607441a6","dweb:/ipfs/QmbKkJnRkUE47uWwmhqqmaVozRXLt45ebSZbZnpJpnJfvj"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/StoreRegistrationSystem.sol":{"keccak256":"0xf7edf07894b8c6938b77491d36944d22b37b9e9e8105a689120f66e76450d3dc","urls":["bzz-raw://55be67cb294109fbb9a323c5f788aa7d1b844f7bc57f5bed6b758d2d80447a24","dweb:/ipfs/QmUv8FwmcV6mP2o7aZiZkRxrnQdnaRLYiFWs8ifaEadKJr"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/WorldRegistrationSystem.sol":{"keccak256":"0xbae6190d740add0ee986f82b1143f8f160d232e0f3c2eb4d7908040f07b45427","urls":["bzz-raw://022b092b8757770e5799d22de9b09b774f6ecae9820e91847f794785fbdf7198","dweb:/ipfs/QmaSUvvjFYZT2NmNUQJer7L9qAz4P1KJVQ8Z2Giro9Cpxm"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/requireInterface.sol":{"keccak256":"0x229777eeaac1099104e10832f59bc02f3494a5b6de8225810a3b175643d97039","urls":["bzz-raw://0bf7e4df65be1808418d8dbb1decb346ec2a3b7a11b895818ae90f319522f795","dweb:/ipfs/Qmco2UnqR9oop9ppY2Zbv1LWCQKGM99A7j6iWGsMCrwSmy"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0xdd201aa30700e70c35c1d4e50c375e511d798961183c8531f947c2d15969debb","urls":["bzz-raw://d9c165b1beb7c1d3f75107407c34a5b3424ec8cb322d494892bceed23323ffb9","dweb:/ipfs/QmdH8rtgJaENsMc6HodAbahKg7PiZUJwoZufnHCw3TwrBx"],"license":"MIT"},"node_modules/@latticexyz/world/src/version.sol":{"keccak256":"0x5db84611779a814a582b5559f636640e3599dba1f36b99c529a19ce73b2d2d44","urls":["bzz-raw://b06ae2f3b888ba3dc719b2d19f60deb7c3398324f636c9dad0b92706dfc08f5a","dweb:/ipfs/QmaLgppohesJhF3ZdMWwM8NHcLiv8SRSCArS4QssfG2dC1"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xc7e0aa6e4746b2d0e2eace7e462adf2f03dbc7f0c880794a577bfdbce426fcc3","urls":["bzz-raw://d7538caf090fc69fff272049cfc00d0f35ae63ee700c2091b9cc4ed5709a3b45","dweb:/ipfs/QmYriK2VpsVAePPLTP6mDZkTYMT9AkgmC2C93ktjVMDaP4"],"license":"MIT"},"node_modules/@latticexyz/world/test/createCoreModule.sol":{"keccak256":"0xb0baab0e9c67c1b945a95291aed4e16cf73ed7b95bc671076fd1a7d960e043d8","urls":["bzz-raw://b603f7c656fed7e592cd598ca94ac46fab6ed31a6d951cf4661bc7f3f24166f2","dweb:/ipfs/QmeNDUPYh3yuUj6oQ19VgKYruY1kDWenNhywzWYXeuxy39"],"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/modules/keyswithvalue/KeysWithValueHook.sol":{"keccak256":"0xee64527269e80d32ca25db99c417f582a0b134c9fb878cf14489baa2aaec40e5","urls":["bzz-raw://a37714f1fa7cf984130a08a0e9f320817cbe0053eae44d432676951f3b90653f","dweb:/ipfs/QmZjWVwJPrsscv9zJU8jBfMn39yDquYePcACRYQW6qiaFx"],"license":"MIT"},"src/modules/keyswithvalue/KeysWithValueModule.sol":{"keccak256":"0x7d1be4afa4605e30f6381dd7a600d149652ca34c38f0bc11cbdb471e332f2101","urls":["bzz-raw://8f31e9c2d2c014abec416191b92aaf6a73e0cf96f5b8ef2ac9352d5c33fc7d06","dweb:/ipfs/QmVHBiNqQCNuycj6vEEfCtD2JScDBr3RHTUo31jrXRg5MK"],"license":"MIT"},"src/modules/keyswithvalue/constants.sol":{"keccak256":"0xf8745d975bd2f321e676d083a215513b114c70f7d5a105244dfe444a78e74de5","urls":["bzz-raw://a7fc161f890a9ee2edf731f57fcfee2ab4e3b4bebb9470df7850a138c08fc2c8","dweb:/ipfs/QmVyyFaR1tzTYgmiGHnumdXQKsjb5qRVPMS3uTRX1ik3XL"],"license":"MIT"},"src/modules/keyswithvalue/getKeysWithValue.sol":{"keccak256":"0xe3257d260cd8265b4de124487be15fb57afd665ddf82c4ef23abbfc82a112fb6","urls":["bzz-raw://c467264fe3e4cb0d67e9290bbcf82b5519a8b55930a7f9dd40f97abf8fc14ef4","dweb:/ipfs/Qmd7E7mv2UeWnaMFEcCkwvDGxnrogS4voPkskvpZZg25Gv"],"license":"MIT"},"src/modules/keyswithvalue/getTargetTableId.sol":{"keccak256":"0xa7d235a9c96925a340aeaa166c8b67d289b4450ca59f0645052207d318030d78","urls":["bzz-raw://2dce50e51faa63a75e051d8ccf463271674f588088fca6ab168e06a5fe8cc16b","dweb:/ipfs/QmP2eZFJPMiazcEhdv9Q5SJYRNna7CHoV6o8bxURzRtCHh"],"license":"MIT"},"src/modules/keyswithvalue/tables/KeysWithValue.sol":{"keccak256":"0x299bc2f1d01b60296358eeab8f45246dcde05f33fa90491bcb75369179295722","urls":["bzz-raw://7a8b2191c6de0ba782759c15b1ba35bbb769a0b77f3ba4f1f0c6b56249abfb47","dweb:/ipfs/QmRaYb73HShtmrkmrjSWkkUfgbFvwzK4VroACQT2LSGkqM"],"license":"MIT"},"src/modules/utils/ArrayLib.sol":{"keccak256":"0x5063027c39c927b80c84ac3bb36d20e19fbbddb746380c1efaf2f33f6fec30b8","urls":["bzz-raw://c49eab76687709db420cbe52737610563f44344ef13608e0809e38c43179cb43","dweb:/ipfs/QmRdQ7iW5j51AVJWin8aaKmj6Xj97ZV5vjfVjG5RqYG5xB"],"license":"MIT"},"test/KeysWithValueModule.t.sol":{"keccak256":"0xd699ce5d6b8f8eb941e1db4d31f6cd31100a733ae7bd26f669f49028504f94cd","urls":["bzz-raw://bb132276a416734f1644c391457910fac374babea6937ea9d9ed2726d3db3591","dweb:/ipfs/QmUpw56k1b2tmrF2imGQoAWg3ETH9xf3VTQinrAgCmF5gw"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/KeysWithValueModule.t.sol","id":133925,"exportedSymbols":{"FieldLayout":[691],"FieldLayoutEncodeHelper":[21124],"GasReporter":[226],"IBaseWorld":[24400],"IModule":[22254],"KeysWithValue":[118909],"KeysWithValueModule":[116209],"KeysWithValueModuleTest":[133924],"MODULE_NAMESPACE":[116214],"MODULE_NAMESPACE_BITS":[116365],"NAME_BITS":[24018],"PackedCounter":[2155],"RESOURCE_TABLE":[15721],"ROOT_NAMESPACE":[34848],"ResourceId":[2782],"ResourceIdInstance":[2838],"Schema":[2850],"SchemaEncodeHelper":[21655],"SchemaType":[431],"StoreSwitch":[8203],"TABLE_NAMESPACE_BITS":[116370],"TYPE_BITS":[2788],"Test":[58812],"World":[23730],"WorldResourceIdInstance":[24272],"WorldResourceIdLib":[24145],"console":[68403],"createCoreModule":[46913],"getKeysWithValue":[116287,116350],"getTargetTableId":[116445]},"nodeType":"SourceUnit","src":"32:10908:197","nodes":[{"id":132963,"nodeType":"PragmaDirective","src":"32:25:197","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":132966,"nodeType":"ImportDirective","src":"59:51:197","nodes":[],"absolutePath":"node_modules/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":58813,"symbolAliases":[{"foreign":{"id":132964,"name":"Test","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58812,"src":"68:4:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132965,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68403,"src":"74:7:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132968,"nodeType":"ImportDirective","src":"111:73:197","nodes":[],"absolutePath":"node_modules/@latticexyz/gas-report/src/GasReporter.sol","file":"@latticexyz/gas-report/src/GasReporter.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":227,"symbolAliases":[{"foreign":{"id":132967,"name":"GasReporter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"120:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132970,"nodeType":"ImportDirective","src":"186:81:197","nodes":[],"absolutePath":"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol","file":"@latticexyz/schema-type/src/solidity/SchemaType.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":473,"symbolAliases":[{"foreign":{"id":132969,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"195:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132972,"nodeType":"ImportDirective","src":"269:68:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/StoreSwitch.sol","file":"@latticexyz/store/src/StoreSwitch.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":8204,"symbolAliases":[{"foreign":{"id":132971,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"278:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132974,"nodeType":"ImportDirective","src":"338:58:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/Schema.sol","file":"@latticexyz/store/src/Schema.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":3319,"symbolAliases":[{"foreign":{"id":132973,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"347:6:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132976,"nodeType":"ImportDirective","src":"397:72:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/PackedCounter.sol","file":"@latticexyz/store/src/PackedCounter.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":2779,"symbolAliases":[{"foreign":{"id":132975,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"406:13:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132979,"nodeType":"ImportDirective","src":"470:86:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":2839,"symbolAliases":[{"foreign":{"id":132977,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"479:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132978,"name":"ResourceIdInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"491:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132981,"nodeType":"ImportDirective","src":"557:83:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol","file":"@latticexyz/store/test/SchemaEncodeHelper.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":21656,"symbolAliases":[{"foreign":{"id":132980,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"566:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132983,"nodeType":"ImportDirective","src":"641:68:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/FieldLayout.sol","file":"@latticexyz/store/src/FieldLayout.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":1122,"symbolAliases":[{"foreign":{"id":132982,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"650:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132985,"nodeType":"ImportDirective","src":"710:93:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol","file":"@latticexyz/store/test/FieldLayoutEncodeHelper.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":21125,"symbolAliases":[{"foreign":{"id":132984,"name":"FieldLayoutEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21124,"src":"719:23:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132987,"nodeType":"ImportDirective","src":"805:56:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/World.sol","file":"@latticexyz/world/src/World.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":23731,"symbolAliases":[{"foreign":{"id":132986,"name":"World","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23730,"src":"814:5:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132989,"nodeType":"ImportDirective","src":"862:60:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/IModule.sol","file":"@latticexyz/world/src/IModule.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":22255,"symbolAliases":[{"foreign":{"id":132988,"name":"IModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22254,"src":"871:7:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132991,"nodeType":"ImportDirective","src":"923:85:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":24401,"symbolAliases":[{"foreign":{"id":132990,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24400,"src":"932:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132996,"nodeType":"ImportDirective","src":"1009:126:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":24273,"symbolAliases":[{"foreign":{"id":132992,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24145,"src":"1018:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132993,"name":"WorldResourceIdInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24272,"src":"1038:23:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132994,"name":"NAME_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24018,"src":"1063:9:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132995,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"1074:9:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132998,"nodeType":"ImportDirective","src":"1136:69:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/constants.sol","file":"@latticexyz/world/src/constants.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":34921,"symbolAliases":[{"foreign":{"id":132997,"name":"ROOT_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"1145:14:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133000,"nodeType":"ImportDirective","src":"1206:78:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/worldResourceTypes.sol","file":"@latticexyz/world/src/worldResourceTypes.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":37059,"symbolAliases":[{"foreign":{"id":132999,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"1215:14:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133002,"nodeType":"ImportDirective","src":"1286:79:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/test/createCoreModule.sol","file":"@latticexyz/world/test/createCoreModule.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":46914,"symbolAliases":[{"foreign":{"id":133001,"name":"createCoreModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46913,"src":"1295:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133004,"nodeType":"ImportDirective","src":"1366:91:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/KeysWithValueModule.sol","file":"../src/modules/keyswithvalue/KeysWithValueModule.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":116210,"symbolAliases":[{"foreign":{"id":133003,"name":"KeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116209,"src":"1375:19:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133006,"nodeType":"ImportDirective","src":"1458:78:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/constants.sol","file":"../src/modules/keyswithvalue/constants.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":116215,"symbolAliases":[{"foreign":{"id":133005,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"1467:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133008,"nodeType":"ImportDirective","src":"1537:86:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/tables/KeysWithValue.sol","file":"../src/modules/keyswithvalue/tables/KeysWithValue.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":118910,"symbolAliases":[{"foreign":{"id":133007,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"1546:13:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133010,"nodeType":"ImportDirective","src":"1624:85:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/getKeysWithValue.sol","file":"../src/modules/keyswithvalue/getKeysWithValue.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":116351,"symbolAliases":[{"foreign":{"id":133009,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"src":"1633:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133014,"nodeType":"ImportDirective","src":"1710:130:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/getTargetTableId.sol","file":"../src/modules/keyswithvalue/getTargetTableId.sol","nameLocation":"-1:-1:-1","scope":133925,"sourceUnit":116446,"symbolAliases":[{"foreign":{"id":133011,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"1719:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":133012,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"1737:21:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":133013,"name":"TABLE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116370,"src":"1760:20:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133924,"nodeType":"ContractDefinition","src":"1842:9097:197","nodes":[{"id":133022,"nodeType":"UsingForDirective","src":"1900:40:197","nodes":[],"global":false,"libraryName":{"id":133019,"name":"ResourceIdInstance","nameLocations":["1906:18:197"],"nodeType":"IdentifierPath","referencedDeclaration":2838,"src":"1906:18:197"},"typeName":{"id":133021,"nodeType":"UserDefinedTypeName","pathNode":{"id":133020,"name":"ResourceId","nameLocations":["1929:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"1929:10:197"},"referencedDeclaration":2782,"src":"1929:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}},{"id":133026,"nodeType":"UsingForDirective","src":"1943:45:197","nodes":[],"global":false,"libraryName":{"id":133023,"name":"WorldResourceIdInstance","nameLocations":["1949:23:197"],"nodeType":"IdentifierPath","referencedDeclaration":24272,"src":"1949:23:197"},"typeName":{"id":133025,"nodeType":"UserDefinedTypeName","pathNode":{"id":133024,"name":"ResourceId","nameLocations":["1977:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"1977:10:197"},"referencedDeclaration":2782,"src":"1977:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}},{"id":133029,"nodeType":"VariableDeclaration","src":"1992:16:197","nodes":[],"constant":false,"mutability":"mutable","name":"world","nameLocation":"2003:5:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},"typeName":{"id":133028,"nodeType":"UserDefinedTypeName","pathNode":{"id":133027,"name":"IBaseWorld","nameLocations":["1992:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":24400,"src":"1992:10:197"},"referencedDeclaration":24400,"src":"1992:10:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"id":133036,"nodeType":"VariableDeclaration","src":"2012:75:197","nodes":[],"constant":false,"mutability":"mutable","name":"keysWithValueModule","nameLocation":"2040:19:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},"typeName":{"id":133031,"nodeType":"UserDefinedTypeName","pathNode":{"id":133030,"name":"KeysWithValueModule","nameLocations":["2012:19:197"],"nodeType":"IdentifierPath","referencedDeclaration":116209,"src":"2012:19:197"},"referencedDeclaration":116209,"src":"2012:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},"value":{"arguments":[],"expression":{"argumentTypes":[],"id":133034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2062:23:197","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_KeysWithValueModule_$116209_$","typeString":"function () returns (contract KeysWithValueModule)"},"typeName":{"id":133033,"nodeType":"UserDefinedTypeName","pathNode":{"id":133032,"name":"KeysWithValueModule","nameLocations":["2066:19:197"],"nodeType":"IdentifierPath","referencedDeclaration":116209,"src":"2066:19:197"},"referencedDeclaration":116209,"src":"2066:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}}},"id":133035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},"visibility":"private"},{"id":133039,"nodeType":"VariableDeclaration","src":"2153:42:197","nodes":[],"constant":false,"mutability":"mutable","name":"namespace","nameLocation":"2169:9:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":133037,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2153:7:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"value":{"id":133038,"name":"ROOT_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"2181:14:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"private"},{"id":133045,"nodeType":"VariableDeclaration","src":"2199:46:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceName","nameLocation":"2215:10:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":133040,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2199:7:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"arguments":[{"hexValue":"736f75726365","id":133043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2236:8:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69","typeString":"literal_string \"source\""},"value":"source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69","typeString":"literal_string \"source\""}],"id":133042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2228:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":133041,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2228:7:197","typeDescriptions":{}}},"id":133044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"private"},{"id":133050,"nodeType":"VariableDeclaration","src":"2249:40:197","nodes":[],"constant":false,"mutability":"mutable","name":"key1","nameLocation":"2265:4:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2249:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"74657374","id":133048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2282:6:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658","typeString":"literal_string \"test\""},"value":"test"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658","typeString":"literal_string \"test\""}],"id":133047,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2272:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2272:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":133053,"nodeType":"VariableDeclaration","src":"2293:27:197","nodes":[],"constant":false,"mutability":"mutable","name":"keyTuple1","nameLocation":"2311:9:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2293:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133052,"nodeType":"ArrayTypeName","src":"2293:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"id":133058,"nodeType":"VariableDeclaration","src":"2324:41:197","nodes":[],"constant":false,"mutability":"mutable","name":"key2","nameLocation":"2340:4:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7465737432","id":133056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2357:7:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d","typeString":"literal_string \"test2\""},"value":"test2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d","typeString":"literal_string \"test2\""}],"id":133055,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2347:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":133061,"nodeType":"VariableDeclaration","src":"2369:27:197","nodes":[],"constant":false,"mutability":"mutable","name":"keyTuple2","nameLocation":"2387:9:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2369:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133060,"nodeType":"ArrayTypeName","src":"2369:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"id":133064,"nodeType":"VariableDeclaration","src":"2401:42:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableFieldLayout","nameLocation":"2421:22:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"},"typeName":{"id":133063,"nodeType":"UserDefinedTypeName","pathNode":{"id":133062,"name":"FieldLayout","nameLocations":["2401:11:197"],"nodeType":"IdentifierPath","referencedDeclaration":691,"src":"2401:11:197"},"referencedDeclaration":691,"src":"2401:11:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"visibility":"private"},{"id":133067,"nodeType":"VariableDeclaration","src":"2447:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableSchema","nameLocation":"2462:17:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},"typeName":{"id":133066,"nodeType":"UserDefinedTypeName","pathNode":{"id":133065,"name":"Schema","nameLocations":["2447:6:197"],"nodeType":"IdentifierPath","referencedDeclaration":2850,"src":"2447:6:197"},"referencedDeclaration":2850,"src":"2447:6:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"visibility":"private"},{"id":133070,"nodeType":"VariableDeclaration","src":"2483:35:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableKeySchema","nameLocation":"2498:20:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},"typeName":{"id":133069,"nodeType":"UserDefinedTypeName","pathNode":{"id":133068,"name":"Schema","nameLocations":["2483:6:197"],"nodeType":"IdentifierPath","referencedDeclaration":2850,"src":"2483:6:197"},"referencedDeclaration":2850,"src":"2483:6:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"visibility":"private"},{"id":133073,"nodeType":"VariableDeclaration","src":"2522:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableId","nameLocation":"2541:13:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133072,"nodeType":"UserDefinedTypeName","pathNode":{"id":133071,"name":"ResourceId","nameLocations":["2522:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"2522:10:197"},"referencedDeclaration":2782,"src":"2522:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"private"},{"id":133076,"nodeType":"VariableDeclaration","src":"2558:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"targetTableId","nameLocation":"2577:13:197","scope":133924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133075,"nodeType":"UserDefinedTypeName","pathNode":{"id":133074,"name":"ResourceId","nameLocations":["2558:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"2558:10:197"},"referencedDeclaration":2782,"src":"2558:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"private"},{"id":133176,"nodeType":"FunctionDefinition","src":"2595:685:197","nodes":[],"body":{"id":133175,"nodeType":"Block","src":"2619:661:197","nodes":[],"statements":[{"expression":{"id":133085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133079,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133064,"src":"2625:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3332","id":133082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2681:2:197","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"hexValue":"30","id":133083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2685:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":133080,"name":"FieldLayoutEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21124,"src":"2650:23:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FieldLayoutEncodeHelper_$21124_$","typeString":"type(library FieldLayoutEncodeHelper)"}},"id":133081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2674:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":20833,"src":"2650:30:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_FieldLayout_$691_$","typeString":"function (uint256,uint256) pure returns (FieldLayout)"}},"id":133084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"src":"2625:62:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"id":133086,"nodeType":"ExpressionStatement","src":"2625:62:197"},{"expression":{"id":133093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133087,"name":"sourceTableSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133067,"src":"2693:17:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":133090,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"2739:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SchemaType_$431_$","typeString":"type(enum SchemaType)"}},"id":133091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2750:7:197","memberName":"UINT256","nodeType":"MemberAccess","referencedDeclaration":264,"src":"2739:18:197","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}],"expression":{"id":133088,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"2713:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SchemaEncodeHelper_$21655_$","typeString":"type(library SchemaEncodeHelper)"}},"id":133089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2732:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":21354,"src":"2713:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$431_$returns$_t_userDefinedValueType$_Schema_$2850_$","typeString":"function (enum SchemaType) pure returns (Schema)"}},"id":133092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:45:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"src":"2693:65:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"id":133094,"nodeType":"ExpressionStatement","src":"2693:65:197"},{"expression":{"id":133101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133095,"name":"sourceTableKeySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133070,"src":"2764:20:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":133098,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"2813:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SchemaType_$431_$","typeString":"type(enum SchemaType)"}},"id":133099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2824:7:197","memberName":"BYTES32","nodeType":"MemberAccess","referencedDeclaration":328,"src":"2813:18:197","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}],"expression":{"id":133096,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"2787:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SchemaEncodeHelper_$21655_$","typeString":"type(library SchemaEncodeHelper)"}},"id":133097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":21354,"src":"2787:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$431_$returns$_t_userDefinedValueType$_Schema_$2850_$","typeString":"function (enum SchemaType) pure returns (Schema)"}},"id":133100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2787:45:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"src":"2764:68:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"id":133102,"nodeType":"ExpressionStatement","src":"2764:68:197"},{"expression":{"id":133110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133103,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"2838:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133106,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"2890:14:197","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"id":133107,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133039,"src":"2917:9:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},{"id":133108,"name":"sourceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133045,"src":"2934:10:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_bytes14","typeString":"bytes14"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":133104,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24145,"src":"2854:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$24145_$","typeString":"type(library WorldResourceIdLib)"}},"id":133105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":24073,"src":"2854:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes2_$_t_bytes14_$_t_bytes16_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes2,bytes14,bytes16) pure returns (ResourceId)"}},"id":133109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2882:6:197","2906:9:197","2928:4:197"],"names":["typeId","namespace","name"],"nodeType":"FunctionCall","src":"2854:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"src":"2838:109:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133111,"nodeType":"ExpressionStatement","src":"2838:109:197"},{"expression":{"id":133117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133112,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"2953:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133114,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"2986:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133115,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"3004:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"id":133113,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"2969:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes7_$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes7,ResourceId) pure returns (ResourceId)"}},"id":133116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2969:49:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"src":"2953:65:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133118,"nodeType":"ExpressionStatement","src":"2953:65:197"},{"expression":{"id":133129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133119,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"3025:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":133125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3052:9:197","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_World_$23730_$","typeString":"function () returns (contract World)"},"typeName":{"id":133124,"nodeType":"UserDefinedTypeName","pathNode":{"id":133123,"name":"World","nameLocations":["3056:5:197"],"nodeType":"IdentifierPath","referencedDeclaration":23730,"src":"3056:5:197"},"referencedDeclaration":23730,"src":"3056:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}}},"id":133126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:11:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}],"id":133122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3044:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":133121,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:197","typeDescriptions":{}}},"id":133127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:20:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":133120,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24400,"src":"3033:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$24400_$","typeString":"type(contract IBaseWorld)"}},"id":133128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"src":"3025:40:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133130,"nodeType":"ExpressionStatement","src":"3025:40:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":133134,"name":"createCoreModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46913,"src":"3088:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_contract$_CoreModule_$35431_$","typeString":"function () returns (contract CoreModule)"}},"id":133135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoreModule_$35431","typeString":"contract CoreModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoreModule_$35431","typeString":"contract CoreModule"}],"expression":{"id":133131,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"3071:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3077:10:197","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":22506,"src":"3071:16:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$returns$__$","typeString":"function (contract IModule) external"}},"id":133136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:36:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133137,"nodeType":"ExpressionStatement","src":"3071:36:197"},{"expression":{"arguments":[{"arguments":[{"id":133143,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"3149:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}],"id":133142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3141:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":133141,"name":"address","nodeType":"ElementaryTypeName","src":"3141:7:197","typeDescriptions":{}}},"id":133144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3141:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":133138,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"3113:11:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreSwitch_$8203_$","typeString":"type(library StoreSwitch)"}},"id":133140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:15:197","memberName":"setStoreAddress","nodeType":"MemberAccess","referencedDeclaration":6960,"src":"3113:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":133145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:43:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133146,"nodeType":"ExpressionStatement","src":"3113:43:197"},{"expression":{"id":133153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133147,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"3163:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":133151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3189:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3175:13:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":133148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3179:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133149,"nodeType":"ArrayTypeName","src":"3179:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":133152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3175:16:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3163:28:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133154,"nodeType":"ExpressionStatement","src":"3163:28:197"},{"expression":{"id":133159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":133155,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"3197:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133157,"indexExpression":{"hexValue":"30","id":133156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3207:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3197:12:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":133158,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"3212:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3197:19:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133160,"nodeType":"ExpressionStatement","src":"3197:19:197"},{"expression":{"id":133167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133161,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133061,"src":"3222:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":133165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3248:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3234:13:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":133162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3238:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133163,"nodeType":"ArrayTypeName","src":"3238:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":133166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3234:16:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3222:28:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133168,"nodeType":"ExpressionStatement","src":"3222:28:197"},{"expression":{"id":133173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":133169,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133061,"src":"3256:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133171,"indexExpression":{"hexValue":"30","id":133170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3266:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3256:12:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":133172,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133058,"src":"3271:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3256:19:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133174,"nodeType":"ExpressionStatement","src":"3256:19:197"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"2604:5:197","parameters":{"id":133077,"nodeType":"ParameterList","parameters":[],"src":"2609:2:197"},"returnParameters":{"id":133078,"nodeType":"ParameterList","parameters":[],"src":"2619:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133216,"nodeType":"FunctionDefinition","src":"3284:620:197","nodes":[],"body":{"id":133215,"nodeType":"Block","src":"3332:572:197","nodes":[],"statements":[{"expression":{"arguments":[{"id":133182,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"3394:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133183,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133064,"src":"3415:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},{"id":133184,"name":"sourceTableKeySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133070,"src":"3445:20:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},{"id":133185,"name":"sourceTableSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133067,"src":"3473:17:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},{"arguments":[{"hexValue":"31","id":133189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3511:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3498:12:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":133186,"name":"string","nodeType":"ElementaryTypeName","src":"3502:6:197","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":133187,"nodeType":"ArrayTypeName","src":"3502:8:197","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":133190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3498:15:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"arguments":[{"hexValue":"31","id":133194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3534:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3521:12:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":133191,"name":"string","nodeType":"ElementaryTypeName","src":"3525:6:197","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":133192,"nodeType":"ArrayTypeName","src":"3525:8:197","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":133195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3521:15:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":133179,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"3367:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3373:13:197","memberName":"registerTable","nodeType":"MemberAccess","referencedDeclaration":1918,"src":"3367:19:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_userDefinedValueType$_FieldLayout_$691_$_t_userDefinedValueType$_Schema_$2850_$_t_userDefinedValueType$_Schema_$2850_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,FieldLayout,Schema,Schema,string memory[] memory,string memory[] memory) external"}},"id":133196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3367:175:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133197,"nodeType":"ExpressionStatement","src":"3367:175:197"},{"expression":{"arguments":[{"hexValue":"696e7374616c6c206b65797320776974682076616c7565206d6f64756c65","id":133199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3769:32:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0fe9d03bdb9259dbaf981f3298ed7402a0b26b8940ec13ce5ea0e58335c1446","typeString":"literal_string \"install keys with value module\""},"value":"install keys with value module"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d0fe9d03bdb9259dbaf981f3298ed7402a0b26b8940ec13ce5ea0e58335c1446","typeString":"literal_string \"install keys with value module\""}],"id":133198,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"3754:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3754:48:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133201,"nodeType":"ExpressionStatement","src":"3754:48:197"},{"expression":{"arguments":[{"id":133205,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133036,"src":"3832:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133208,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"3864:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3853:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3857:6:197","memberName":"encode","nodeType":"MemberAccess","src":"3853:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133202,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"3808:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"3808:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3808:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133211,"nodeType":"ExpressionStatement","src":"3808:71:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133212,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"3885:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3885:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133214,"nodeType":"ExpressionStatement","src":"3885:14:197"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_installKeysWithValueModule","nameLocation":"3293:27:197","parameters":{"id":133177,"nodeType":"ParameterList","parameters":[],"src":"3320:2:197"},"returnParameters":{"id":133178,"nodeType":"ParameterList","parameters":[],"src":"3332:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":133231,"nodeType":"FunctionDefinition","src":"3908:134:197","nodes":[],"body":{"id":133230,"nodeType":"Block","src":"3948:94:197","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":133220,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"3963:21:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133221,"name":"TABLE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116370,"src":"3987:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:44:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133223,"name":"NAME_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24018,"src":"4010:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:56:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133225,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"4022:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:68:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":133227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4033:3:197","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}],"id":133219,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"3954:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:83:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133229,"nodeType":"ExpressionStatement","src":"3954:83:197"}]},"functionSelector":"79fe553d","implemented":true,"kind":"function","modifiers":[],"name":"testMatchingByteSizes","nameLocation":"3917:21:197","parameters":{"id":133217,"nodeType":"ParameterList","parameters":[],"src":"3938:2:197"},"returnParameters":{"id":133218,"nodeType":"ParameterList","parameters":[],"src":"3948:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133300,"nodeType":"FunctionDefinition","src":"4046:648:197","nodes":[],"body":{"id":133299,"nodeType":"Block","src":"4076:618:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133234,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133216,"src":"4082:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4082:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133236,"nodeType":"ExpressionStatement","src":"4082:29:197"},{"assignments":[133238],"declarations":[{"constant":false,"id":133238,"mutability":"mutable","name":"value","nameLocation":"4164:5:197","nodeType":"VariableDeclaration","scope":133299,"src":"4156:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133237,"name":"uint256","nodeType":"ElementaryTypeName","src":"4156:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133240,"initialValue":{"hexValue":"31","id":133239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4172:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4156:17:197"},{"expression":{"arguments":[{"hexValue":"7365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4195:60:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2c0c325f496d40c70f7a8644e6cfc5c9af361eb5df919151f38c9678efa722b","typeString":"literal_string \"set a record on a table with KeysWithValueModule installed\""},"value":"set a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2c0c325f496d40c70f7a8644e6cfc5c9af361eb5df919151f38c9678efa722b","typeString":"literal_string \"set a record on a table with KeysWithValueModule installed\""}],"id":133241,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"4180:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:76:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133244,"nodeType":"ExpressionStatement","src":"4180:76:197"},{"expression":{"arguments":[{"id":133248,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"4278:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133249,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"4293:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133238,"src":"4321:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4304:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4308:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"4304:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4356:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4348:7:197","typeDescriptions":{}}},"id":133259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133254,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"4329:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4343:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"4329:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4329:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4371:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4361:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133261,"name":"bytes","nodeType":"ElementaryTypeName","src":"4365:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4361:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133245,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"4262:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4268:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"4262:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133266,"nodeType":"ExpressionStatement","src":"4262:112:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133267,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"4380:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133269,"nodeType":"ExpressionStatement","src":"4380:14:197"},{"assignments":[133274],"declarations":[{"constant":false,"id":133274,"mutability":"mutable","name":"keysWithValue","nameLocation":"4488:13:197","nodeType":"VariableDeclaration","scope":133299,"src":"4471:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4471:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133273,"nodeType":"ArrayTypeName","src":"4471:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133285,"initialValue":{"arguments":[{"id":133277,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"4522:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133281,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133238,"src":"4564:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133279,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4547:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"4547:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133278,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4537:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4537:34:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133275,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"4504:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4518:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"4504:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:68:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4471:101:197"},{"expression":{"arguments":[{"expression":{"id":133287,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133274,"src":"4627:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4641:6:197","memberName":"length","nodeType":"MemberAccess","src":"4627:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4649:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133286,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"4618:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4618:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133291,"nodeType":"ExpressionStatement","src":"4618:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133293,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133274,"src":"4666:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133295,"indexExpression":{"hexValue":"30","id":133294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4680:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4666:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133296,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"4684:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133292,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"4657:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133298,"nodeType":"ExpressionStatement","src":"4657:32:197"}]},"functionSelector":"786bd7bc","implemented":true,"kind":"function","modifiers":[],"name":"testInstall","nameLocation":"4055:11:197","parameters":{"id":133232,"nodeType":"ParameterList","parameters":[],"src":"4066:2:197"},"returnParameters":{"id":133233,"nodeType":"ParameterList","parameters":[],"src":"4076:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133332,"nodeType":"FunctionDefinition","src":"4698:257:197","nodes":[],"body":{"id":133331,"nodeType":"Block","src":"4733:222:197","nodes":[],"statements":[{"expression":{"arguments":[{"id":133306,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133036,"src":"4763:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133309,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"4795:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4784:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4788:6:197","memberName":"encode","nodeType":"MemberAccess","src":"4784:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4784:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133303,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"4739:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4745:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"4739:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4739:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133312,"nodeType":"ExpressionStatement","src":"4739:71:197"},{"expression":{"arguments":[{"expression":{"expression":{"id":133316,"name":"IModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22254,"src":"4832:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IModule_$22254_$","typeString":"type(contract IModule)"}},"id":133317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:23:197","memberName":"Module_AlreadyInstalled","nodeType":"MemberAccess","referencedDeclaration":22231,"src":"4832:31:197","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":133318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4864:8:197","memberName":"selector","nodeType":"MemberAccess","src":"4832:40:197","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":133313,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49264,"src":"4816:2:197","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$60339","typeString":"contract Vm"}},"id":133315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:12:197","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":59998,"src":"4816:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":133319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4816:57:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133320,"nodeType":"ExpressionStatement","src":"4816:57:197"},{"expression":{"arguments":[{"id":133324,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133036,"src":"4903:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133327,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"4935:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4924:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4928:6:197","memberName":"encode","nodeType":"MemberAccess","src":"4924:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4924:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133321,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"4879:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4885:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"4879:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4879:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133330,"nodeType":"ExpressionStatement","src":"4879:71:197"}]},"functionSelector":"78cdebf9","implemented":true,"kind":"function","modifiers":[],"name":"testInstallTwice","nameLocation":"4707:16:197","parameters":{"id":133301,"nodeType":"ParameterList","parameters":[],"src":"4723:2:197"},"returnParameters":{"id":133302,"nodeType":"ParameterList","parameters":[],"src":"4733:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133576,"nodeType":"FunctionDefinition","src":"4959:2346:197","nodes":[],"body":{"id":133575,"nodeType":"Block","src":"5004:2301:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133335,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133216,"src":"5010:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5010:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133337,"nodeType":"ExpressionStatement","src":"5010:29:197"},{"assignments":[133339],"declarations":[{"constant":false,"id":133339,"mutability":"mutable","name":"value1","nameLocation":"5093:6:197","nodeType":"VariableDeclaration","scope":133575,"src":"5085:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133338,"name":"uint256","nodeType":"ElementaryTypeName","src":"5085:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133341,"initialValue":{"hexValue":"31","id":133340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5102:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5085:18:197"},{"expression":{"arguments":[{"id":133345,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"5126:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133346,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"5141:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133349,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133339,"src":"5169:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133347,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5152:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5156:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5152:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5152:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5205:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5197:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5197:7:197","typeDescriptions":{}}},"id":133356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5197:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133351,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"5178:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5192:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"5178:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5220:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5210:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133358,"name":"bytes","nodeType":"ElementaryTypeName","src":"5214:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133342,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"5110:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5116:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"5110:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133363,"nodeType":"ExpressionStatement","src":"5110:113:197"},{"assignments":[133368],"declarations":[{"constant":false,"id":133368,"mutability":"mutable","name":"keysWithValue","nameLocation":"5313:13:197","nodeType":"VariableDeclaration","scope":133575,"src":"5296:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5296:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133367,"nodeType":"ArrayTypeName","src":"5296:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133379,"initialValue":{"arguments":[{"id":133371,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"5347:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133375,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133339,"src":"5389:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5372:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5376:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5372:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133372,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5362:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133369,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"5329:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5343:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"5329:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5329:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5296:102:197"},{"expression":{"arguments":[{"expression":{"id":133381,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5453:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5467:6:197","memberName":"length","nodeType":"MemberAccess","src":"5453:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5475:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"31","id":133384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5478:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":133380,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"5444:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5444:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133386,"nodeType":"ExpressionStatement","src":"5444:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133388,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5497:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133390,"indexExpression":{"hexValue":"30","id":133389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5511:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5497:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133391,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"5515:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"32","id":133392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5521:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"id":133387,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5488:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133394,"nodeType":"ExpressionStatement","src":"5488:37:197"},{"expression":{"arguments":[{"id":133398,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"5593:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133399,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133061,"src":"5608:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133402,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133339,"src":"5636:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5619:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5623:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5619:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5619:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5672:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5664:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5664:7:197","typeDescriptions":{}}},"id":133409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5664:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133404,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"5645:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5659:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"5645:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5645:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5687:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5677:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133411,"name":"bytes","nodeType":"ElementaryTypeName","src":"5681:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133395,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"5577:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5583:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"5577:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5577:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133416,"nodeType":"ExpressionStatement","src":"5577:113:197"},{"expression":{"id":133428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133417,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5763:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133420,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"5797:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133424,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133339,"src":"5839:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5822:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5826:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5822:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133421,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5812:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5812:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133418,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"5779:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5793:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"5779:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"5763:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133429,"nodeType":"ExpressionStatement","src":"5763:85:197"},{"expression":{"arguments":[{"expression":{"id":133431,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5903:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5917:6:197","memberName":"length","nodeType":"MemberAccess","src":"5903:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":133433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5925:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":133430,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"5894:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5894:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133435,"nodeType":"ExpressionStatement","src":"5894:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133437,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5942:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133439,"indexExpression":{"hexValue":"30","id":133438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5956:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5942:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133440,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"5960:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"33","id":133441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5966:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de","typeString":"literal_string \"3\""},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de","typeString":"literal_string \"3\""}],"id":133436,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5933:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133443,"nodeType":"ExpressionStatement","src":"5933:37:197"},{"expression":{"arguments":[{"baseExpression":{"id":133445,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"5985:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133447,"indexExpression":{"hexValue":"31","id":133446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5999:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133448,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133058,"src":"6003:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"34","id":133449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6009:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_13600b294191fc92924bb3ce4b969c1e7e2bab8f4c93c3fc6d0a51733df3c060","typeString":"literal_string \"4\""},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_13600b294191fc92924bb3ce4b969c1e7e2bab8f4c93c3fc6d0a51733df3c060","typeString":"literal_string \"4\""}],"id":133444,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5976:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133451,"nodeType":"ExpressionStatement","src":"5976:37:197"},{"assignments":[133453],"declarations":[{"constant":false,"id":133453,"mutability":"mutable","name":"value2","nameLocation":"6069:6:197","nodeType":"VariableDeclaration","scope":133575,"src":"6061:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133452,"name":"uint256","nodeType":"ElementaryTypeName","src":"6061:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133455,"initialValue":{"hexValue":"32","id":133454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6078:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"6061:18:197"},{"expression":{"arguments":[{"hexValue":"6368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6101:63:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b9c422ee0e2dbe8018a19c9cb3aae68930b6241eb6b0e8370a479b1b31973ed","typeString":"literal_string \"change a record on a table with KeysWithValueModule installed\""},"value":"change a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b9c422ee0e2dbe8018a19c9cb3aae68930b6241eb6b0e8370a479b1b31973ed","typeString":"literal_string \"change a record on a table with KeysWithValueModule installed\""}],"id":133456,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"6086:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6086:79:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133459,"nodeType":"ExpressionStatement","src":"6086:79:197"},{"expression":{"arguments":[{"id":133463,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"6187:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133464,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"6202:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133467,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133453,"src":"6230:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6213:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6217:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6213:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6213:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6266:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6258:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6258:7:197","typeDescriptions":{}}},"id":133474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6258:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133469,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"6239:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6253:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"6239:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6281:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6271:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133476,"name":"bytes","nodeType":"ElementaryTypeName","src":"6275:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6271:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133460,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"6171:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6177:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"6171:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6171:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133481,"nodeType":"ExpressionStatement","src":"6171:113:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133482,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"6290:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6290:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133484,"nodeType":"ExpressionStatement","src":"6290:14:197"},{"expression":{"id":133496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133485,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6377:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133488,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"6411:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133492,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133339,"src":"6453:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6436:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6440:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6436:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6436:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133489,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6426:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6426:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133486,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"6393:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6407:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"6393:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"6377:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133497,"nodeType":"ExpressionStatement","src":"6377:85:197"},{"expression":{"arguments":[{"expression":{"id":133499,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6517:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6531:6:197","memberName":"length","nodeType":"MemberAccess","src":"6517:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6539:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"35","id":133502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6542:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1","typeString":"literal_string \"5\""},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_ceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1","typeString":"literal_string \"5\""}],"id":133498,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"6508:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6508:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133504,"nodeType":"ExpressionStatement","src":"6508:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133506,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6561:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133508,"indexExpression":{"hexValue":"30","id":133507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6575:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6561:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133509,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133058,"src":"6579:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"36","id":133510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6585:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_e455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d","typeString":"literal_string \"6\""},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_e455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d","typeString":"literal_string \"6\""}],"id":133505,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"6552:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6552:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133512,"nodeType":"ExpressionStatement","src":"6552:37:197"},{"expression":{"id":133524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133513,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6662:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133516,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"6696:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133520,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133453,"src":"6738:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6721:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6725:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6721:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133517,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6711:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6711:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133514,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"6678:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6692:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"6678:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6678:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"6662:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133525,"nodeType":"ExpressionStatement","src":"6662:85:197"},{"expression":{"arguments":[{"expression":{"id":133527,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6802:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6816:6:197","memberName":"length","nodeType":"MemberAccess","src":"6802:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6824:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"37","id":133530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6827:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021","typeString":"literal_string \"7\""},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021","typeString":"literal_string \"7\""}],"id":133526,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"6793:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6793:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133532,"nodeType":"ExpressionStatement","src":"6793:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133534,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"6846:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133536,"indexExpression":{"hexValue":"30","id":133535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6860:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6846:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133537,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"6864:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"38","id":133538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6870:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""}],"id":133533,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"6837:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6837:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133540,"nodeType":"ExpressionStatement","src":"6837:37:197"},{"expression":{"arguments":[{"hexValue":"64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6924:63:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_086138016c09e33a58a850dcdde475e4be4fd20038678f4ef60ca09b271fdb73","typeString":"literal_string \"delete a record on a table with KeysWithValueModule installed\""},"value":"delete a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_086138016c09e33a58a850dcdde475e4be4fd20038678f4ef60ca09b271fdb73","typeString":"literal_string \"delete a record on a table with KeysWithValueModule installed\""}],"id":133541,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"6909:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:79:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133544,"nodeType":"ExpressionStatement","src":"6909:79:197"},{"expression":{"arguments":[{"id":133548,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"7013:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133549,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"7028:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}],"expression":{"id":133545,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"6994:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7000:12:197","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":2090,"src":"6994:18:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory) external"}},"id":133550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6994:44:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133551,"nodeType":"ExpressionStatement","src":"6994:44:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133552,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"7044:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7044:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133554,"nodeType":"ExpressionStatement","src":"7044:14:197"},{"expression":{"id":133566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133555,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"7131:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133558,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"7165:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133562,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133453,"src":"7207:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7190:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7194:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"7190:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7190:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133559,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7180:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7180:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133556,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"7147:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7161:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"7147:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7147:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"7131:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133567,"nodeType":"ExpressionStatement","src":"7131:85:197"},{"expression":{"arguments":[{"expression":{"id":133569,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133368,"src":"7271:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7285:6:197","memberName":"length","nodeType":"MemberAccess","src":"7271:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":133571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"39","id":133572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7296:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb","typeString":"literal_string \"9\""},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_d2f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb","typeString":"literal_string \"9\""}],"id":133568,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"7262:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133574,"nodeType":"ExpressionStatement","src":"7262:38:197"}]},"functionSelector":"4a8cf93d","implemented":true,"kind":"function","modifiers":[],"name":"testSetAndDeleteRecordHook","nameLocation":"4968:26:197","parameters":{"id":133333,"nodeType":"ParameterList","parameters":[],"src":"4994:2:197"},"returnParameters":{"id":133334,"nodeType":"ParameterList","parameters":[],"src":"5004:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133705,"nodeType":"FunctionDefinition","src":"7309:1390:197","nodes":[],"body":{"id":133704,"nodeType":"Block","src":"7340:1359:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133579,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133216,"src":"7346:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7346:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133581,"nodeType":"ExpressionStatement","src":"7346:29:197"},{"assignments":[133583],"declarations":[{"constant":false,"id":133583,"mutability":"mutable","name":"value1","nameLocation":"7429:6:197","nodeType":"VariableDeclaration","scope":133704,"src":"7421:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133582,"name":"uint256","nodeType":"ElementaryTypeName","src":"7421:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133585,"initialValue":{"hexValue":"31","id":133584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7438:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"7421:18:197"},{"expression":{"arguments":[{"hexValue":"7365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7461:59:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_6013cc84467b08f419efa8591874929c486151236056110c02e28b7148a66b87","typeString":"literal_string \"set a field on a table with KeysWithValueModule installed\""},"value":"set a field on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6013cc84467b08f419efa8591874929c486151236056110c02e28b7148a66b87","typeString":"literal_string \"set a field on a table with KeysWithValueModule installed\""}],"id":133586,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"7446:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7446:75:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133589,"nodeType":"ExpressionStatement","src":"7446:75:197"},{"expression":{"arguments":[{"id":133593,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"7542:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133594,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"7557:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"hexValue":"30","id":133595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":133598,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133583,"src":"7588:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7571:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7575:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"7571:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7571:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":133600,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133064,"src":"7597:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}],"expression":{"id":133590,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"7527:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:8:197","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":2026,"src":"7527:14:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$691_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":133601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7527:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133602,"nodeType":"ExpressionStatement","src":"7527:93:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133603,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"7626:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7626:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133605,"nodeType":"ExpressionStatement","src":"7626:14:197"},{"assignments":[133610],"declarations":[{"constant":false,"id":133610,"mutability":"mutable","name":"keysWithValue","nameLocation":"7730:13:197","nodeType":"VariableDeclaration","scope":133704,"src":"7713:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7713:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133609,"nodeType":"ArrayTypeName","src":"7713:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133621,"initialValue":{"arguments":[{"id":133613,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"7764:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133617,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133583,"src":"7800:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133615,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7789:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7793:6:197","memberName":"encode","nodeType":"MemberAccess","src":"7789:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7789:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133614,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7779:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7779:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133611,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"7746:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7760:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"7746:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7713:96:197"},{"expression":{"arguments":[{"expression":{"id":133623,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"7864:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7878:6:197","memberName":"length","nodeType":"MemberAccess","src":"7864:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7886:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133622,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"7855:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7855:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133627,"nodeType":"ExpressionStatement","src":"7855:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133629,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"7903:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133631,"indexExpression":{"hexValue":"30","id":133630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7917:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7903:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133632,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"7921:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133628,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"7894:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7894:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133634,"nodeType":"ExpressionStatement","src":"7894:32:197"},{"assignments":[133636],"declarations":[{"constant":false,"id":133636,"mutability":"mutable","name":"value2","nameLocation":"7941:6:197","nodeType":"VariableDeclaration","scope":133704,"src":"7933:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133635,"name":"uint256","nodeType":"ElementaryTypeName","src":"7933:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133638,"initialValue":{"hexValue":"32","id":133637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7950:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"7933:18:197"},{"expression":{"arguments":[{"hexValue":"6368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8012:62:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_366525fcc078b1415665cadbdfff44d1c1283f38acc7842fe4df5bbbb14f25e5","typeString":"literal_string \"change a field on a table with KeysWithValueModule installed\""},"value":"change a field on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_366525fcc078b1415665cadbdfff44d1c1283f38acc7842fe4df5bbbb14f25e5","typeString":"literal_string \"change a field on a table with KeysWithValueModule installed\""}],"id":133639,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"7997:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7997:78:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133642,"nodeType":"ExpressionStatement","src":"7997:78:197"},{"expression":{"arguments":[{"id":133646,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"8096:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133647,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"8111:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"hexValue":"30","id":133648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8122:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":133651,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133636,"src":"8142:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8125:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8129:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"8125:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8125:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":133653,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133064,"src":"8151:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}],"expression":{"id":133643,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"8081:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8087:8:197","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":2026,"src":"8081:14:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$691_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":133654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8081:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133655,"nodeType":"ExpressionStatement","src":"8081:93:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133656,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"8180:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8180:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133658,"nodeType":"ExpressionStatement","src":"8180:14:197"},{"expression":{"id":133670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133659,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"8267:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133662,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"8301:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133666,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133583,"src":"8337:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8326:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8330:6:197","memberName":"encode","nodeType":"MemberAccess","src":"8326:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8326:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133663,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8316:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133660,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"8283:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8297:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"8283:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8283:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"8267:79:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133671,"nodeType":"ExpressionStatement","src":"8267:79:197"},{"expression":{"arguments":[{"expression":{"id":133673,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"8401:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:197","memberName":"length","nodeType":"MemberAccess","src":"8401:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":133675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8423:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133672,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"8392:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8392:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133677,"nodeType":"ExpressionStatement","src":"8392:33:197"},{"expression":{"id":133689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133678,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"8498:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133681,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133076,"src":"8532:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133685,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133636,"src":"8568:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8557:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8561:6:197","memberName":"encode","nodeType":"MemberAccess","src":"8557:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8557:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133682,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8547:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8547:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133679,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"8514:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8528:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"8514:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8514:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"8498:79:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133690,"nodeType":"ExpressionStatement","src":"8498:79:197"},{"expression":{"arguments":[{"expression":{"id":133692,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"8632:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8646:6:197","memberName":"length","nodeType":"MemberAccess","src":"8632:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8654:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133691,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"8623:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8623:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133696,"nodeType":"ExpressionStatement","src":"8623:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133698,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133610,"src":"8671:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133700,"indexExpression":{"hexValue":"30","id":133699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8685:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8671:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133701,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"8689:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133697,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"8662:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8662:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133703,"nodeType":"ExpressionStatement","src":"8662:32:197"}]},"functionSelector":"615295ee","implemented":true,"kind":"function","modifiers":[],"name":"testSetField","nameLocation":"7318:12:197","parameters":{"id":133577,"nodeType":"ParameterList","parameters":[],"src":"7330:2:197"},"returnParameters":{"id":133578,"nodeType":"ParameterList","parameters":[],"src":"7340:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133775,"nodeType":"FunctionDefinition","src":"8703:920:197","nodes":[],"body":{"id":133774,"nodeType":"Block","src":"8742:881:197","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574652074686520746172676574207461626c652073656c6563746f72","id":133709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8763:35:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_feb992d526920093e2e8de59623dd29bd995022f280713006d9dcae1d7225b68","typeString":"literal_string \"compute the target table selector\""},"value":"compute the target table selector"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_feb992d526920093e2e8de59623dd29bd995022f280713006d9dcae1d7225b68","typeString":"literal_string \"compute the target table selector\""}],"id":133708,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"8748:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8748:51:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133711,"nodeType":"ExpressionStatement","src":"8748:51:197"},{"assignments":[133714],"declarations":[{"constant":false,"id":133714,"mutability":"mutable","name":"_targetTableId","nameLocation":"8816:14:197","nodeType":"VariableDeclaration","scope":133774,"src":"8805:25:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133713,"nodeType":"UserDefinedTypeName","pathNode":{"id":133712,"name":"ResourceId","nameLocations":["8805:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"8805:10:197"},"referencedDeclaration":2782,"src":"8805:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"internal"}],"id":133719,"initialValue":{"arguments":[{"id":133716,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"8850:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133717,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"8868:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"id":133715,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"8833:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes7_$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes7,ResourceId) pure returns (ResourceId)"}},"id":133718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:49:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"8805:77:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133720,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"8888:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8888:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133722,"nodeType":"ExpressionStatement","src":"8888:14:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":133724,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133714,"src":"8965:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8980:7:197","memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2837,"src":"8965:22:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes2_$attached_to$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (ResourceId) pure returns (bytes2)"}},"id":133726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8965:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"id":133727,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8991:14:197","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"hexValue":"746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d61746368","id":133728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9007:43:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f6a29f10ee1c19764057fda4a678b5e87f240ecc31630595590aa936f69889","typeString":"literal_string \"target table resource type does not match\""},"value":"target table resource type does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_stringliteral_66f6a29f10ee1c19764057fda4a678b5e87f240ecc31630595590aa936f69889","typeString":"literal_string \"target table resource type does not match\""}],"id":133723,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"8956:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8956:95:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133730,"nodeType":"ExpressionStatement","src":"8956:95:197"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":133740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":133736,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133714,"src":"9148:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133734,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"9130:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"type(ResourceId)"}},"id":133735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9141:6:197","memberName":"unwrap","nodeType":"MemberAccess","src":"9130:17:197","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes32_$","typeString":"function (ResourceId) pure returns (bytes32)"}},"id":133737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9130:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"id":133738,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"9168:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":133739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9167:11:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9130:48:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9123:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133732,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9123:6:197","typeDescriptions":{}}},"id":133741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9123:56:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133742,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"9187:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"hexValue":"6d6f64756c65206e616d65737061636520646f6573206e6f74206d61746368","id":133743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9211:33:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6d0ce39e02ea2028c57b1ef050b77d03dbb6221d4b9f4594d945342866628b1","typeString":"literal_string \"module namespace does not match\""},"value":"module namespace does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_stringliteral_d6d0ce39e02ea2028c57b1ef050b77d03dbb6221d4b9f4594d945342866628b1","typeString":"literal_string \"module namespace does not match\""}],"id":133731,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9107:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9107:143:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133745,"nodeType":"ExpressionStatement","src":"9107:143:197"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":133757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":133751,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133714,"src":"9365:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133749,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"9347:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"type(ResourceId)"}},"id":133750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9358:6:197","memberName":"unwrap","nodeType":"MemberAccess","src":"9347:17:197","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes32_$","typeString":"function (ResourceId) pure returns (bytes32)"}},"id":133752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":133753,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"9385:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133754,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"9397:21:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:33:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":133756,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9384:35:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9347:72:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9340:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133747,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9340:6:197","typeDescriptions":{}}},"id":133758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9340:80:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"arguments":[{"id":133761,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133039,"src":"9435:9:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":133760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9428:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133759,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9428:6:197","typeDescriptions":{}}},"id":133762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9428:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"hexValue":"7461626c65206e616d65737061636520646f6573206e6f74206d61746368","id":133763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9453:32:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3d5937108d10722a44247e1829dc0a71f3df77502a7e75813fad01efccb3b8e","typeString":"literal_string \"table namespace does not match\""},"value":"table namespace does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_stringliteral_b3d5937108d10722a44247e1829dc0a71f3df77502a7e75813fad01efccb3b8e","typeString":"literal_string \"table namespace does not match\""}],"id":133746,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9324:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:167:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133765,"nodeType":"ExpressionStatement","src":"9324:167:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":133767,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133714,"src":"9552:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9567:7:197","memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":24214,"src":"9552:22:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes16_$attached_to$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (ResourceId) pure returns (bytes16)"}},"id":133769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9552:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":133770,"name":"sourceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133045,"src":"9578:10:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"hexValue":"7461626c65206e616d6520646f6573206e6f74206d61746368","id":133771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9590:27:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_c959376aa0e0922a8ef71e6c511efde5771d3641fad6290e8ea94ce819d45c5d","typeString":"literal_string \"table name does not match\""},"value":"table name does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_stringliteral_c959376aa0e0922a8ef71e6c511efde5771d3641fad6290e8ea94ce819d45c5d","typeString":"literal_string \"table name does not match\""}],"id":133766,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9543:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:75:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133773,"nodeType":"ExpressionStatement","src":"9543:75:197"}]},"functionSelector":"e004c9e9","implemented":true,"kind":"function","modifiers":[],"name":"testGetTargetTableId","nameLocation":"8712:20:197","parameters":{"id":133706,"nodeType":"ParameterList","parameters":[],"src":"8732:2:197"},"returnParameters":{"id":133707,"nodeType":"ParameterList","parameters":[],"src":"8742:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133783,"nodeType":"FunctionDefinition","src":"9627:127:197","nodes":[],"body":{"id":133782,"nodeType":"Block","src":"9669:85:197","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"31","id":133779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9747:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133778,"name":"testGetKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133923,"src":"9726:20:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":133780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9726:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133781,"nodeType":"ExpressionStatement","src":"9726:23:197"}]},"functionSelector":"39e2edb9","implemented":true,"kind":"function","modifiers":[],"name":"testGetKeysWithValueGas","nameLocation":"9636:23:197","parameters":{"id":133776,"nodeType":"ParameterList","parameters":[],"src":"9659:2:197"},"returnParameters":{"id":133777,"nodeType":"ParameterList","parameters":[],"src":"9669:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133923,"nodeType":"FunctionDefinition","src":"9758:1179:197","nodes":[],"body":{"id":133922,"nodeType":"Block","src":"9810:1127:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133788,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133216,"src":"9816:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9816:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133790,"nodeType":"ExpressionStatement","src":"9816:29:197"},{"expression":{"arguments":[{"id":133794,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"9907:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133795,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133053,"src":"9922:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133785,"src":"9950:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9933:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9937:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"9933:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9933:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9985:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9977:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9977:7:197","typeDescriptions":{}}},"id":133805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9977:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133800,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"9958:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9972:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"9958:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9958:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10000:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9990:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133807,"name":"bytes","nodeType":"ElementaryTypeName","src":"9994:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133791,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"9891:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9897:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"9891:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9891:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133812,"nodeType":"ExpressionStatement","src":"9891:112:197"},{"expression":{"arguments":[{"hexValue":"476574206c697374206f66206b6579732077697468206120676976656e2076616c7565","id":133814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10025:37:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_abbde85d93c52a30ddcd47dbe3ddaa4d25f9a99670687a497cb2a9c9058c7fe1","typeString":"literal_string \"Get list of keys with a given value\""},"value":"Get list of keys with a given value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abbde85d93c52a30ddcd47dbe3ddaa4d25f9a99670687a497cb2a9c9058c7fe1","typeString":"literal_string \"Get list of keys with a given value\""}],"id":133813,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"10010:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10010:53:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133816,"nodeType":"ExpressionStatement","src":"10010:53:197"},{"assignments":[133821],"declarations":[{"constant":false,"id":133821,"mutability":"mutable","name":"keysWithValue","nameLocation":"10086:13:197","nodeType":"VariableDeclaration","scope":133922,"src":"10069:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10069:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133820,"nodeType":"ArrayTypeName","src":"10069:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133841,"initialValue":{"arguments":[{"id":133823,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"10126:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},{"id":133824,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"10139:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"id":133827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133785,"src":"10177:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10160:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10164:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10160:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10160:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10210:7:197","typeDescriptions":{}}},"id":133834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133829,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10191:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10205:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10191:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10191:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10239:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10229:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133836,"name":"bytes","nodeType":"ElementaryTypeName","src":"10233:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10229:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133822,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[116287,116350],"referencedDeclaration":116350,"src":"10102:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IStore_$1349_$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (contract IStore,ResourceId,bytes memory,PackedCounter,bytes memory) view returns (bytes32[] memory)"}},"id":133840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:145:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10069:178:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133842,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"10253:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10253:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133844,"nodeType":"ExpressionStatement","src":"10253:14:197"},{"expression":{"arguments":[{"expression":{"id":133846,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10322:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10336:6:197","memberName":"length","nodeType":"MemberAccess","src":"10322:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10344:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133845,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"10313:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10313:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133850,"nodeType":"ExpressionStatement","src":"10313:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133852,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10361:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133854,"indexExpression":{"hexValue":"30","id":133853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10375:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10361:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133855,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"10379:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133851,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10352:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133857,"nodeType":"ExpressionStatement","src":"10352:32:197"},{"expression":{"arguments":[{"id":133861,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"10452:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133862,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133061,"src":"10467:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133785,"src":"10495:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10478:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10482:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10478:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10478:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10530:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10522:7:197","typeDescriptions":{}}},"id":133872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133867,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10503:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10517:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10503:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10503:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10535:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133874,"name":"bytes","nodeType":"ElementaryTypeName","src":"10539:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10535:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133858,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"10436:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10442:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"10436:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10436:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133879,"nodeType":"ExpressionStatement","src":"10436:112:197"},{"expression":{"id":133900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133880,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10616:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133882,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133029,"src":"10656:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},{"id":133883,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133073,"src":"10669:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"id":133886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133785,"src":"10707:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10690:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10694:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10690:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10690:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10748:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10740:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10740:7:197","typeDescriptions":{}}},"id":133893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10740:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133888,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10721:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10735:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10721:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10721:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10759:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133895,"name":"bytes","nodeType":"ElementaryTypeName","src":"10763:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10759:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133881,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[116287,116350],"referencedDeclaration":116350,"src":"10632:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IStore_$1349_$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (contract IStore,ResourceId,bytes memory,PackedCounter,bytes memory) view returns (bytes32[] memory)"}},"id":133899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10632:145:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"10616:161:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133901,"nodeType":"ExpressionStatement","src":"10616:161:197"},{"expression":{"arguments":[{"expression":{"id":133903,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10832:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:6:197","memberName":"length","nodeType":"MemberAccess","src":"10832:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":133905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10854:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":133902,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"10823:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10823:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133907,"nodeType":"ExpressionStatement","src":"10823:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133909,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10871:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133911,"indexExpression":{"hexValue":"30","id":133910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10885:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10871:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133912,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133050,"src":"10889:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133908,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10862:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10862:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133914,"nodeType":"ExpressionStatement","src":"10862:32:197"},{"expression":{"arguments":[{"baseExpression":{"id":133916,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133821,"src":"10909:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133918,"indexExpression":{"hexValue":"31","id":133917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10923:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10909:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133919,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133058,"src":"10927:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133915,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10900:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10900:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133921,"nodeType":"ExpressionStatement","src":"10900:32:197"}]},"functionSelector":"76270d01","implemented":true,"kind":"function","modifiers":[],"name":"testGetKeysWithValue","nameLocation":"9767:20:197","parameters":{"id":133786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":133785,"mutability":"mutable","name":"value","nameLocation":"9796:5:197","nodeType":"VariableDeclaration","scope":133923,"src":"9788:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9788:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9787:15:197"},"returnParameters":{"id":133787,"nodeType":"ParameterList","parameters":[],"src":"9810:0:197"},"scope":133924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":133015,"name":"Test","nameLocations":["1878:4:197"],"nodeType":"IdentifierPath","referencedDeclaration":58812,"src":"1878:4:197"},"id":133016,"nodeType":"InheritanceSpecifier","src":"1878:4:197"},{"baseName":{"id":133017,"name":"GasReporter","nameLocations":["1884:11:197"],"nodeType":"IdentifierPath","referencedDeclaration":226,"src":"1884:11:197"},"id":133018,"nodeType":"InheritanceSpecifier","src":"1884:11:197"}],"canonicalName":"KeysWithValueModuleTest","contractDependencies":[23730,35431,35451,35650,35830,36019,116209],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[133924,226,58812,49271,49268,58761,54499,54209,53445,51391,50698,49205],"name":"KeysWithValueModuleTest","nameLocation":"1851:23:197","scope":133925,"usedErrors":[702,708,712,714,2860,2863,3343],"usedEvents":[46919,46923,46927,46931,46935,46939,46943,46947,46953,46959,46967,46975,46981,46987,46993,46999,49293,49298,49303,49310,49317,49324]}],"license":"MIT"},"id":197}
|
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":"testGetKeysWithValue","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetKeysWithValueGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTargetTableId","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testInstall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testInstallTwice","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMatchingByteSizes","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetAndDeleteRecordHook","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetField","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},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"FieldLayoutLib_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405260008054600160ff1991821681179092556004805490911690911790555a601c556040516200003390620000e8565b604051809103906000f08015801562000050573d6000803e3d6000fd5b50602080546001600160a01b0319166001600160a01b0392909216919091179055602180546001600160f01b03191665736f7572636560c01b1790557f9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb6586022557f4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d602455348015620000e157600080fd5b50620000f6565b613cef8062017d8683390190565b62017c7f80620001076000396000f3fe60806040523480156200001157600080fd5b50600436106200016c5760003560e01c8063786bd7bc11620000dd578063b5508aa9116200008b578063e004c9e9116200006e578063e004c9e91462000267578063e20c9f711462000271578063fa7626d4146200027b57600080fd5b8063b5508aa91462000242578063ba414fa6146200024c57600080fd5b806379fe553d11620000c057806379fe553d146200021557806385226c81146200021f578063916a17c6146200023857600080fd5b8063786bd7bc146200020157806378cdebf9146200020b57600080fd5b80633f7286f4116200013b578063615295ee116200011e578063615295ee14620001c757806366d9a9a014620001d157806376270d0114620001ea57600080fd5b80633f7286f414620001b35780634a8cf93d14620001bd57600080fd5b80630a9254e414620001715780631ed7831c146200017d57806339e2edb9146200019f5780633e5e3c2314620001a9575b600080fd5b6200017b62000289565b005b6200018762000531565b604051620001969190620038a5565b60405180910390f35b6200017b62000595565b62000187620005a3565b6200018762000605565b6200017b62000667565b6200017b62000cc9565b620001db62000f53565b604051620001969190620038f4565b6200017b620001fb366004620039e1565b6200105b565b6200017b620012b0565b6200017b620013c8565b6200017b6200159f565b62000229620015d5565b60405162000196919062003aa8565b620001db620016af565b62000229620017ae565b6200025662001888565b604051901515815260200162000196565b6200017b620019d4565b6200018762001c49565b600054620002569060ff1681565b620002976020600062001cab565b602655620002a6601f62001d09565b602755620002b5605f62001d09565b60285560215462000303907f746200000000000000000000000000000000000000000000000000000000000090609081901b906e010000000000000000000000000000900460801b62001d8c565b602981905562000335907f6b65797776616c000000000000000000000000000000000000000000000000009062001e14565b602a556040516200034690620037ee565b604051809103906000f08015801562000363573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905563c4d66de8620003aa62001efc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200040457600080fd5b505af115801562000419573d6000803e3d6000fd5b5050601f547f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055506200047d9050565b604080516001808252818301909252906020808301908036833750508151620004ae926023925060200190620037fc565b506022546023600081548110620004c957620004c962003ad3565b600091825260209091200155604080516001808252818301909252908160200160208202803683375050815162000508926025925060200190620037fc565b50602454602560008154811062000523576200052362003ad3565b600091825260209091200155565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200058b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200056c575b5050505050905090565b620005a160016200105b565b565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6200067162002007565b601f546029546040805160016020808301829052835180840390910181526000838501818152606085019586905263298314fb60e01b90955291956001600160a01b03169463298314fb94620006d39491936023939290919060640162003b2b565b600060405180830381600087803b158015620006ee57600080fd5b505af115801562000703573d6000803e3d6000fd5b50505050600062000740602a54836040516020016200072491815260200190565b60405160208183030381529060405280519060200120620021b5565b905062000786815160016040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525062002232565b620007e781600081518110620007a057620007a062003ad3565b60200260200101516022546040518060400160405280600181526020017f32000000000000000000000000000000000000000000000000000000000000008152506200227f565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200084694909360259392919060640162003b2b565b600060405180830381600087803b1580156200086157600080fd5b505af115801562000876573d6000803e3d6000fd5b5050505062000895602a54836040516020016200072491815260200190565b9050620008a581516002620022cc565b6200090681600081518110620008bf57620008bf62003ad3565b60200260200101516022546040518060400160405280600181526020017f33000000000000000000000000000000000000000000000000000000000000008152506200227f565b620009678160018151811062000920576200092062003ad3565b60200260200101516024546040518060400160405280600181526020017f34000000000000000000000000000000000000000000000000000000000000008152506200227f565b600060029050620009916040518060600160405280603d815260200162017bb8603d9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620009f094909360239392919060640162003b2b565b600060405180830381600087803b15801562000a0b57600080fd5b505af115801562000a20573d6000803e3d6000fd5b5050505062000a2e620026b9565b62000a49602a54846040516020016200072491815260200190565b915062000a8f825160016040518060400160405280600181526020017f350000000000000000000000000000000000000000000000000000000000000081525062002232565b62000af08260008151811062000aa95762000aa962003ad3565b60200260200101516024546040518060400160405280600181526020017f36000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000b0b602a54826040516020016200072491815260200190565b915062000b51825160016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525062002232565b62000bb28260008151811062000b6b5762000b6b62003ad3565b60200260200101516022546040518060400160405280600181526020017f38000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000bd66040518060600160405280603d815260200162017add603d9139620023de565b601f546029546040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163505a181d9162000c259160239060040162003b76565b600060405180830381600087803b15801562000c4057600080fd5b505af115801562000c55573d6000803e3d6000fd5b5050505062000c63620026b9565b62000c7e602a54826040516020016200072491815260200190565b915062000cc4825160006040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525062002232565b505050565b62000cd362002007565b60006001905062000cfd60405180606001604052806039815260200162017b5660399139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000d71939092602392600092909160440162003b91565b600060405180830381600087803b15801562000d8c57600080fd5b505af115801562000da1573d6000803e3d6000fd5b5050505062000daf620026b9565b600062000dcc602a54836040516020016200072491815260200190565b905062000ddc81516001620022cc565b62000e078160008151811062000df65762000df662003ad3565b602002602001015160225462002949565b60006002905062000e316040518060600160405280603c815260200162017b1a603c9139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000ea5939092602392600092909160440162003b91565b600060405180830381600087803b15801562000ec057600080fd5b505af115801562000ed5573d6000803e3d6000fd5b5050505062000ee3620026b9565b62000efe602a54846040516020016200072491815260200190565b915062000f0e82516000620022cc565b62000f29602a54826040516020016200072491815260200190565b915062000f3982516001620022cc565b62000cc48260008151811062000df65762000df662003ad3565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200103957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000fe55790505b5050505050815250508152602001906001019062000f77565b50505050905090565b6200106562002007565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620010c494909360239392919060640162003b2b565b600060405180830381600087803b158015620010df57600080fd5b505af1158015620010f4573d6000803e3d6000fd5b505050506200111c60405180606001604052806023815260200162017bf560239139620023de565b601f54602954604080516020810185905260009362001165936001600160a01b03909116929091015b60408051808303601f190181526000808452602084019092529162002a49565b905062001171620026b9565b6200117f81516001620022cc565b620011998160008151811062000df65762000df662003ad3565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620011f894909360259392919060640162003b2b565b600060405180830381600087803b1580156200121357600080fd5b505af115801562001228573d6000803e3d6000fd5b5050601f5460295460408051602081018890526200125795506001600160a01b03909316935090910162001145565b90506200126781516002620022cc565b620012818160008151811062000df65762000df662003ad3565b620012ac816001815181106200129b576200129b62003ad3565b602002602001015160245462002949565b5050565b620012ba62002007565b600060019050620012e46040518060600160405280603a815260200162017c18603a9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200134394909360239392919060640162003b2b565b600060405180830381600087803b1580156200135e57600080fd5b505af115801562001373573d6000803e3d6000fd5b5050505062001381620026b9565b60006200139e602a54836040516020016200072491815260200190565b9050620013ae81516001620022cc565b620012ac8160008151811062000df65762000df662003ad3565b601f54602080546029546040516001600160a01b039485169463af068c9e94931692620013fa92910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200142892919062003bdc565b600060405180830381600087803b1580156200144357600080fd5b505af115801562001458573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f14012068000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050601f5460208054602954604080518085019290925280518083039094018452818101908190527faf068c9e0000000000000000000000000000000000000000000000000000000090526001600160a01b03938416955063af068c9e94506200156993909116919060440162003bdc565b600060405180830381600087803b1580156200158457600080fd5b505af115801562001599573d6000803e3d6000fd5b50505050565b620005a160106080620015b460388062003c16565b620015c0919062003c16565b620015cc919062003c16565b610100620022cc565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620010525783829060005260206000200180546200161b9062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016499062003c2c565b80156200169a5780601f106200166e576101008083540402835291602001916200169a565b820191906000526020600020905b8154815290600101906020018083116200167c57829003601f168201915b505050505081526020019060010190620015f9565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200179557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017415790505b50505050508152505081526020019060010190620016d3565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101562001052578382906000526020600020018054620017f49062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620018229062003c2c565b8015620018735780601f10620018475761010080835404028352916020019162001873565b820191906000526020600020905b8154815290600101906020018083116200185557829003601f168201915b505050505081526020019060010190620017d2565b60008054610100900460ff1615620018a95750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620019cf5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000008284015282518083038401815260608301909352600092909162001951917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003c62565b60408051601f19818403018152908290526200196d9162003cac565b6000604051808303816000865af19150503d8060008114620019ac576040519150601f19603f3d011682016040523d82523d6000602084013e620019b1565b606091505b5091505080806020019051810190620019cb919062003cca565b9150505b919050565b620019f860405180606001604052806021815260200162017c5260219139620023de565b600062001a287f6b65797776616c0000000000000000000000000000000000000000000000000060295462001e14565b905062001a34620026b9565b62001abc817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f74620000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660405180606001604052806029815260200162017b8f602991396200227f565b60408051808201909152601f81527f6d6f64756c65206e616d65737061636520646f6573206e6f74206d6174636800602082015262001b45907fffffffffffffff00000000000000000000000000000000000000000000000000601084901b16907f6b65797776616c00000000000000000000000000000000000000000000000000906200227f565b62001bc562001b576038601062003c16565b60215460408051808201909152601e81527f7461626c65206e616d65737061636520646f6573206e6f74206d61746368000060208201529184901b7fffffffffffffff000000000000000000000000000000000000000000000000009081169260909290921b16906200227f565b62001c4662001bd48262002ad9565b6fffffffffffffffffffffffffffffffff19166021600e9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166040518060400160405280601981526020017f7461626c65206e616d6520646f6573206e6f74206d61746368000000000000008152506200227f565b50565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b60408051600180825281830190925260009182919060208083019080368337019050509050838160008151811062001ce75762001ce762003ad3565b60200260200101818152505062001cff818462002af2565b9150505b92915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062001d455762001d4562003ad3565b602002602001019060c581111562001d615762001d6162003cee565b908160c581111562001d775762001d7762003cee565b90525062001d858162002d1c565b9392505050565b600062001d9c6070601062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b60008062001e228362002ad9565b9050600062001e318460101b90565b9050603862001e4281601062003c16565b62001e4e919062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c62001e816038601062003c16565b7dffffffffffffff0000000000000000000000000000000000000000000000601088901c167fffffffffffffff00000000000000000000000000000000000000000000000000909316901c91909117177f74620000000000000000000000000000000000000000000000000000000000001791505092915050565b600060405162001f0c9062003848565b604051809103906000f08015801562001f29573d6000803e3d6000fd5b5060405162001f389062003856565b604051809103906000f08015801562001f55573d6000803e3d6000fd5b5060405162001f649062003864565b604051809103906000f08015801562001f81573d6000803e3d6000fd5b5060405162001f909062003872565b604051809103906000f08015801562001fad573d6000803e3d6000fd5b5060405162001fbc9062003880565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f08015801562002001573d6000803e3d6000fd5b50905090565b601f546029546026546028546027546040805160018082528183019092526001600160a01b0390961695630ba51f499594939291816020015b60608152602001906001900390816200204057505060408051600180825281830190925290602082015b60608152602001906001900390816200206a579050506040518763ffffffff1660e01b8152600401620020a39695949392919062003d04565b600060405180830381600087803b158015620020be57600080fd5b505af1158015620020d3573d6000803e3d6000fd5b50505050620021176040518060400160405280601e81526020017f696e7374616c6c206b65797320776974682076616c7565206d6f64756c650000815250620023de565b601f54602080546029546040516001600160a01b039485169463af068c9e949316926200214992910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200217792919062003bdc565b600060405180830381600087803b1580156200219257600080fd5b505af1158015620021a7573d6000803e3d6000fd5b50505050620005a1620026b9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110620021f257620021f262003ad3565b60200260200101818152505060006200220e8583600062002f32565b90506200222962002223826000845162003004565b6200309c565b95945050505050565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200226b919062003d52565b60405180910390a162000cc48383620022cc565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381604051620022b8919062003d52565b60405180910390a162000cc4838362002949565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200235a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e60408201527f745d000000000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162002393919062003d9b565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a881604051620023cc919062003de7565b60405180910390a1620012ac620030af565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024a6919062003cca565b620024ae5750565b601b8054620024bd9062003c2c565b9050600014601b604051602001620024d6919062003ebe565b6040516020818303038152906040529062002529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b60405180910390fd5b50601d816040516200253c919062003cac565b9081526020016040518091039020546000148160405160200162002561919062003f5a565b60405160208183030381529060405290620025ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b50601b620025ba82826200401a565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200261a57600080fd5b505af11580156200262f573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b1580156200269d57600080fd5b505af1158015620026b2573d6000803e3d6000fd5b5050505050565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002787919062003cca565b6200278f5750565b600060a082601c54620027a39190620040e7565b620027af9190620040e7565b620027bc90600162003c16565b9050600081116200282a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e2774207573652067617300000000000000604482015260640162002520565b80601d601b6040516200283e9190620040fd565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016200288d601b826200410b565b506200292b601b8054620028a19062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620028cf9062003c2c565b8015620029205780601f10620028f45761010080835404028352916020019162002920565b820191906000526020600020905b8154815290600101906020018083116200290257829003601f168201915b5050505050620031f6565b604080516020810190915260008152601b9062000cc490826200401a565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620029d79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201527f657333325d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162002a10919062003d9b565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f9981604051620023cc919062003de7565b6060600062002a797f6b65797776616c000000000000000000000000000000000000000000000000008762001e14565b9050606060008451111562002ab65785858560405160200162002a9f93929190620041ed565b604051602081830303815290604052905062002ab9565b50845b62002acd88838380519060200120620032f9565b98975050505050505050565b600062002ae96070601062003c16565b9190911b919050565b60008060008084865162002b07919062003c16565b9050601c81111562002b50576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c602482015260440162002520565b600585111562002b97576040517f7f2372c3000000000000000000000000000000000000000000000000000000008152600481018690526005602482015260440162002520565b60005b865181101562002c7d57600087828151811062002bbb5762002bbb62003ad3565b602002602001015190508060000362002c00576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111562002c3c576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030288838151811062002c605762002c6062003ad3565b6020026020010151901b8517945081806001019250505062002b9a565b50600862002c8e60026020620040e7565b62002c9a919062004228565b82901b92909217916008600162002cb460026020620040e7565b62002cc09190620040e7565b62002ccc919062004228565b8651901b9290921791600860018062002ce860026020620040e7565b62002cf49190620040e7565b62002d009190620040e7565b62002d0c919062004228565b9490941b91909117949350505050565b6000601c8251111562002d615781516040517f5318beb90000000000000000000000000000000000000000000000000000000081526004016200252091815260200190565b60008080805b855181101562002e4f57600062002dae87838151811062002d8c5762002d8c62003ad3565b602002602001015160c581111562002da85762002da862003cee565b620033f6565b90508060000362002dc55760019092019162002dfe565b821562002dfe576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811062002e225762002e2262003ad3565b602002602001015160c581111562002e3e5762002e3e62003cee565b901b94909417935060010162002d67565b50600581111562002e90576040517f5318beb90000000000000000000000000000000000000000000000000000000081526004810182905260240162002520565b8451819003600862002ea560026020620040e7565b62002eb1919062004228565b83901b93909317926008600162002ecb60026020620040e7565b62002ed79190620040e7565b62002ee3919062004228565b81901b9390931792600860018062002efe60026020620040e7565b62002f0a9190620040e7565b62002f169190620040e7565b62002f22919062004228565b9190911b92909217949350505050565b6060600062002f406200345e565b9050306001600160a01b0382160362002f695762002f608585856200349d565b91505062001d85565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779062002fb49088908890889060040162004274565b600060405180830381865afa15801562002fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002f6091908101906200431f565b509392505050565b600081831115801562003018575083518211155b62003057578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040162002520939291906200436d565b6020840162003067848262003c16565b90506000620030778585620040e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600062001d858360206000620034e6565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620031c85760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003163929160200162003c62565b60408051601f19818403018152908290526200317f9162003cac565b6000604051808303816000865af19150503d8060008114620031be576040519150601f19603f3d011682016040523d82523d6000602084013e620031c3565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b62001c467f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316636900a3ae601d846040516200323e919062003cac565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252620032889160040190815260200190565b600060405180830381865afa158015620032a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620032d091908101906200431f565b82604051602001620032e492919062004394565b60405160208183030381529060405262003567565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062003336576200333662003ad3565b60209081029190910101526040517f1e7889770000000000000000000000000000000000000000000000000000000081526000906001600160a01b03871690631e788977906200338f9088908690869060040162004274565b600060405180830381865afa158015620033ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620033d791908101906200431f565b9050620033ec62002223826000845162003004565b9695505050505050565b6000808260c58111156200340e576200340e62003cee565b60ff16905060618110156200342957601f1660010192915050565b60618360c581111562003440576200344062003cee565b036200344f5750601492915050565b50600092915050565b50919050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680620019cf573391505090565b5090565b6060620034de620034b0858585620035dc565b6000620034d885620034c389896200365e565b9060ff166028026038011c64ffffffffff1690565b62003674565b949350505050565b60606000620034f58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816200351e576200351e62004419565b04905060405193506020840160208202810160405281855260005b828110156200355b578451871c82529387019360209091019060010162003539565b50505050509392505050565b62001c46816040516024016200357e919062003f45565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905262003699565b60008383604051602001620035f39291906200442f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b600062001d85620036708484620036ba565b5490565b60405160208101601f19603f848401011660405282825262002ffc8585858462003712565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60008282604051602001620036d19291906200442f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215620037a5576020831062003741576020830484019350602083816200373d576200373d62004419565b0692505b8215620037a5576020839003600081841015620037685750600019600884021c1962003773565b50600019600882021c195b8554600886021b8119845116828216178452508184116200379657505062001599565b50600194909401939182900391015b5b60208210620037c95783548152600190930192601f1990910190602001620037a6565b811562001599576000600019600884021c198251865482169119161782525050505050565b61553a806200446083390190565b8280548282559060005260206000209081019282156200383a579160200282015b828111156200383a5782518255916020019190600101906200381d565b50620034999291506200388e565b611a79806200999a83390190565b6118cc806200b41383390190565b610b15806200ccdf83390190565b61567c806200d7f483390190565b614c6d8062012e7083390190565b5b808211156200349957600081556001016200388f565b6020808252825182820181905260009190848201906040850190845b81811015620038e85783516001600160a01b031683529284019291840191600101620038c1565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015620039d2578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620039bc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062003978565b50978a019795505050918701916001016200391c565b50919998505050505050505050565b600060208284031215620039f457600080fd5b5035919050565b60005b8381101562003a18578181015183820152602001620039fe565b50506000910152565b6000815180845262003a3b816020860160208601620039fb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101562003a9b57828403895262003a8884835162003a21565b9885019893509084019060010162003a6d565b5091979650505050505050565b60208152600062001d85602083018462003a4f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000815480845260208085019450836000528060002060005b8381101562003b205781548752958201956001918201910162003b02565b509495945050505050565b85815260a06020820152600062003b4660a083018762003ae9565b828103604084015262003b5a818762003a21565b9050846060840152828103608084015262002acd818562003a21565b828152604060208201526000620034de604083018462003ae9565b85815260a06020820152600062003bac60a083018762003ae9565b60ff86166040840152828103606084015262003bc9818662003a21565b9150508260808301529695505050505050565b6001600160a01b0383168152604060208201526000620034de604083018462003a21565b634e487b7160e01b600052601160045260246000fd5b8082018082111562001d035762001d0362003c00565b600181811c9082168062003c4157607f821691505b6020821081036200345857634e487b7160e01b600052602260045260246000fd5b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162003c9e816004850160208701620039fb565b919091016004019392505050565b6000825162003cc0818460208701620039fb565b9190910192915050565b60006020828403121562003cdd57600080fd5b8151801515811462001d8557600080fd5b634e487b7160e01b600052602160045260246000fd5b86815285602082015284604082015283606082015260c06080820152600062003d3160c083018562003a4f565b82810360a084015262003d45818562003a4f565b9998505050505050505050565b60408152600560408201527f4572726f72000000000000000000000000000000000000000000000000000000606082015260806020820152600062001d85608083018462003a21565b60408152600062003dd960408301600a81527f2020202020204c65667400000000000000000000000000000000000000000000602082015260400190565b905082602083015292915050565b60408152600062003dd960408301600a81527f2020202020526967687400000000000000000000000000000000000000000000602082015260400190565b6000815462003e348162003c2c565b6001828116801562003e4f576001811462003e835762003eb4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945062003eb4565b8560005260208060002060005b8581101562003eab5781548a82015290840190820162003e90565b50505082870194505b5050505092915050565b7f676173207265706f7274202200000000000000000000000000000000000000008152600062003ef2600c83018462003e25565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600062001d85602083018462003a21565b7f676173207265706f72742022000000000000000000000000000000000000000081526000825162003f9481600c850160208701620039fb565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b601f82111562000cc457600081815260208120601f850160051c8101602086101562003ff15750805b601f850160051c820191505b81811015620040125782815560010162003ffd565b505050505050565b815167ffffffffffffffff81111562004037576200403762003abd565b6200404f8162004048845462003c2c565b8462003fc8565b602080601f8311600181146200408757600084156200406e5750858301515b600019600386901b1c1916600185901b17855562004012565b600085815260208120601f198616915b82811015620040b85788860151825594840194600190910190840162004097565b5085821015620040d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111562001d035762001d0362003c00565b600062001d85828462003e25565b81810362004117575050565b62004123825462003c2c565b67ffffffffffffffff8111156200413e576200413e62003abd565b6200414f8162004048845462003c2c565b6000601f8211600181146200418657600083156200416d5750848201545b600019600385901b1c1916600184901b178455620026b2565b600085815260209020601f19841690600086815260209020845b83811015620041c25782860154825560019586019590910190602001620041a0565b5085831015620040d75793015460001960f8600387901b161c19169092555050600190811b01905550565b6000845162004201818460208901620039fb565b820184815283516200421b816020808501908801620039fb565b0160200195945050505050565b808202811582820484141762001d035762001d0362003c00565b600081518084526020808501945080840160005b8381101562003b205781518752958201959082019060010162004256565b8381526060602082015260006200428f606083018562004242565b905060ff83166040830152949350505050565b600067ffffffffffffffff80841115620042c057620042c062003abd565b604051601f8501601f19908116603f01168101908282118183101715620042eb57620042eb62003abd565b816040528093508581528686860111156200430557600080fd5b62004315866020830187620039fb565b5050509392505050565b6000602082840312156200433257600080fd5b815167ffffffffffffffff8111156200434a57600080fd5b8201601f810184136200435c57600080fd5b62001cff84825160208401620042a2565b60608152600062004382606083018662003a21565b60208301949094525060400152919050565b7f474153205245504f52543a200000000000000000000000000000000000000000815260008351620043ce81600c850160208801620039fb565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516200440d81600d840160208801620039fb565b01600d01949350505050565b634e487b7160e01b600052601260045260246000fd5b82815260006020808301845182860160005b8281101562003a9b578151845292840192908401906001016200444156fe60a060405234801561001057600080fd5b506100477f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580546001600160a01b03191630179055565b6040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2336080526040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907f7f8f36afe3fb61c459c1a54a60b8a477eab02cc58e49f547561a40906239cb8290600090a2608051615452620000e86000396000818161036f015261139601526154526000f3fe6080604052600436106101d15760003560e01c80638c364d59116100f7578063c4d66de811610095578063d9c03a0411610064578063d9c03a04146106d1578063dbbf0e21146105d1578063e228a4a3146106f1578063ef6ea8621461071157610266565b8063c4d66de814610651578063cc49db7e14610671578063d03edb8c14610691578063d4285dc2146106b157610266565b8063af068c9e116100d1578063af068c9e146105f1578063b047c1eb14610611578063c0a2895a14610631578063c11222291461054b57610266565b80638c364d59146105915780639f1fcf0a146105b1578063a53417ed146105d157610266565b8063390baae01161016f5780634dc77d971161013e5780634dc77d971461050b578063505a181d1461052b5780636951955d1461054b578063894ecc581461057e57610266565b8063390baae01461047b5780633a77c2c21461049b5780633ae7af08146104c9578063419b58fd146104dc57610266565b8063150f3262116101ab578063150f3262146103fb5780631e7889771461041b578063298314fb1461043b5780633708196e1461045b57610266565b806302d05d3f1461035d57806305242d2f146103ae578063114a7266146103db57610266565b366102665760408051616e7360f01b6020820152600060228201819052603082018190529161021891016040516020818303038152906040526102139061459d565b610731565b60408051616e7360f01b6020820152600060228201819052603082015291925061026491016040516020818303038152906040526102559061459d565b61025f34846145da565b61080f565b005b303303610299576040516327a1460b60e21b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6000806102b16000356001600160e01b031916610901565b91509150816000801b036102ff576040517ffdde54e20000000000000000000000000000000000000000000000000000000081526001600160e01b0319600035166004820152602401610290565b60006103436000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250869150610a119050565b9050600061035333858434610a44565b9050805160208201f35b34801561036957600080fd5b506103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103ce6103c936600461464a565b610a71565b6040516103a59190614700565b3480156103e757600080fd5b506102646103f6366004614755565b610ab4565b34801561040757600080fd5b50610264610416366004614755565b610b67565b34801561042757600080fd5b506103ce6104363660046147e2565b610c12565b34801561044757600080fd5b50610264610456366004614840565b610c5c565b34801561046757600080fd5b506102646104763660046148ed565b610d45565b34801561048757600080fd5b506102646104963660046148ed565b610dfb565b3480156104a757600080fd5b506104bb6104b6366004614983565b610ea8565b6040519081526020016103a5565b6103ce6104d7366004614a53565b610eb9565b3480156104e857600080fd5b506104fc6104f7366004614a9a565b610ef5565b6040516103a593929190614aed565b34801561051757600080fd5b506103ce610526366004614b8d565b610f4a565b34801561053757600080fd5b50610264610546366004614bf6565b610f59565b34801561055757600080fd5b507f312e302e302d756e6175646974656400000000000000000000000000000000006104bb565b6103ce61058c366004614c57565b610fce565b34801561059d57600080fd5b506104bb6105ac36600461464a565b61112a565b3480156105bd57600080fd5b506104bb6105cc366004614cb0565b61116d565b3480156105dd57600080fd5b506104bb6105ec366004614d0f565b61117b565b3480156105fd57600080fd5b5061026461060c366004614d66565b611188565b34801561061d57600080fd5b5061026461062c366004614da0565b611204565b34801561063d57600080fd5b5061026461064c366004614e2f565b6112af565b34801561065d57600080fd5b5061026461066c366004614ebc565b61135d565b34801561067d57600080fd5b506104fc61068c366004614bf6565b6114d8565b34801561069d57600080fd5b506103ce6106ac3660046147e2565b61152a565b3480156106bd57600080fd5b506104bb6106cc366004614983565b61156b565b3480156106dd57600080fd5b506102646106ec36600461464a565b611576565b3480156106fd57600080fd5b506104bb61070c366004614983565b6115f6565b34801561071d57600080fd5b5061026461072c366004614755565b611601565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061076a5761076a614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e636573000000000000000000000000000000000000000000000000603083015260009161080791015b6040516020818303038152906040526107df9061459d565b8360007e200100200000000000000000000000000000000000000000000000000000006116ac565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061084557610845614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526108fc906108b19061459d565b826000856040516020016108c791815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006116d9565b505050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061095a5761095a614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f720000000000000000000000000000000060308201528151808203909301835281019052600090819081906109f3906109cd9061459d565b857e240200200400000000000000000000000000000000000000000000000000006116ee565b925092509250610a048383836117f6565b9550955050505050915091565b82820160200180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052825b9392505050565b6060600080610a558787878761180e565b9150915081610a6757610a67816119f2565b9695505050505050565b6060610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506119fa9050565b303303610ae2576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610aec8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611a8b92505050565b505050505050565b303303610b95576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610b9f8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611aa692505050565b6060610c5385858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611ae1915050565b95945050505050565b303303610c8a576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610c948833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b1b92505050565b5050505050505050565b303303610d73576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610d7d8733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611b31915050565b50505050505050565b303303610e29576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610e338733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506116d9915050565b6000610eb382611b74565b92915050565b6060303303610ee9576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610a3d33848434610a44565b606060006060610f3a878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506116ee915050565b9250925092509450945094915050565b6060610a678686868686611c44565b303303610f87576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610f918333611a3f565b6108fc83838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d0592505050565b6060303303610ffe576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b038516036110215761101a33848434610a44565b9050610a3d565b600061102d8533611d18565b905061103c8186338787611dea565b156110555761104d85858534610a44565b915050610a3d565b6000611062866000611d18565b90506110718187338888611dea565b1561108b5761108286868634610a44565b92505050610a3d565b60006110bd616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000881617611ebf565b90506110cc8188338989611dea565b156110e7576110dd87878734610a44565b9350505050610a3d565b6040517fc86745f90000000000000000000000000000000000000000000000000000000081526001600160a01b0388166004820152336024820152604401610290565b6000610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116ac9050565b6000610c5385858585611f59565b6000610807848484611fa1565b3033036111b6576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b60408051616e7360f01b602082015260006022820181905260308201526111f691016040516020818303038152906040526111f09061459d565b33611fb7565b6112008282612008565b5050565b303303611232576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b61123c8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061211a92505050565b3033036112dd576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6112e78833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506123c992505050565b30330361138b576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461142f5760408051616e7360f01b602082015260006022820181905260308201526113fa91016040516020818303038152906040526113f59061459d565b6123e1565b336040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b600061147b7f636f7265000000000000000000000000000000000000000000000000000000007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47061250f565b6001600160a01b0316146114bb576040517f15e34a4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008152602081019091526114d5908290612008565b50565b60606000606061151b8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061262492505050565b92509250925093509350939050565b6060610c538585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525087925061264a915050565b6000610eb382612660565b3033036115a4576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6115ae8533611a3f565b6115ef858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792508691506126d49050565b5050505050565b6000610eb38261272d565b30330361162f576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6116398633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061275392505050565b6000610c536116bb868661278e565b60ff858116601b0360080285901c166116d485876127e4565b612827565b6115ef85856116e884876127e4565b8561211a565b60606000606060006116ff85612878565b905061170c87878361289b565b93506000611719866128d4565b905080156117eb5761172b8888612911565b935066ffffffffffffff841667ffffffffffffffff81111561174f5761174f61499c565b6040519080825280601f01601f191660200182016040528015611779576020820181803683370190505b5092506020830160005b828160ff1610156117e857600061179b8b8b84612924565b905060006117b8888460ff166028026038011c64ffffffffff1690565b90506117c782600083876129a4565b6117d181856145da565b9350505080806117e090614f1a565b915050611783565b50505b505093509350939050565b60008061180285612a73565b90969095509350505050565b60006060600061181d86612a88565b905060005b81518110156118fa57600082828151811061183f5761183f614ed9565b6020026020010151905061186b6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156118e7576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c3323031906118b4908c908c908c90600401614f39565b600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b505050505b50806118f281614f61565b915050611822565b5061190787858888612b74565b909350915060005b81518110156119e757600082828151811061192c5761192c614ed9565b602002602001015190506119586002826affffffffffffffffffffff1916612b5690919063ffffffff16565b156119d4576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f99906119a1908c908c908c90600401614f39565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b50806119df81614f61565b91505061190f565b505094509492505050565b805160208201fd5b6060611a0582612c8f565b8360ff161015611a2257611a1b85858585612ca1565b9050610807565b611a1b8585611a3085612c8f565b611a3a9087614f7b565b611ae1565b611a498282612cce565b61120057611a56826123e1565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b611aa084848484611a9b89611b74565b611b31565b50505050565b6000611ab28585612911565b90506000611acf828560ff166028026038011c64ffffffffff1690565b9050610b5f8686868460008888612d11565b6060610807611af1858585612924565b6000611b1685611b018989612911565b9060ff166028026038011c64ffffffffff1690565b613127565b6115ef8585858585611b2c8b611b74565b61314a565b611b3a81612c8f565b8360ff161015611b5657611b5185858585856116d9565b6115ef565b6115ef8585611b6484612c8f565b611b6e9087614f7b565b85612753565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b603082015260009101604051602081830303815290604052611bbc9061459d565b8203611be857507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b6030820152610eb391611c3b9101604051602081830303815290604052611c359061459d565b846134a3565b60206000612827565b60606000611c528787612911565b90506000611c6f828760ff166028026038011c64ffffffffff1690565b90508085101580611c7f57508084115b15611cda578081861015611c9d57611c98600186614f94565b611c9f565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610290565b6000611ce7898989612924565b9050611cf88187611b168189614f94565b9998505050505050505050565b6112008282611d1385611b74565b6134bf565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611d5d57611d5d614ed9565b602002602001018181525050826001600160a01b031660001b81600181518110611d8957611d89614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152600091610c5391016107c7565b6000611df5866137d2565b15611e0257506001610c53565b85611e0f57506000610c53565b600080611e8b8660008a8a8989604051602401611e2e93929190614f39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1a86b55000000000000000000000000000000000000000000000000000000000179052612b74565b9150915081611e9f57600092505050610c53565b80806020019051810190611eb39190614fa7565b98975050505050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611ef857611ef8614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c6567617400000000000000000000000000000000603083015260009161080791016107c7565b600080611f6583612c8f565b90508060ff168460ff161015611f8d5760ff848116601b0360080284901c165b915050610807565b611f858686611f9c8488614f7b565b61384d565b6000610807848484611fb288611b74565b611f59565b6001600160a01b038116611ff1616e7360f01b7dffffffffffffffffffffffffffff0000000000000000000000000000000085161761385d565b6001600160a01b03161461120057611a56826123e1565b612032827f780ac2fc00000000000000000000000000000000000000000000000000000000613902565b6120a7336000848460405160240161204a9190614700565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c5b03350000000000000000000000000000000000000000000000000000000017905261395d565b50611200826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210d9190614fc9565b825160208401208461396e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036121a457837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161219793929190615037565b60405180910390a2611aa0565b60006121b0858561278e565b905060006121bd86613aae565b905060005b815181101561229c5760008282815181106121df576121df614ed9565b6020026020010151905061220b6004826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612289576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612256908b908b908b908b9060040161506a565b600060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050505b508061229481614f61565b9150506121c2565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516122d193929190615037565b60405180910390a26122ec828565ffffffffffff1685613b49565b60005b8151811015610df257600082828151811061230c5761230c614ed9565b602002602001015190506123386008826affffffffffffffffffffff1916612b5690919063ffffffff16565b156123b6576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612383908b908b908b908b9060040161506a565b600060405180830381600087803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b505050505b50806123c181614f61565b9150506122ef565b610b5f8686868686866123dc8d8d612911565b612d11565b606081601081901b60006123f483613b5f565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561244f5761244a7fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613b76565b612486565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff198316156124ad576124a883613b76565b6124e4565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016124f6939291906150a3565b6040516020818303038152906040529350505050919050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061255b5761255b614ed9565b602002602001018181525050828160018151811061257b5761257b614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603083015260009161261891015b6040516020818303038152906040526125f09061459d565b8360007e140100140000000000000000000000000000000000000000000000000000006116ac565b60601c95945050505050565b60606000606061263d858561263888611b74565b6116ee565b9250925092509250925092565b606061080784848461265b88611b74565b6119fa565b600061266b82613c06565b905061267682613cbf565b6126cf57818260405160200161268e91815260200190565b60408051601f19818403018152908290527f41e713ad0000000000000000000000000000000000000000000000000000000082526102909291600401615131565b919050565b60006126e08585612911565b905060006126fd828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866127168764ffffffffff8716614f94565b604080516000815260208101909152889088612d11565b600061273882613da1565b9050806126cf57818260405160200161268e91815260200190565b600061275f8585612911565b9050600061277c828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866000858888612d11565b600082826040516020016127a392919061514a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561281f5761280b60ff601b83900360080287901c16836145da565b91508061281781614f61565b9150506127e9565b509392505050565b60006020821061284d5760208204840193506020828161284957612849615185565b0691505b508254600882021b60208290038084111561281f576001850154600882021c82179150509392505050565b6000600861288860026020614f94565b612892919061519b565b9190911c919050565b6060816000036128ba5750604080516020810190915260008152610a3d565b60006128c6858561278e565b9050610c5381600085613127565b600060086001806128e760026020614f94565b6128f19190614f94565b6128fb9190614f94565b612905919061519b565b8260ff911c1692915050565b6000610a3d6129208484613e5a565b5490565b6000838360405160200161293992919061514a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215612a2d57602083106129ce576020830484019350602083816129ca576129ca615185565b0692505b8215612a2d5760208390036000818410156129f25750600019600884021c196129fd565b50600019600882021c195b8554600886021b811984511682821617845250818411612a1e575050611aa0565b50600194909401939182900391015b5b60208210612a4f5783548152600190930192601f1990910190602001612a2e565b8115611aa0576000600019600884021c198251865482169119161782525050505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612ac257612ac2614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091612b3f91015b604051602081830303815290604052612b379061459d565b836000611ae1565b9050610807612b518260008451613eb0565b613f40565b60008160ff1682612b678560581c90565b1660ff1614905092915050565b60006060600080612b8486613f51565b90925090506001600160a01b038216612bd55785612ba1876123e1565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610290929190615131565b80612be457612be48689611a3f565b8615612c30577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000612c1d82610731565b9050612c2d8261025f8b846145da565b50505b6000612c3c8760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c7457612c6f88888488614035565b612c80565b612c80888884886140ad565b90999098509650505050505050565b6000600860016128f160026020614f94565b6060610c53612cb0868661278e565b612cba84866127e4565b60ff868116601b0360080286901c16613127565b6000612d01616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516178361410e565b80610a3d5750610a3d838361410e565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614612d9b57613a3160f11b8788604051602001612d5991815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102909392916004016151b2565b6000612db6828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612dcf9190614f94565b612dd991906145da565b9050808214158015612dfb575081612df186886151f3565b64ffffffffff1614155b15612e4b576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610290565b818664ffffffffff161115612e9c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610290565b6000612ea98489846141e0565b90506000612eb68b613aae565b905060005b8151811015612f8b576000828281518110612ed857612ed8614ed9565b60200260200101519050612f046010826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612f7857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401612f459796959493929190615218565b600060405180830381600087803b158015612f5f57600080fd5b505af1158015612f73573d6000803e3d6000fd5b505050505b5080612f8381614f61565b915050612ebb565b5064ffffffffff881660005b8a60ff168160ff161015612fca57612fbe878260ff166028026038011c64ffffffffff1690565b90910190600101612f97565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c604051613003959493929190615276565b60405180910390a25082841461302457600061301f8c8c613e5a565b839055505b60006130318c8c8c612924565b9050613045818a64ffffffffff1689613b49565b5060005b815181101561311957600082828151811061306657613066614ed9565b602002602001015190506130926020826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561310657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016130d39796959493929190615218565b600060405180830381600087803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b505050505b508061311181614f61565b915050613049565b505050505050505050505050565b60405160208101601f19603f848401011660405282825261281f858585846129a4565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036131d657857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516131c994939291906152bc565b60405180910390a2610b5f565b60006131e187613aae565b905060005b81518110156132c457600082828151811061320357613203614ed9565b6020026020010151905061322f6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156132b1576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061327e908c908c908c908c908c908c906004016152fb565b600060405180830381600087803b15801561329857600080fd5b505af11580156132ac573d6000803e3d6000fd5b505050505b50806132bc81614f61565b9150506131e6565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516132fb94939291906152bc565b60405180910390a2600061330f888861278e565b905060006020870190506133278260008951846142ae565b6000613332856128d4565b11156133b65760006133448a8a613e5a565b878155905060208601915060008060005b61335e886128d4565b8160ff1610156133b1576133738d8d83612924565b925061338e8a8260ff166028026038011c64ffffffffff1690565b915061339d83600084886142ae565b6133a782866145da565b9450600101613355565b505050505b60005b83518110156134975760008482815181106133d6576133d6614ed9565b602002602001015190506134026002826affffffffffffffffffffff1916612b5690919063ffffffff16565b15613484576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613451908e908e908e908e908e908e906004016152fb565b600060405180830381600087803b15801561346b57600080fd5b505af115801561347f573d6000803e3d6000fd5b505050505b508061348f81614f61565b9150506133b9565b50505050505050505050565b60408051602081018490529081018290526000906060016127a3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361354557827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516135389190615354565b60405180910390a2505050565b600061355084613aae565b905060005b815181101561362d57600082828151811061357257613572614ed9565b6020026020010151905061359e6040826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561361a576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906135e790899089908990600401615367565b600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b505050505b508061362581614f61565b915050613555565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078460405161365e9190615354565b60405180910390a26000613672858561278e565b90506136cb81600061368386612878565b67ffffffffffffffff81111561369b5761369b61499c565b6040519080825280601f01601f1916602001820160405280156136c5576020820181803683370190505b50613b49565b60006136d6846128d4565b11156136f75760006136e88686613e5a565b90506136f581602061436e565b505b60005b8251811015610b5f57600083828151811061371757613717614ed9565b602002602001015190506137436080826affffffffffffffffffffff1916612b5690919063ffffffff16565b156137bf576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b9061378c908a908a908a90600401615367565b600060405180830381600087803b1580156137a657600080fd5b505af11580156137ba573d6000803e3d6000fd5b505050505b50806137ca81614f61565b9150506136fa565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d697465640000000000000000000000000000000000000000000000603083015291016040516020818303038152906040526138459061459d565b909114919050565b600061080782611b018686612911565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061389657613896614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526000916138f791016125d8565b60601c949350505050565b61390c82826143ab565b611200576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610290565b6060600080610a55878787876140ad565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff1916816000815181106139b6576139b6614ed9565b60200260200101818152505082816001815181106139d6576139d6614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052611aa090613a429061459d565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006116d9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ae857613ae8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091612b3f9101612b1f565b6108fc83838351613b5a8560200190565b6142ae565b6000613b6d607060106145da565b9190911b919050565b606060005b6010811015613bd6576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613bd65780613bce81614f61565b915050613b7b565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610807565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613c3f57613c3f614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613c979061459d565b8360017e600302202020000000000000000000000000000000000000000000000000006116ac565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613cf857613cf8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091613d9591015b604051602081830303815290604052613d6d9061459d565b8360007e010100010000000000000000000000000000000000000000000000000000006116ac565b90506108078160f81c90565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613dda57613dda614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613e329061459d565b8360027e600302202020000000000000000000000000000000000000000000000000006116ac565b60008282604051602001613e6f92919061514a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000818311158015613ec3575083518211155b613eff578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161029093929190615390565b60208401613f0d84826145da565b90506000613f1b8585614f94565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610a3d83601560006143c7565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f8b57613f8b614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061402490613ffe9061459d565b857e150200140100000000000000000000000000000000000000000000000000006116ee565b925092509250610a04838383614442565b60006060836001600160a01b0316600061405085898961444e565b60405161405d91906153b5565b60006040518083038185875af1925050503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b606091505b509097909650945050505050565b60006060836001600160a01b03166140c684888861444e565b6040516140d391906153b5565b600060405180830381855af49150503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061414757614147614ed9565b602002602001018181525050826001600160a01b031660001b8160018151811061417357614173614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f7572636541636365737300000000000000000000000000000000000060308301526000916141d49101613d55565b9050610c538160f81c90565b600064ffffffffff821115614224576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610290565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510614256578085038201915061425e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561432857602083106142d8576020830484019350602083816142d4576142d4615185565b0692505b82156143285760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411614319575050611aa0565b50600194909401939182900391015b5b6020821061434a5780518455600190930192601f1990910190602001614329565b8115611aa0576000600019600884021c198554835182169119161785555050505050565b6000602061437d83601f6145da565b61438791906153d1565b61439190846145da565b90505b808310156108fc5760008355600183019250614394565b60006143b68361447d565b8015610a3d5750610a3d83836144c9565b606060006143d58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816143fb576143fb615185565b04905060405193506020840160208202810160405281855260005b82811015614436578451871c825293870193602090910190600101614416565b50505050509392505050565b60008061180285614581565b6060838383604051602001614465939291906153f3565b60405160208183030381529060405290509392505050565b60006144a9827f01ffc9a7000000000000000000000000000000000000000000000000000000006144c9565b8015610eb357506144c2826001600160e01b03196144c9565b1592915050565b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561456a575060208210155b80156145765750600081115b979650505050505050565b6020810151603482015160609190911c9060009060f81c612a81565b805160208083015191908110156145be576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eb357610eb36145c4565b60008083601f8401126145ff57600080fd5b50813567ffffffffffffffff81111561461757600080fd5b6020830191508360208260051b850101111561463257600080fd5b9250929050565b803560ff811681146126cf57600080fd5b60008060008060006080868803121561466257600080fd5b85359450602086013567ffffffffffffffff81111561468057600080fd5b61468c888289016145ed565b909550935061469f905060408701614639565b949793965091946060013592915050565b60005b838110156146cb5781810151838201526020016146b3565b50506000910152565b600081518084526146ec8160208601602086016146b0565b601f01601f19169290920160200192915050565b602081526000610a3d60208301846146d4565b60008083601f84011261472557600080fd5b50813567ffffffffffffffff81111561473d57600080fd5b60208301915083602082850101111561463257600080fd5b6000806000806000806080878903121561476e57600080fd5b86359550602087013567ffffffffffffffff8082111561478d57600080fd5b6147998a838b016145ed565b90975095508591506147ad60408a01614639565b945060608901359150808211156147c357600080fd5b506147d089828a01614713565b979a9699509497509295939492505050565b600080600080606085870312156147f857600080fd5b84359350602085013567ffffffffffffffff81111561481657600080fd5b614822878288016145ed565b9094509250614835905060408601614639565b905092959194509250565b60008060008060008060008060a0898b03121561485c57600080fd5b88359750602089013567ffffffffffffffff8082111561487b57600080fd5b6148878c838d016145ed565b909950975060408b01359150808211156148a057600080fd5b6148ac8c838d01614713565b909750955060608b0135945060808b01359150808211156148cc57600080fd5b506148d98b828c01614713565b999c989b5096995094979396929594505050565b600080600080600080600060a0888a03121561490857600080fd5b87359650602088013567ffffffffffffffff8082111561492757600080fd5b6149338b838c016145ed565b909850965086915061494760408b01614639565b955060608a013591508082111561495d57600080fd5b5061496a8a828b01614713565b989b979a50959894979596608090950135949350505050565b60006020828403121561499557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156149db576149db61499c565b604052919050565b600082601f8301126149f457600080fd5b813567ffffffffffffffff811115614a0e57614a0e61499c565b614a216020601f19601f840116016149b2565b818152846020838601011115614a3657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614a6657600080fd5b82359150602083013567ffffffffffffffff811115614a8457600080fd5b614a90858286016149e3565b9150509250929050565b60008060008060608587031215614ab057600080fd5b84359350602085013567ffffffffffffffff811115614ace57600080fd5b614ada878288016145ed565b9598909750949560400135949350505050565b606081526000614b0060608301866146d4565b8460208401528281036040840152610a6781856146d4565b600082601f830112614b2957600080fd5b8135602067ffffffffffffffff821115614b4557614b4561499c565b8160051b614b548282016149b2565b9283528481018201928281019087851115614b6e57600080fd5b83870192505b8483101561457657823582529183019190830190614b74565b600080600080600060a08688031215614ba557600080fd5b85359450602086013567ffffffffffffffff811115614bc357600080fd5b614bcf88828901614b18565b945050614bde60408701614639565b94979396509394606081013594506080013592915050565b600080600060408486031215614c0b57600080fd5b83359250602084013567ffffffffffffffff811115614c2957600080fd5b614c35868287016145ed565b9497909650939450505050565b6001600160a01b03811681146114d557600080fd5b600080600060608486031215614c6c57600080fd5b8335614c7781614c42565b925060208401359150604084013567ffffffffffffffff811115614c9a57600080fd5b614ca6868287016149e3565b9150509250925092565b60008060008060808587031215614cc657600080fd5b84359350602085013567ffffffffffffffff811115614ce457600080fd5b614cf087828801614b18565b935050614cff60408601614639565b9396929550929360600135925050565b600080600060608486031215614d2457600080fd5b83359250602084013567ffffffffffffffff811115614d4257600080fd5b614d4e86828701614b18565b925050614d5d60408501614639565b90509250925092565b60008060408385031215614d7957600080fd5b8235614d8481614c42565b9150602083013567ffffffffffffffff811115614a8457600080fd5b60008060008060008060808789031215614db957600080fd5b86359550602087013567ffffffffffffffff80821115614dd857600080fd5b614de48a838b016145ed565b90975095506040890135915065ffffffffffff82168214614e0457600080fd5b909350606088013590808211156147c357600080fd5b803564ffffffffff811681146126cf57600080fd5b60008060008060008060008060c0898b031215614e4b57600080fd5b88359750602089013567ffffffffffffffff80821115614e6a57600080fd5b614e768c838d016145ed565b9099509750879150614e8a60408c01614639565b9650614e9860608c01614e1a565b9550614ea660808c01614e1a565b945060a08b01359150808211156148cc57600080fd5b600060208284031215614ece57600080fd5b8135610a3d81614c42565b634e487b7160e01b600052603260045260246000fd5b604081526000614f0260408301856146d4565b90506001600160a01b03831660208301529392505050565b600060ff821660ff8103614f3057614f306145c4565b60010192915050565b6001600160a01b0384168152826020820152606060408201526000610c5360608301846146d4565b60006000198203614f7457614f746145c4565b5060010190565b60ff8281168282160390811115610eb357610eb36145c4565b81810381811115610eb357610eb36145c4565b600060208284031215614fb957600080fd5b81518015158114610a3d57600080fd5b600060208284031215614fdb57600080fd5b81516fffffffffffffffffffffffffffffffff1981168114610a3d57600080fd5b600081518084526020808501945080840160005b8381101561502c57815187529582019590820190600101615010565b509495945050505050565b60608152600061504a6060830186614ffc565b65ffffffffffff851660208401528281036040840152610a6781856146d4565b8481526080602082015260006150836080830186614ffc565b65ffffffffffff85166040840152828103606084015261457681856146d4565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516151048160038601602089016146b0565b8084019050816003820152845191506151248260048301602088016146b0565b0160040195945050505050565b82815260406020820152600061080760408301846146d4565b82815260006020808301845182860160005b828110156151785781518452928401929084019060010161515c565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b8082028115828204841417610eb357610eb36145c4565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000610c5360608301846146d4565b64ffffffffff818116838216019080821115615211576152116145c4565b5092915050565b87815260e06020820152600061523160e0830189614ffc565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261526881856146d4565b9a9950505050505050505050565b60a08152600061528960a0830188614ffc565b65ffffffffffff8716602084015264ffffffffff861660408401528460608401528281036080840152611eb381856146d4565b6080815260006152cf6080830187614ffc565b82810360208401526152e181876146d4565b9050846040840152828103606084015261457681856146d4565b86815260c06020820152600061531460c0830188614ffc565b828103604084015261532681886146d4565b9050856060840152828103608084015261534081866146d4565b9150508260a0830152979650505050505050565b602081526000610a3d6020830184614ffc565b8381526060602082015260006153806060830185614ffc565b9050826040830152949350505050565b6060815260006153a360608301866146d4565b60208301949094525060400152919050565b600082516153c78184602087016146b0565b9190910192915050565b6000826153ee57634e487b7160e01b600052601260045260246000fd5b500490565b600084516154058184602089016146b0565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea164736f6c6343000815000a608060405234801561001057600080fd5b50611a59806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806345ec93541161005b57806345ec9354146100ec5780638d53b208146100ff578063e1af802c14610112578063ef5d6bbb1461011a57600080fd5b806301ffc9a714610082578063119df25f146100aa57806340554c3a146100d7575b600080fd5b61009561009036600461165b565b61012d565b60405190151581526020015b60405180910390f35b6100b26101c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461169d565b6101d5565b005b604051601f1936013581526020016100a1565b6100ea61010d36600461169d565b6101f6565b6100b261020c565b6100ea61012836600461169d565b610216565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101c057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d061023d565b905090565b6101e6826101e16101c6565b61026f565b6101f282826001610333565b5050565b610202826101e16101c6565b6101f28282610463565b60006101d0610568565b610222826101e16101c6565b61022c82826105b4565b6101e6826102386101c6565b610463565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061026c5750335b90565b73ffffffffffffffffffffffffffffffffffffffff81166102d17f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008516176106c2565b73ffffffffffffffffffffffffffffffffffffffff16146101f2576102f58261079d565b816040517fd787b73700000000000000000000000000000000000000000000000000000000815260040161032a929190611736565b60405180910390fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061036857610368611784565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106103a1576103a1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261045d9061040d9061179a565b8260008560405160200161042891151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006108da565b50505050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061049857610498611784565b6020026020010181815250508173ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106104d1576104d1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526105639061053d9061179a565b827e010100010000000000000000000000000000000000000000000000000000006108f6565b505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806105af573391505090565b919050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105ea576105ea611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201528151808203909301835281019052610563906106569061179a565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006108da565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106106fb576106fb611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906107929061076a9061179a565b8360007e14010014000000000000000000000000000000000000000000000000000000610c11565b60601c949350505050565b606081601081901b60006107b083610c47565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561080b576108067fffffffffffffffffffffffffffff0000000000000000000000000000000000008416610c5e565b610842565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156108785761087383610c5e565b6108af565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016108c1939291906117c1565b6040516020818303038152906040529350505050919050565b6108ef85856108e98487610d10565b85610d53565b5050505050565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361097c57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161096f919061188a565b60405180910390a2505050565b60006109878461100b565b905060005b8151811015610a645760008282815181106109a9576109a9611784565b602002602001015190506109d56040826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610a51576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590610a1e9089908990899060040161189d565b600060405180830381600087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050505b5080610a5c816118dc565b91505061098c565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051610a95919061188a565b60405180910390a26000610aa98585611109565b9050610b02816000610aba8661115f565b67ffffffffffffffff811115610ad257610ad261176e565b6040519080825280601f01601f191660200182016040528015610afc576020820181803683370190505b50611182565b6000610b0d84611198565b1115610b2e576000610b1f86866111d5565b9050610b2c81602061122b565b505b60005b8251811015610c09576000838281518110610b4e57610b4e611784565b60200260200101519050610b7a6080826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610bf6576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90610bc3908a908a908a9060040161189d565b600060405180830381600087803b158015610bdd57600080fd5b505af1158015610bf1573d6000803e3d6000fd5b505050505b5080610c01816118dc565b915050610b31565b505050505050565b6000610c3e610c208686611109565b60ff858116601b0360080285901c16610c398587610d10565b611268565b95945050505050565b6000610c55607060106118f6565b9190911b919050565b606060005b6010811015610ccd577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615610ccd5780610cc5816118dc565b915050610c63565b604080517fffffffffffffffffffffffffffffffff000000000000000000000000000000008516602082015281516030909101909152818152805b949350505050565b600080805b8360ff16811015610d4b57610d3760ff601b83900360080287901c16836118f6565b915080610d43816118dc565b915050610d15565b509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610ddd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610dd093929190611909565b60405180910390a261045d565b6000610de98585611109565b90506000610df68661100b565b905060005b8151811015610ed5576000828281518110610e1857610e18611784565b60200260200101519050610e446004826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610ec2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610e8f908b908b908b908b90600401611946565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050505b5080610ecd816118dc565b915050610dfb565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610f0a93929190611909565b60405180910390a2610f25828565ffffffffffff1685611182565b60005b8151811015611002576000828281518110610f4557610f45611784565b60200260200101519050610f716008826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610fef576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610fbc908b908b908b908b90600401611946565b600060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050505b5080610ffa816118dc565b915050610f28565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061104557611045611784565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110d4906110cc9061179a565b8360006112b9565b9050610d086110e682600084516112f3565b611383565b60008160ff16826110fc8560581c90565b1660ff1614905092915050565b6000828260405160200161111e92919061198a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000600861116f600260206119c5565b61117991906119d8565b9190911c919050565b610563838383516111938560200190565b61139b565b600060086001806111ab600260206119c5565b6111b591906119c5565b6111bf91906119c5565b6111c991906119d8565b8260ff911c1692915050565b600082826040516020016111ea92919061198a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000602061123a83601f6118f6565b6112449190611a05565b61124e90846118f6565b90505b808310156105635760008355600183019250611251565b60006020821061128e5760208204840193506020828161128a5761128a6119ef565b0691505b508254600882021b602082900380841115610d4b576001850154600882021c82179150509392505050565b6060610d086112c985858561145b565b60006112ee856112d989896114db565b9060ff166028026038011c64ffffffffff1690565b6114ee565b6000818311158015611306575083518211155b611342578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161032a93929190611a27565b6020840161135084826118f6565b9050600061135e85856119c5565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006113948360156000611511565b9392505050565b821561141557602083106113c5576020830484019350602083816113c1576113c16119ef565b0692505b82156114155760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161140657505061045d565b50600194909401939182900391015b5b602082106114375780518455600190930192601f1990910190602001611416565b811561045d576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161147092919061198a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006113946114ea84846111d5565b5490565b60405160208101601f19603f8484010116604052828252610d4b8585858461158c565b6060600061151f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611545576115456119ef565b04905060405193506020840160208202810160405281855260005b82811015611580578451871c825293870193602090910190600101611560565b50505050509392505050565b821561161557602083106115b6576020830484019350602083816115b2576115b26119ef565b0692505b82156116155760208390036000818410156115da5750600019600884021c196115e5565b50600019600882021c195b8554600886021b81198451168282161784525081841161160657505061045d565b50600194909401939182900391015b5b602082106116375783548152600190930192601f1990910190602001611616565b811561045d576000600019600884021c198251865482169119161782525050505050565b60006020828403121561166d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461139457600080fd5b600080604083850312156116b057600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff811681146116db57600080fd5b809150509250929050565b60005b838110156117015781810151838201526020016116e9565b50506000910152565b600081518084526117228160208601602086016116e6565b601f01601f19169290920160200192915050565b604081526000611749604083018561170a565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156117bb576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516118228160038601602089016116e6565b8084019050816003820152845191506118428260048301602088016116e6565b0160040195945050505050565b600081518084526020808501945080840160005b8381101561187f57815187529582019590820190600101611863565b509495945050505050565b602081526000611394602083018461184f565b8381526060602082015260006118b6606083018561184f565b9050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600060001982036118ef576118ef6118c6565b5060010190565b808201808211156101c0576101c06118c6565b60608152600061191c606083018661184f565b65ffffffffffff85166020840152828103604084015261193c818561170a565b9695505050505050565b84815260806020820152600061195f608083018661184f565b65ffffffffffff85166040840152828103606084015261197f818561170a565b979650505050505050565b82815260006020808301845182860160005b828110156119b85781518452928401929084019060010161199c565b5091979650505050505050565b818103818111156101c0576101c06118c6565b80820281158282048414176101c0576101c06118c6565b634e487b7160e01b600052601260045260246000fd5b600082611a2257634e487b7160e01b600052601260045260246000fd5b500490565b606081526000611a3a606083018661170a565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b506118ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806345ec93541161005057806345ec9354146100e1578063c9c85a60146100f4578063e1af802c1461010757600080fd5b806301ffc9a714610077578063119df25f1461009f57806345afd199146100cc575b600080fd5b61008a610085366004611460565b61010f565b60405190151581526020015b60405180910390f35b6100a76101a8565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b6100df6100da3660046114a2565b6101b7565b005b604051601f193601358152602001610096565b6100df6101023660046114f3565b6102ac565b6100a76103e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101b26103f1565b905090565b6101c8836101c36101a8565b610423565b60006101d384610473565b90508082111561021e576040517f0e0e2d4d00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6102318461022c848461154e565b610563565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102a4576102a48161066d565b505050505050565b7f6e73000000000000000000000000000000000000000000000000000000000000827fffff0000000000000000000000000000000000000000000000000000000000001614610355577f6e730000000000000000000000000000000000000000000000000000000000008261032084610675565b6040517f5c30fb6f000000000000000000000000000000000000000000000000000000008152600401610215939291906115b1565b61035e826107b2565b61036a836101c36101a8565b600061037584610473565b9050808211156103bb576040517f0e0e2d4d0000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610215565b6103c98461022c848461154e565b6103e183836103d786610473565b61022c91906115f2565b50505050565b60006101b2610800565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806104205750335b90565b61042d828261084c565b61046f5761043a82610675565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610215929190611605565b5050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104ac576104ac61163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e6365730000000000000000000000000000000000000000000000006030820152815180820390930183528101905260009061055b906105339061166c565b8360007e200100200000000000000000000000000000000000000000000000000000006108b1565b949350505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105995761059961163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526106689061061d9061166c565b8260008560405160200161063391815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006108e7565b505050565b805160208201fd5b606081601081901b600061068883610903565b9050827fffffffffffffffffffffffffffff0000000000000000000000000000000000008316156106e3576106de7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661091a565b61071a565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156107505761074b8361091a565b610787565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b60405160200161079993929190611693565b6040516020818303038152906040529350505050919050565b6107bb816109c8565b6107fd57806107c982610675565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610215929190611721565b50565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610847573391505090565b919050565b600061089a7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783610ac2565b806108aa57506108aa8383610ac2565b9392505050565b60006108de6108c08686610bb9565b60ff858116601b0360080285901c166108d98587610c0f565b610c52565b95945050505050565b6108fc85856108f68487610c0f565b85610ca3565b5050505050565b6000610911607060106115f2565b9190911b919050565b606060005b6010811015610989577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561098957806109818161173a565b91505061091f565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061055b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610a0157610a0161163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f73746f726500000000000000000000000000000000000000000000000000000060228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091610ab691015b604051602081830303815290604052610a8e9061166c565b8360007e010100010000000000000000000000000000000000000000000000000000006108b1565b905061055b8160f81c90565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610afb57610afb61163d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b81600181518110610b3457610b3461163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f776f726c6400000000000000000000000000000000000000000000000000000060228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091610bad9101610a76565b90506108de8160f81c90565b60008282604051602001610bce929190611754565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4a57610c3660ff601b83900360080287901c16836115f2565b915080610c428161173a565b915050610c14565b509392505050565b600060208210610c7857602082048401935060208281610c7457610c7461178f565b0691505b508254600882021b602082900380841115610c4a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610d2d57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610d20939291906117f9565b60405180910390a26103e1565b6000610d398585610bb9565b90506000610d4686610f5b565b905060005b8151811015610e25576000828281518110610d6857610d6861163d565b60200260200101519050610d946004826affffffffffffffffffffff191661103b90919063ffffffff16565b15610e12576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610ddf908b908b908b908b90600401611836565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050505b5080610e1d8161173a565b915050610d4b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610e5a939291906117f9565b60405180910390a2610e75828565ffffffffffff1685611059565b60005b8151811015610f52576000828281518110610e9557610e9561163d565b60200260200101519050610ec16008826affffffffffffffffffffff191661103b90919063ffffffff16565b15610f3f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610f0c908b908b908b908b90600401611836565b600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050505b5080610f4a8161173a565b915050610e78565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610f9557610f9561163d565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110249061101c9061166c565b83600061106f565b905061055b61103682600084516110a9565b611139565b60008160ff168261104c8560581c90565b1660ff1614905092915050565b6106688383835161106a8560200190565b61114a565b606061055b61107f85858561120a565b60006110a48561108f898961128a565b9060ff166028026038011c64ffffffffff1690565b61129d565b60008183111580156110bc575083518211155b6110f8578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102159392919061187a565b6020840161110684826115f2565b90506000611114858561154e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006108aa83601560006112c0565b82156111c45760208310611174576020830484019350602083816111705761117061178f565b0692505b82156111c45760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116111b55750506103e1565b50600194909401939182900391015b5b602082106111e65780518455600190930192601f19909101906020016111c5565b81156103e1576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161121f929190611754565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006108aa611299848461133b565b5490565b60405160208101601f19603f8484010116604052828252610c4a85858584611391565b606060006112ce8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816112f4576112f461178f565b04905060405193506020840160208202810160405281855260005b8281101561132f578451871c82529387019360209091019060010161130f565b50505050509392505050565b60008282604051602001611350929190611754565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b821561141a57602083106113bb576020830484019350602083816113b7576113b761178f565b0692505b821561141a5760208390036000818410156113df5750600019600884021c196113ea565b50600019600882021c195b8554600886021b81198451168282161784525081841161140b5750506103e1565b50600194909401939182900391015b5b6020821061143c5783548152600190930192601f199091019060200161141b565b81156103e1576000600019600884021c198251865482169119161782525050505050565b60006020828403121561147257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108aa57600080fd5b6000806000606084860312156114b757600080fd5b83359250602084013573ffffffffffffffffffffffffffffffffffffffff811681146114e257600080fd5b929592945050506040919091013590565b60008060006060848603121561150857600080fd5b505081359360208301359350604090920135919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101a2576101a261151f565b60005b8381101561157c578181015183820152602001611564565b50506000910152565b6000815180845261159d816020860160208601611561565b601f01601f19169290920160200192915050565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108de6060830184611585565b808201808211156101a2576101a261151f565b6040815260006116186040830185611585565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051602080830151919081101561168d576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516116f4816003860160208901611561565b808401905081600382015284519150611714826004830160208801611561565b0160040195945050505050565b82815260406020820152600061055b6040830184611585565b6000600019820361174d5761174d61151f565b5060010190565b82815260006020808301845182860160005b8281101561178257815184529284019290840190600101611766565b5091979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081518084526020808501945080840160005b838110156117ee578151875295820195908201906001016117d2565b509495945050505050565b60608152600061180c60608301866117be565b65ffffffffffff85166020840152828103604084015261182c8185611585565b9695505050505050565b84815260806020820152600061184f60808301866117be565b65ffffffffffff85166040840152828103606084015261186f8185611585565b979650505050505050565b60608152600061188d6060830186611585565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50610af5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80638fc8cf7e116100505780638fc8cf7e146100df578063ce5e8dd9146100ff578063e1af802c1461011257600080fd5b806301ffc9a714610077578063119df25f1461009f57806345ec9354146100cc575b600080fd5b61008a61008536600461063e565b61011a565b60405190151581526020015b60405180910390f35b6100a76101b3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b604051601f193601358152602001610096565b6100f26100ed3660046106d3565b6101c2565b6040516100969190610739565b6100f261010d3660046106d3565b6103d7565b6100a76105ae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101ad57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101bd6105b8565b905090565b606060006101ce6105ae565b90508267ffffffffffffffff8111156101e9576101e96107d1565b60405190808252806020026020018201604052801561021c57816020015b60608152602001906001900390816102075790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff84168063894ecc5889898781811061025c5761025c610800565b905060200281019061026e919061082f565b61027c90602081019061086d565b8a8a8881811061028e5761028e610800565b90506020028101906102a0919061082f565b602001358b8b898181106102b6576102b6610800565b90506020028101906102c8919061082f565b6102d69060408101906108a3565b6040516024016102e99493929190610933565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103369250610973565b600060405180830381855af49150503d8060008114610371576040519150601f19603f3d011682016040523d82523d6000602084013e610376565b606091505b50915091508161038957610389816105ea565b8080602001905181019061039d9190610985565b8584815181106103af576103af610800565b6020026020010181905250505080806103c790610a32565b915050610222565b505092915050565b606060006103e36105ae565b90508267ffffffffffffffff8111156103fe576103fe6107d1565b60405190808252806020026020018201604052801561043157816020015b606081526020019060019003908161041c5790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff841680633ae7af0889898781811061047157610471610800565b90506020028101906104839190610a91565b358a8a8881811061049657610496610800565b90506020028101906104a89190610a91565b6104b69060208101906108a3565b6040516024016104c893929190610ac5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105159250610973565b600060405180830381855af49150503d8060008114610550576040519150601f19603f3d011682016040523d82523d6000602084013e610555565b606091505b50915091508161056857610568816105ea565b8080602001905181019061057c9190610985565b85848151811061058e5761058e610800565b6020026020010181905250505080806105a690610a32565b915050610437565b60006101bd6105f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105e75750335b90565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610639573391505090565b919050565b60006020828403121561065057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461068057600080fd5b9392505050565b60008083601f84011261069957600080fd5b50813567ffffffffffffffff8111156106b157600080fd5b6020830191508360208260051b85010111156106cc57600080fd5b9250929050565b600080602083850312156106e657600080fd5b823567ffffffffffffffff8111156106fd57600080fd5b61070985828601610687565b90969095509350505050565b60005b83811015610730578181015183820152602001610718565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156107c4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526107a5818989018a8501610715565b601f01601f191695909501860194509285019290850190600101610760565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261086357600080fd5b9190910192915050565b60006020828403121561087f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126108d857600080fd5b83018035915067ffffffffffffffff8211156108f357600080fd5b6020019150368190038213156106cc57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610969606083018486610908565b9695505050505050565b60008251610863818460208701610715565b60006020828403121561099757600080fd5b815167ffffffffffffffff808211156109af57600080fd5b818401915084601f8301126109c357600080fd5b8151818111156109d5576109d56107d1565b604051601f8201601f19908116603f011681019083821181831017156109fd576109fd6107d1565b81604052828152876020848701011115610a1657600080fd5b610a27836020830160208801610715565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261086357600080fd5b838152604060208201526000610adf604083018486610908565b9594505050505056fea164736f6c6343000815000a608060405234801561001057600080fd5b5061565b80620000216000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063530f4b6011610097578063b29e408911610066578063b29e408914610226578063bfdfaff714610239578063d5f8337f1461024c578063e1af802c1461025f57600080fd5b8063530f4b60146101da578063742d6118146101ed5780638da798da14610200578063a92813ad1461021357600080fd5b80631d2257ba116100d35780631d2257ba1461017557806326d98102146101885780633350b6a9146101b457806345ec9354146101c757600080fd5b806301ffc9a714610105578063056091291461012d5780630ba51f4914610142578063119df25f14610155575b600080fd5b610118610113366004614aa7565b610267565b60405190151581526020015b60405180910390f35b61014061013b366004614ad7565b6102d0565b005b610140610150366004614b53565b6102ef565b61015d6103bf565b6040516001600160a01b039091168152602001610124565b610140610183366004614ca0565b6103ce565b61019b610196366004614cf9565b61044e565b6040516001600160e01b03199091168152602001610124565b6101406101c2366004614d40565b610546565b604051601f193601358152602001610124565b6101406101e8366004614d98565b610731565b61019b6101fb366004614dd6565b610772565b61014061020e366004614e24565b61082d565b610140610221366004614ad7565b610946565b610140610234366004614e5e565b6109ba565b610140610247366004614e77565b610a5e565b61014061025a366004614d98565b610b28565b61015d610b8f565b60006001600160e01b031982167fb5dee1270000000000000000000000000000000000000000000000000000000014806102ca57506001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6102e1826102dc6103bf565b610b99565b6102eb8282610c1f565b5050565b60006102fa89610c6c565b6fffffffffffffffffffffffffffffffff191603610359578761031c89610c83565b6040517fe4ac069e000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b60405180910390fd5b610389616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008a1617610d97565b610395886102dc6103bf565b6103b5888888886103a6888a614f1a565b6103b08789614f1a565b610de2565b5050505050505050565b60006103c9611082565b905090565b6103e06103d96103bf565b84846110b4565b6103e9826111de565b80156103f6575060008151115b15610449576000610406836111fa565b9050610432817faf585477000000000000000000000000000000000000000000000000000000006112d5565b61044661043d6103bf565b84846000611330565b50505b505050565b600061045c836102dc6103bf565b600061048561046b8560101b90565b71ffffffffffffffffffffffffffffffffffff191661135d565b9050600061049a61049586610c6c565b61135d565b905060008282866040516020016104b393929190614f9e565b60405160208183030381529060405290508080519060200120935060006104d9856113f1565b9050801561051f576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031986166004820152602401610350565b855160208701206105318689836114e0565b61053b86846115e8565b505050505092915050565b7f7379000000000000000000000000000000000000000000000000000000000000836001600160f01b031916146105d7577f7379000000000000000000000000000000000000000000000000000000000000836105a285610c83565b6040517f5c30fb6f00000000000000000000000000000000000000000000000000000000815260040161035093929190615014565b7dffffffffffffffffffffffffffff000000000000000000000000000000008316616e7360f01b1761060881610d97565b610614816102dc6103bf565b61063e837fb5dee127000000000000000000000000000000000000000000000000000000006112d5565b600061064985610c6c565b6fffffffffffffffffffffffffffffffff19160361066b578361031c85610c83565b6000610676846116ee565b905080158015906106875750848114155b156106c9576040517fc0b707410000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610350565b60006106d4866111fa565b90506001600160a01b038116156106fd576106ee816117d0565b6106f883826118a4565b610708565b610708866001611997565b610713868686611a8f565b61071d8587611b6f565b61072983866001611c0f565b505050505050565b61075b827f1873396a000000000000000000000000000000000000000000000000000000006112d5565b610767836102dc6103bf565b610449838383611cce565b60408051616e7360f01b602082015260006022820181905260308201819052916107b791016040516020818303038152906040526107af9061503d565b6102dc6103bf565b508151602083012060006107ca826113f1565b90508015610810576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031983166004820152602401610350565b61081b8286856114e0565b61082582856115e8565b509392505050565b610857827f780ac2fc000000000000000000000000000000000000000000000000000000006112d5565b6108d36108626103bf565b600084846040516024016108769190615061565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f13861fb500000000000000000000000000000000000000000000000000000000179052611d2f565b506102eb826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190615074565b8251602084012084611d40565b610952826102dc6103bf565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b7300000000000000000000000000000000000000000060308201526102eb91015b6040516020818303038152906040526109b39061503d565b8383611e73565b616e7360f01b816001600160f01b031916146109e057616e7360f01b816105a283610c83565b6109e981611f9a565b15610a2c57806109f882610c83565b6040517f0dc28f6a000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b610a37816001611997565b610a4881610a436103bf565b61207c565b610a5b81610a546103bf565b6001611c0f565b50565b616e7360f01b836001600160f01b03191614610a8457616e7360f01b836105a285610c83565b610a8d826111de565b610ac3576040517f71ee9e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610acf836102dc6103bf565b6000610ada836111fa565b9050610b06817faf585477000000000000000000000000000000000000000000000000000000006112d5565b610b108484612110565b815115610b225761044661043d6103bf565b50505050565b610b52827f540fbfa8000000000000000000000000000000000000000000000000000000006112d5565b610b5e836102dc6103bf565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b16176121a4565b60006103c9612293565b6001600160a01b038116610bd3616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516176122d2565b6001600160a01b0316146102eb57610bea82610c83565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103509291906150a7565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201526102eb910161099b565b6000610c7a607060106150e8565b9190911b919050565b606081601081901b6000610c9683610c6c565b90508271ffffffffffffffffffffffffffffffffffff19831615610cd757610cd271ffffffffffffffffffffffffffffffffffff19841661135d565b610d0e565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615610d3557610d308361135d565b610d6c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001610d7e939291906150fb565b6040516020818303038152906040529350505050919050565b610da081611f9a565b610a5b5780610dae82610c83565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b613a3160f11b866001600160f01b03191614801590610e105750611bdd60f21b866001600160f01b03191614155b15610e7157613a3160f11b8687604051602001610e2f91815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610350939291600401615014565b610e7a856123a2565b610e85846001612523565b610e90836000612523565b60e084901c60e885901c0160ff16825114610ef05760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff16815114610f505760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610fc85760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b610fd186611f9a565b1561102b578586604051602001610fea91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526103509291600401614f01565b61107786868686866040516020016110439190615171565b604051602081830303815290604052866040516020016110639190615171565b6040516020818303038152906040526126cf565b610729866001611997565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806110b15750335b90565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b816000815181106110f5576110f56151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611121576111216151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152610b2291015b6040516020818303038152906040526111939061503d565b826000856040516020016111a991815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006127d3565b600081151580156102ca57506111f3826127e8565b1592915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611233576112336151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca906112a29061503d565b8360007e15020014010000000000000000000000000000000000000000000000000000612863565b60601c949350505050565b6112df8282612899565b6102eb576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610350565b6060600080611341878787876128bc565b91509150816113535761135381612aa0565b9695505050505050565b606060005b60108110156113bd576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156113bd57806113b581615207565b915050611362565b604080516fffffffffffffffffffffffffffffffff198516602082015281516030909101909152818152805b949350505050565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611449576114496151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526000906113e9906114b89061503d565b8360007e24020020040000000000000000000000000000000000000000000000000000612863565b60006114ec8383612aa8565b60408051600180825281830190925291925060009160609183919060208083019080368337019050509050867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061154a5761154a6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526115df906115b69061503d565b828686867e24020020040000000000000000000000000000000000000000000000000000612ae7565b50505050505050565b606060006115f583612e01565b9050600061160284612e11565b6040805160018082528183019092529192506000919060208083019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061165b5761165b6151f1565b60209081029190910181019190915260408051611bdd60f21b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e617475720000000000000000000000000000000060308201528151808203909301835281019052610729906116c79061503d565b828686867c0100000000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110611733576117336151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d526567697374727900000000000000000000000000000000000060308301526000916113e991015b6040516020818303038152906040526117a89061503d565b8360007e20010020000000000000000000000000000000000000000000000000000000612863565b60408051600180825281830190925260009160208083019080368337019050509050816001600160a01b031660001b81600081518110611812576118126151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526102eb9061187e9061503d565b827e20010020000000000000000000000000000000000000000000000000000000612e3a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106118d9576118d96151f1565b602002602001018181525050816001600160a01b031660001b81600181518110611905576119056151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f7572636541636365737300000000000000000000000000000000000060308201528151808203909301835281019052610449906119719061503d565b827e01010001000000000000000000000000000000000000000000000000000000612e3a565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106119cd576119cd6151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261044991015b604051602081830303815290604052611a3f9061503d565b82600085604051602001611a5a91151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006127d3565b6000611a9b838361311a565b604080516001808252818301909252919250600091606091839190602080830190803683370190505090508681600081518110611ada57611ada6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526115df90611b469061503d565b828686867e15020014010000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b81600081518110611bb157611bb16151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d52656769737472790000000000000000000000000000000000006030830152610449910161117b565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110611c4457611c446151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611c7057611c706151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152610b229101611a27565b613a3160f11b836001600160f01b03191614611cfe57613a3160f11b8384604051602001610e2f91815260200190565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b161761314a565b6060600080611341878787876131de565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110611d8857611d886151f1565b6020026020010181815250508281600181518110611da857611da86151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610b2291015b604051602081830303815290604052611e1a9061503d565b6040516bffffffffffffffffffffffff19606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006127d3565b6000611e7f8484613256565b90506000815167ffffffffffffffff811115611e9d57611e9d614be9565b604051908082528060200260200182016040528015611ec6578160200160208202803683370190505b5090506000805b8351811015611f8b57846001600160a01b0316611f11858381518110611ef557611ef56151f1565b60200260200101516affffffffffffffffffffff191660601c90565b6001600160a01b031614611f8357838181518110611f3157611f316151f1565b6020026020010151838381518110611f4b57611f4b6151f1565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611ecd565b508082526107298686846132c1565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611fd357611fd36151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015260009161207091015b6040516020818303038152906040526120489061503d565b8360007e01010001000000000000000000000000000000000000000000000000000000612863565b90506113e98160f81c90565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106120b2576120b26151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526104499101611e02565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612146576121466151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c65676174000000000000000000000000000000006030830152610449910161117b565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106121da576121da6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b73000000000000000000000000000000000000000000603083015261044991015b60405160208183030381529060405261224c9061503d565b6040517fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000851660208201528390600090603501604051602081830303815290604052613318565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806122cd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061230b5761230b6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca9061237a9061503d565b8360007e14010014000000000000000000000000000000000000000000000000000000612863565b806123d9576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006123e4826133c9565b9050600581111561242b576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610350565b600061243683613406565b9050600061244483836150e8565b9050601c81111561248b576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610350565b60005b828110156104465760ff601b82900360080286901c1660008190036124df576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561251a576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161248e565b8015801561252f575081155b1561255057604051635318beb960e01b815260006004820152602401610350565b600061255b836133c9565b9050600581111561258257604051635318beb960e01b815260048101829052602401610350565b600061258d84613406565b9050600061259b83836150e8565b9050601c8111156125c257604051635318beb960e01b815260048101829052602401610350565b60008060005b838110156126885760006125f56125df8a84613418565b60c58111156125f0576125f0615221565b613439565b111561263f57848110612634576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612680565b84811015612679576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b6001016125c8565b508382146126ac57604051635318beb960e01b815260048101839052602401610350565b8481146115df57604051635318beb960e01b815260048101829052602401610350565b60006126dc868686613499565b905060006126ea84846134cf565b905060006126f885856134ec565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110612732576127326151f1565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526127c79061279e9061503d565b828686867e60030220202000000000000000000000000000000000000000000000000000612ae7565b50505050505050505050565b61044685856127e28487613501565b8561353c565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d6974656400000000000000000000000000000000000000000000006030830152910160405160208183030381529060405261285b9061503d565b909114919050565b600061289061287286866137b8565b60ff858116601b0360080285901c1661288b8587613501565b61380e565b95945050505050565b60006128a48361385f565b80156128b557506128b583836138a0565b9392505050565b6000606060006128cb86613958565b905060005b81518110156129a85760008282815181106128ed576128ed6151f1565b602002602001015190506129196001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612995576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190612962908c908c908c90600401615237565b600060405180830381600087803b15801561297c57600080fd5b505af1158015612990573d6000803e3d6000fd5b505050505b50806129a081615207565b9150506128d0565b506129b587858888613a3f565b909350915060005b8151811015612a955760008282815181106129da576129da6151f1565b60200260200101519050612a066002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612a82576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f9990612a4f908c908c908c90600401615237565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505b5080612a8d81615207565b9150506129bd565b505094509492505050565b805160208201fd5b60608282604051602001612ad09291909182526001600160e01b031916602082015260240190565b604051602081830303815290604052905092915050565b611bdd60f21b866001600160f01b03191603612b4057857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612b33949392919061529a565b60405180910390a2610729565b6000612b4b87613b1e565b905060005b8151811015612c2e576000828281518110612b6d57612b6d6151f1565b60200260200101519050612b996001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612c1b576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90612be8908c908c908c908c908c908c906004016152d9565b600060405180830381600087803b158015612c0257600080fd5b505af1158015612c16573d6000803e3d6000fd5b505050505b5080612c2681615207565b915050612b50565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051612c65949392919061529a565b60405180910390a26000612c7988886137b8565b90506000602087019050612c91826000895184613bb9565b6000612c9c856133c9565b1115612d20576000612cae8a8a613c79565b878155905060208601915060008060005b612cc8886133c9565b8160ff161015612d1b57612cdd8d8d83613ccf565b9250612cf88a8260ff166028026038011c64ffffffffff1690565b9150612d078360008488613bb9565b612d1182866150e8565b9450600101612cbf565b505050505b60005b83518110156127c7576000848281518110612d4057612d406151f1565b60200260200101519050612d6c6002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612dee576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612dbb908e908e908e908e908e908e906004016152d9565b600060405180830381600087803b158015612dd557600080fd5b505af1158015612de9573d6000803e3d6000fd5b505050505b5080612df981615207565b915050612d23565b60006102ca8251603881901b1790565b606081604051602001612e249190615332565b6040516020818303038152906040529050919050565b611bdd60f21b836001600160f01b03191603612e8d57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612e80919061534e565b60405180910390a2505050565b6000612e9884613b1e565b905060005b8151811015612f75576000828281518110612eba57612eba6151f1565b60200260200101519050612ee66040826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612f62576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612f2f90899089908990600401615361565b600060405180830381600087803b158015612f4957600080fd5b505af1158015612f5d573d6000803e3d6000fd5b505050505b5080612f6d81615207565b915050612e9d565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612fa6919061534e565b60405180910390a26000612fba85856137b8565b9050613013816000612fcb86613d4f565b67ffffffffffffffff811115612fe357612fe3614be9565b6040519080825280601f01601f19166020018201604052801561300d576020820181803683370190505b50613d72565b600061301e846133c9565b111561303f5760006130308686613c79565b905061303d816020613d88565b505b60005b825181101561072957600083828151811061305f5761305f6151f1565b6020026020010151905061308b6080826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613107576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b906130d4908a908a908a90600401615361565b600060405180830381600087803b1580156130ee57600080fd5b505af1158015613102573d6000803e3d6000fd5b505050505b508061311281615207565b915050613042565b604051606083811b6bffffffffffffffffffffffff1916602083015282151560f81b603483015290603501612ad0565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613180576131806151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308301526104499101612234565b60006060836001600160a01b031660006131f9858989613dc5565b6040516132069190615332565b60006040518083038185875af1925050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b509097909650945050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613290576132906151f1565b60200260200101818152505060006132aa85836000613ddc565b90506128906132bc8260008451613e16565b613ea6565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106132f7576132f76151f1565b602002602001018181525050610b228482600061331386613eb7565b613ec7565b6000613322612293565b9050306001600160a01b038216036133455761334085858585613f02565b610446565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f32629061339090889088908890889060040161538a565b600060405180830381600087803b1580156133aa57600080fd5b505af11580156133be573d6000803e3d6000fd5b505050505050505050565b600060086001806133dc600260206153be565b6133e691906153be565b6133f091906153be565b6133fa91906153d1565b8260ff911c1692915050565b6000600860016133e6600260206153be565b6000601b8290036008028360ff911c1660c58111156128b5576128b5615221565b6000808260c581111561344e5761344e615221565b60ff169050606181101561346857601f1660010192915050565b60618360c581111561347c5761347c615221565b0361348a5750601492915050565b50600092915050565b50919050565b60408051602081018590529081018390526060818101839052906080015b60405160208183030381529060405290509392505050565b8151815160009181810160389190911b1760609190911b176128b5565b60608282604051602001612ad09291906153e8565b600080805b8360ff168110156108255761352860ff601b83900360080287901c16836150e8565b91508061353481615207565b915050613506565b611bdd60f21b846001600160f01b0319160361359357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161358693929190615417565b60405180910390a2610b22565b600061359f85856137b8565b905060006135ac86613b1e565b905060005b815181101561368b5760008282815181106135ce576135ce6151f1565b602002602001015190506135fa6004826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613678576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90613645908b908b908b908b9060040161544a565b600060405180830381600087803b15801561365f57600080fd5b505af1158015613673573d6000803e3d6000fd5b505050505b508061368381615207565b9150506135b1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516136c093929190615417565b60405180910390a26136db828565ffffffffffff1685613d72565b60005b81518110156115df5760008282815181106136fb576136fb6151f1565b602002602001015190506137276008826affffffffffffffffffffff1916613a2190919063ffffffff16565b156137a5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190613772908b908b908b908b9060040161544a565b600060405180830381600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050505b50806137b081615207565b9150506136de565b600082826040516020016137cd929190615483565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061383457602082048401935060208281613830576138306154be565b0691505b508254600882021b602082900380841115610825576001850154600882021c82179150509392505050565b600061388b827f01ffc9a7000000000000000000000000000000000000000000000000000000006138a0565b80156102ca57506111f3826001600160e01b03195b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613941575060208210155b801561394d5750600081115b979650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613992576139926151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091613a0f91015b604051602081830303815290604052613a079061503d565b836000613ddc565b90506113e96132bc8260008451613e16565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b60006060600080613a4f86613f3d565b90925090506001600160a01b038216613a6c5785610dae87610c83565b80613a7b57613a7b8689614035565b8615613acc577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000613ab48261404c565b9050613ac982613ac48b846150e8565b6140e6565b50505b6000613ad88760101b90565b71ffffffffffffffffffffffffffffffffffff191614613b0357613afe888884886131de565b613b0f565b613b0f8888848861417a565b90999098509650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613b5857613b586151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091613a0f91016139ef565b8215613c335760208310613be357602083048401935060208381613bdf57613bdf6154be565b0692505b8215613c335760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613c24575050610b22565b50600194909401939182900391015b5b60208210613c555780518455600190930192601f1990910190602001613c34565b8115610b22576000600019600884021c198554835182169119161785555050505050565b60008282604051602001613c8e929190615483565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001613ce4929190615483565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008613d5f600260206153be565b613d6991906153d1565b9190911c919050565b61044983838351613d838560200190565b613bb9565b60006020613d9783601f6150e8565b613da191906154d4565b613dab90846150e8565b90505b808310156104495760008355600183019250613dae565b60608383836040516020016134b7939291906154f6565b60606113e9613dec858585613ccf565b6000613e1185613dfc89896141db565b9060ff166028026038011c64ffffffffff1690565b6141ee565b6000818311158015613e29575083518211155b613e65578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161035093929190615535565b60208401613e7384826150e8565b90506000613e8185856153be565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006128b58360156000614211565b6060816128b5816015600061428c565b6000613ed385856141db565b90506000613ef0828560ff166028026038011c64ffffffffff1690565b905061072986868660008588886142e0565b6000613f0e85856141db565b90506000613f2b828560ff166028026038011c64ffffffffff1690565b905061072986868684600088886142e0565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f7757613f776151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061401090613fea9061503d565b857e1502001401000000000000000000000000000000000000000000000000000061469c565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b61403f82826147a4565b6102eb57610bea82610c83565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110614085576140856151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e63657300000000000000000000000000000000000000000000000060308301526000916113e99101611790565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061411c5761411c6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e6365730000000000000000000000000000000000000000000000006030830152610449910161117b565b60006060836001600160a01b0316614193848888613dc5565b6040516141a09190615332565b600060405180830381855af49150503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b60006128b56141ea8484613c79565b5490565b60405160208101601f19603f8484010116604052828252610825858585846147e7565b6060600061421f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281614245576142456154be565b04905060405193506020840160208202810160405281855260005b82811015614280578451871c825293870193602090910190600101614260565b50505050509392505050565b8251606090600061429d85836153d1565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015614280578051871b835291870191600191909101906020016142bf565b613a3160f11b876001600160f01b0319161461431057613a3160f11b8788604051602001610e2f91815260200190565b600061432b828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361434491906153be565b61434e91906150e8565b9050808214158015614370575081614366868861555a565b64ffffffffff1614155b156143c0576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610350565b818664ffffffffff161115614411576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610350565b600061441e8489846148b6565b9050600061442b8b613b1e565b905060005b815181101561450057600082828151811061444d5761444d6151f1565b602002602001015190506144796010826affffffffffffffffffffff1916613a2190919063ffffffff16565b156144ed57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016144ba979695949392919061557f565b600060405180830381600087803b1580156144d457600080fd5b505af11580156144e8573d6000803e3d6000fd5b505050505b50806144f881615207565b915050614430565b5064ffffffffff881660005b8a60ff168160ff16101561453f57614533878260ff166028026038011c64ffffffffff1690565b9091019060010161450c565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516145789594939291906155dd565b60405180910390a2508284146145995760006145948c8c613c79565b839055505b60006145a68c8c8c613ccf565b90506145ba818a64ffffffffff1689613d72565b5060005b815181101561468e5760008282815181106145db576145db6151f1565b602002602001015190506146076020826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561467b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401614648979695949392919061557f565b600060405180830381600087803b15801561466257600080fd5b505af1158015614676573d6000803e3d6000fd5b505050505b508061468681615207565b9150506145be565b505050505050505050505050565b60606000606060006146ad85613d4f565b90506146ba878783614984565b935060006146c7866133c9565b90508015614799576146d988886141db565b935066ffffffffffffff841667ffffffffffffffff8111156146fd576146fd614be9565b6040519080825280601f01601f191660200182016040528015614727576020820181803683370190505b5092506020830160005b828160ff1610156147965760006147498b8b84613ccf565b90506000614766888460ff166028026038011c64ffffffffff1690565b905061477582600083876147e7565b61477f81856150e8565b93505050808061478e9061562f565b915050614731565b50505b505093509350939050565b60006147d7616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000851617836149bd565b806128b557506128b583836149bd565b821561487057602083106148115760208304840193506020838161480d5761480d6154be565b0692505b82156148705760208390036000818410156148355750600019600884021c19614840565b50600019600882021c195b8554600886021b811984511682821617845250818411614861575050610b22565b50600194909401939182900391015b5b602082106148925783548152600190930192601f1990910190602001614871565b8115610b22576000600019600884021c198251865482169119161782525050505050565b600064ffffffffff8211156148fa576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610350565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061492c5780850382019150614934565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6060816000036149a357506040805160208101909152600081526128b5565b60006149af85856137b8565b9050612890816000856141ee565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106149f6576149f66151f1565b602002602001018181525050826001600160a01b031660001b81600181518110614a2257614a226151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091614a839101612030565b90506128908160f81c90565b80356001600160e01b0319811681146122cd57600080fd5b600060208284031215614ab957600080fd5b6128b582614a8f565b6001600160a01b0381168114610a5b57600080fd5b60008060408385031215614aea57600080fd5b823591506020830135614afc81614ac2565b809150509250929050565b60008083601f840112614b1957600080fd5b50813567ffffffffffffffff811115614b3157600080fd5b6020830191508360208260051b8501011115614b4c57600080fd5b9250929050565b60008060008060008060008060c0898b031215614b6f57600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff80821115614ba357600080fd5b614baf8c838d01614b07565b909650945060a08b0135915080821115614bc857600080fd5b50614bd58b828c01614b07565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614c2857614c28614be9565b604052919050565b600082601f830112614c4157600080fd5b813567ffffffffffffffff811115614c5b57614c5b614be9565b614c6e6020601f19601f84011601614bff565b818152846020838601011115614c8357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614cb557600080fd5b8335614cc081614ac2565b925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b614cef86828701614c30565b9150509250925092565b60008060408385031215614d0c57600080fd5b82359150602083013567ffffffffffffffff811115614d2a57600080fd5b614d3685828601614c30565b9150509250929050565b600080600060608486031215614d5557600080fd5b833592506020840135614d6781614ac2565b915060408401358015158114614d7c57600080fd5b809150509250925092565b803560ff811681146122cd57600080fd5b600080600060608486031215614dad57600080fd5b833592506020840135614dbf81614ac2565b9150614dcd60408501614d87565b90509250925092565b600080600060608486031215614deb57600080fd5b83359250602084013567ffffffffffffffff811115614e0957600080fd5b614e1586828701614c30565b925050614dcd60408501614a8f565b60008060408385031215614e3757600080fd5b8235614e4281614ac2565b9150602083013567ffffffffffffffff811115614d2a57600080fd5b600060208284031215614e7057600080fd5b5035919050565b600080600060608486031215614e8c57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b60005b83811015614ecc578181015183820152602001614eb4565b50506000910152565b60008151808452614eed816020860160208601614eb1565b601f01601f19169290920160200192915050565b8281526040602082015260006113e96040830184614ed5565b600067ffffffffffffffff80841115614f3557614f35614be9565b8360051b6020614f46818301614bff565b868152918501918181019036841115614f5e57600080fd5b865b84811015614f9257803586811115614f785760008081fd5b614f8436828b01614c30565b845250918301918301614f60565b50979650505050505050565b60008451614fb0818460208901614eb1565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528551614fec816001850160208a01614eb1565b60019201918201528351615007816002840160208801614eb1565b0160020195945050505050565b6001600160f01b0319841681528260208201526060604082015260006128906060830184614ed5565b805160208083015191908110156134935760001960209190910360031b1b16919050565b6020815260006128b56020830184614ed5565b60006020828403121561508657600080fd5b81516fffffffffffffffffffffffffffffffff19811681146128b557600080fd5b6040815260006150ba6040830185614ed5565b90506001600160a01b03831660208301529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ca576102ca6150d2565b6001600160f01b03198416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451615144816003860160208901614eb1565b808401905081600382015284519150615164826004830160208801614eb1565b0160040195945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526151d2858351614ed5565b94509285019290850190600101615198565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600019820361521a5761521a6150d2565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03841681528260208201526060604082015260006128906060830184614ed5565b600081518084526020808501945080840160005b8381101561528f57815187529582019590820190600101615273565b509495945050505050565b6080815260006152ad608083018761525f565b82810360208401526152bf8187614ed5565b9050846040840152828103606084015261394d8185614ed5565b86815260c0602082015260006152f260c083018861525f565b82810360408401526153048188614ed5565b9050856060840152828103608084015261531e8186614ed5565b9150508260a0830152979650505050505050565b60008251615344818460208701614eb1565b9190910192915050565b6020815260006128b5602083018461525f565b83815260606020820152600061537a606083018561525f565b9050826040830152949350505050565b8481526080602082015260006153a3608083018661525f565b60ff85166040840152828103606084015261394d8185614ed5565b818103818111156102ca576102ca6150d2565b80820281158282048414176102ca576102ca6150d2565b600083516153fa818460208801614eb1565b83519083019061540e818360208801614eb1565b01949350505050565b60608152600061542a606083018661525f565b65ffffffffffff8516602084015282810360408401526113538185614ed5565b848152608060208201526000615463608083018661525f565b65ffffffffffff85166040840152828103606084015261394d8185614ed5565b82815260006020808301845182860160005b828110156154b157815184529284019290840190600101615495565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826154f157634e487b7160e01b600052601260045260246000fd5b500490565b60008451615508818460208901614eb1565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006155486060830186614ed5565b60208301949094525060400152919050565b64ffffffffff818116838216019080821115615578576155786150d2565b5092915050565b87815260e06020820152600061559860e083018961525f565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526155cf8185614ed5565b9a9950505050505050505050565b60a0815260006155f060a083018861525f565b65ffffffffffff8716602084015264ffffffffff8616604084015284606084015282810360808401526156238185614ed5565b98975050505050505050565b600060ff821660ff8103615645576156456150d2565b6001019291505056fea164736f6c6343000815000a6101006040523480156200001257600080fd5b5060405162004c6d38038062004c6d833981016040819052620000359162000071565b6001600160a01b0393841660805291831660a052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614b4c62000121600039600081816106a20152818161159201526116210152600061063a015260006105d2015260006105510152614b4c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b610095610090366004614310565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e5366004614368565b61023c565b005b6040517f636f72650000000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b366004614368565b61026e565b6100b2610289565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610293565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102766102c5565b61027e61050f565b6102866106c8565b50565b6000610237610bcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102c25750335b90565b6102cd610c17565b6102d5610c2f565b6102dd610cd4565b6102e5610d5c565b6102ed610dfc565b6102f5610e84565b6102fd610f04565b610305610f8c565b61030d61102c565b6103156110cc565b61031d61116a565b610325611208565b60408051616e7360f01b6020820152600060228201819052603082015261036791015b60405160208183030381529060405261036090614419565b6001611290565b60408051616e7360f01b602082015260006022820181905260308201526103af91015b6040516020818303038152906040526103a290614419565b6103aa61022d565b611375565b60408051616e7360f01b602082015260006022820181905260308201526103f991015b6040516020818303038152906040526103ea90614419565b6103f261022d565b6001611483565b60408051616e7360f01b60208201526473746f726560d81b6022820152600060308201526104279101610348565b60408051616e7360f01b60208201526473746f726560d81b602282015260006030820152610455910161038a565b60408051616e7360f01b60208201526473746f726560d81b60228201526000603082015261048391016103d2565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104b19101610348565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104df910161038a565b60408051616e7360f01b6020820152641ddbdc9b1960da1b60228201526000603082015261050d91016103d2565b565b6040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e74000000000000000000000000000000006030820152610590917f000000000000000000000000000000000000000000000000000000000000000091015b60405160208183030381529060405261058b90614419565b611555565b6040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526105f8917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610660917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e00000000000000000000000000000000603082015261050d917f00000000000000000000000000000000000000000000000000000000000000009101610573565b600060405180606001604052806040518060400160405280601c81526020017f6772616e7441636365737328627974657333322c61646472657373290000000081525081526020016040518060400160405280601d81526020017f7265766f6b6541636365737328627974657333322c61646472657373290000008152508152602001604051806060016040528060228152602001614b1e602291399052905060005b60038110156107fb576040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e740000000000000000000000000000000060308201526107e991016040516020818303038152906040526107cd90614419565b8383600381106107df576107df61443d565b6020020151611612565b806107f381614469565b91505061076b565b506040805160a0810182526033918101828152600092829190614ac2606084013981526020016040518060600160405280603181526020016149b7603191399052905060005b60028110156108c8576040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526108b691015b6040516020818303038152906040526108a490614419565b8383600281106107df576107df61443d565b806108c081614469565b915050610841565b50600060405180604001604052806040518060400160405280601c81526020017f626174636843616c6c2828627974657333322c6279746573295b5d29000000008152508152602001604051806060016040528060288152602001614a43602891399052905060005b6002811015610992576040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610980910161088c565b8061098a81614469565b915050610931565b50604080516101c081018252601c61018082019081527f696e7374616c6c4d6f64756c6528616464726573732c627974657329000000006101a08301528152815160608101835282815260009260208084019291906149029083013981526020016040518060600160405280602881526020016149e86028913981526020016040518060600160405280602481526020016148de6024913981526020016040518060400160405280601a81526020017f72656769737465724e616d6573706163652862797465733332290000000000008152508152602001604051806060016040528060298152602001614af5602991398152602001604051806060016040528060258152602001614a6b60259139815260200160405180606001604052806024815260200161499360249139815260200160405180606001604052806028815260200161496b602891398152602001604051806060016040528060338152602001614a10603391398152602001604051806060016040528060298152602001614942602991398152602001604051806060016040528060328152602001614a90603291399052905060005b600c811015610bc4576040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e000000000000000000000000000000006030820152610bb29101604051602081830303815290604052610ba090614419565b8383600c81106107df576107df61443d565b80610bbc81614469565b915050610b3e565b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610c12573391505090565b919050565b610c1f6116b9565b610c27611759565b61050d6117f7565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610c8f90614419565b7e14010014000000000000000000000000000000000000000000000000000000610cb761187f565b610cbf6118f7565b610cc7611931565b610ccf6119b6565b611a2d565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610d3490614419565b630100080160dd1b610d4461187f565b610d4c611b01565b610d54611931565b610ccf611b3b565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015261050d9101604051602081830303815290604052610dbc90614419565b7e14010014000000000000000000000000000000000000000000000000000000610de4611bb2565b610dec6118f7565b610df4611c31565b610ccf611cfb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5573657244656c65676174696f6e436f00000000000000000000000000000000603082015261050d9101604051602081830303815290604052610e5c90614419565b630100080160dd1b610e6c611d72565b610e7461187f565b610e7c611df1565b610ccf611ebb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d65737061636544656c6567617400000000000000000000000000000000603082015261050d9101604051602081830303815290604052610ee490614419565b630100080160dd1b610ef461187f565b610efc61187f565b610e7c611931565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610f6490614419565b630101000160d81b610f74611f32565b610f7c611f6c565b610f84611fa6565b610ccf612070565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610fec90614419565b7e1502001401000000000000000000000000000000000000000000000000000061101461187f565b61101c6120e7565b611024612166565b610ccf6121dd565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015261050d910160405160208183030381529060405261108c90614419565b7e240200200400000000000000000000000000000000000000000000000000006110b46122a7565b6110bc6122e1565b6110c4612360565b610ccf6123d7565b60408051611bdd60f21b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e6174757200000000000000000000000000000000603082015261050d910160405160208183030381529060405261112c90614419565b7c01000000000000000000000000000000000000000000000000000000006111526122a7565b61115a6124a1565b611162612360565b610ccf6124db565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b73000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526111ca90614419565b7c01000000000000000000000000000000000000000000000000000000006111f061187f565b6111f8612552565b611200612166565b610ccf61258c565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261126890614419565b630100080160dd1b6112786118f7565b61128061187f565b611288612603565b610ccf612166565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106112c6576112c661443d565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261137091015b60405160208183030381529060405261133890614419565b8260008560405160200161135391151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b61267a565b505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106113ab576113ab61443d565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526113709061141790614419565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061267a565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106114b8576114b861443d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106114f1576114f161443d565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f75726365416363657373000000000000000000000000000000000000603083015261154f9101611320565b50505050565b61137061156061022d565b6040516024810184905273ffffffffffffffffffffffffffffffffffffffff85166044820152600160648201526000907f00000000000000000000000000000000000000000000000000000000000000009060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3350b6a90000000000000000000000000000000000000000000000000000000017905261268f565b61137061161d61022d565b60007f00000000000000000000000000000000000000000000000000000000000000008585868051906020012060405160240161165c939291906144d3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f742d61180000000000000000000000000000000000000000000000000000000017905261268f565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261171990614419565b7e6003022020200000000000000000000000000000000000000000000000000061174161187f565b6117496126bc565b61175161280b565b610ccf612882565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526117b990614419565b7c01000000000000000000000000000000000000000000000000000000006117df61187f565b6117e7612552565b6117ef61280b565b610ccf612a4a565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261185790614419565b630101000160d81b61186761187f565b61186f611f6c565b611877612ac1565b610ccf612b38565b60408051600180825281830190925260009182919060208083019080368337019050509050605f816000815181106118b9576118b961443d565b602002602001019060c58111156118d2576118d261451e565b908160c58111156118e5576118e561451e565b9052506118f181612baf565b91505090565b604080516001808252818301909252600091829190602080830190803683370190505090506061816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816119485790505090506040518060400160405280600b81526020017f6e616d6573706163654964000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816119cd5790505090506040518060400160405280600581526020017f6f776e6572000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000611a37610bcb565b90503073ffffffffffffffffffffffffffffffffffffffff821603611a6957611a64878787878787612d73565b611af8565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f4990611ac5908a908a908a908a908a908a9060040161458c565b600060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050505b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050601f816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611b525790505090506040518060400160405280600781526020017f62616c616e636500000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110611bec57611bec61443d565b602002602001019060c5811115611c0557611c0561451e565b908160c5811115611c1857611c1861451e565b81525050605f816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611c475790505090506040518060400160405280600a81526020017f6d6f64756c654e616d650000000000000000000000000000000000000000000081525081600081518110611ca757611ca761443d565b60200260200101819052506040518060400160405280600d81526020017f617267756d656e74734861736800000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611d125790505090506040518060400160405280600d81526020017f6d6f64756c654164647265737300000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611dac57611dac61443d565b602002602001019060c5811115611dc557611dc561451e565b908160c5811115611dd857611dd861451e565b815250506061816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611e075790505090506040518060400160405280600981526020017f64656c656761746f72000000000000000000000000000000000000000000000081525081600081518110611e6757611e6761443d565b60200260200101819052506040518060400160405280600981526020017f64656c6567617465650000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611ed25790505090506040518060400160405280601381526020017f64656c65676174696f6e436f6e74726f6c496400000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611dac57611dac61443d565b604080516001808252818301909252600091829190602080830190803683370190505090506060816000815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611fbc5790505090506040518060400160405280600a81526020017f7265736f757263654964000000000000000000000000000000000000000000008152508160008151811061201c5761201c61443d565b60200260200101819052506040518060400160405280600681526020017f63616c6c65720000000000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816120875790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106121215761212161443d565b602002602001019060c581111561213a5761213a61451e565b908160c581111561214d5761214d61451e565b815250506060816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161217d5790505090506040518060400160405280600881526020017f73797374656d4964000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816121f35790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106122535761225361443d565b60200260200101819052506040518060400160405280600c81526020017f7075626c69634163636573730000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252600091829190602080830190803683370190505090506043816000815181106118b9576118b961443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f8160008151811061231b5761231b61443d565b602002602001019060c58111156123345761233461451e565b908160c58111156123475761234761451e565b815250506043816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816123775790505090506040518060400160405280601081526020017f66756e6374696f6e53656c6563746f7200000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816123ed5790505090506040518060400160405280600881526020017f73797374656d49640000000000000000000000000000000000000000000000008152508160008151811061244d5761244d61443d565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816001815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060c5816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816124f25790505090506040518060400160405280601181526020017f66756e6374696f6e5369676e6174757265000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060b6816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816125a35790505090506040518060400160405280600581526020017f76616c7565000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161261a5790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b610bc48585612689848761304b565b8561308e565b60606000806126a087878787613322565b91509150816126b2576126b2816133a3565b9695505050505050565b60408051600580825260c082019092526000918291906020820160a080368337019050509050605f816000815181106126f7576126f761443d565b602002602001019060c58111156127105761271061451e565b908160c58111156127235761272361451e565b81525050605f8160018151811061273c5761273c61443d565b602002602001019060c58111156127555761275561451e565b908160c58111156127685761276861451e565b81525050605f816002815181106127815761278161443d565b602002602001019060c581111561279a5761279a61451e565b908160c58111156127ad576127ad61451e565b8152505060c4816003815181106127c6576127c661443d565b602002602001019060c58111156127df576127df61451e565b908160c58111156127f2576127f261451e565b8152505060c4816004815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816128225790505090506040518060400160405280600781526020017f7461626c65496400000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600580825260c08201909252606091816020015b606081526020019060019003908161289a5790505090506040518060400160405280600b81526020017f6669656c644c61796f7574000000000000000000000000000000000000000000815250816000815181106128fa576128fa61443d565b60200260200101819052506040518060400160405280600981526020017f6b6579536368656d6100000000000000000000000000000000000000000000008152508160018151811061294e5761294e61443d565b60200260200101819052506040518060400160405280600b81526020017f76616c7565536368656d61000000000000000000000000000000000000000000815250816002815181106129a2576129a261443d565b60200260200101819052506040518060400160405280601281526020017f616269456e636f6465644b65794e616d65730000000000000000000000000000815250816003815181106129f6576129f661443d565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612a615790505090506040518060400160405280600581526020017f686f6f6b73000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612ad85790505090506040518060400160405280600a81526020017f7265736f75726365496400000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612b4f5790505090506040518060400160405280600681526020017f6578697374730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000601c82511115612be2578151604051635318beb960e01b8152600401612bd991815260200190565b60405180910390fd5b60008080805b8551811015612cbd576000612c26878381518110612c0857612c0861443d565b602002602001015160c5811115612c2157612c2161451e565b6133ab565b905080600003612c3b57600190920191612c73565b8215612c73576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110612c9457612c9461443d565b602002602001015160c5811115612cad57612cad61451e565b901b949094179350600101612be8565b506005811115612ce357604051635318beb960e01b815260048101829052602401612bd9565b84518190036008612cf6600260206145d6565b612d0091906145e9565b83901b939093179260086001612d18600260206145d6565b612d2291906145d6565b612d2c91906145e9565b81901b93909317926008600180612d45600260206145d6565b612d4f91906145d6565b612d5991906145d6565b612d6391906145e9565b9190911b92909217949350505050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590612dd15750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15612e3257613a3160f11b8687604051602001612df091815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252612bd9939291600401614600565b612e3b8561340b565b612e4684600161358c565b612e5183600061358c565b60e084901c60e885901c0160ff16825114612eb15760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff16815114612f115760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614612f895760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b612f9286613733565b15612fec578586604051602001612fab91815260200190565b60408051601f19818403018152908290527fdfaaf9cf000000000000000000000000000000000000000000000000000000008252612bd99291600401614641565b6130388686868686604051602001613004919061465a565b60405160208183030381529060405286604051602001613024919061465a565b6040516020818303038152906040526137ff565b613043866001611290565b505050505050565b600080805b8360ff168110156130865761307260ff601b83900360080287901c168361466d565b91508061307e81614469565b915050613050565b509392505050565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036130fd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516130f0939291906146bb565b60405180910390a261154f565b60006131098585613903565b9050600061311686613959565b905060005b81518110156131f55760008282815181106131385761313861443d565b602002602001015190506131646004826affffffffffffffffffffff1916613a2190919063ffffffff16565b156131e2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906131af908b908b908b908b906004016146ee565b600060405180830381600087803b1580156131c957600080fd5b505af11580156131dd573d6000803e3d6000fd5b505050505b50806131ed81614469565b91505061311b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161322a939291906146bb565b60405180910390a2613245828565ffffffffffff1685613a3f565b60005b8151811015611af85760008282815181106132655761326561443d565b602002602001015190506132916008826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561330f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906132dc908b908b908b908b906004016146ee565b600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050505b508061331a81614469565b915050613248565b600060608373ffffffffffffffffffffffffffffffffffffffff16613348848888613a55565b6040516133559190614732565b600060405180830381855af49150503d8060008114613390576040519150601f19603f3d011682016040523d82523d6000602084013e613395565b606091505b509097909650945050505050565b805160208201fd5b6000808260c58111156133c0576133c061451e565b60ff16905060618110156133da57601f1660010192915050565b60618360c58111156133ee576133ee61451e565b036133fc5750601492915050565b50600092915050565b50919050565b80613442576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061344d82613a84565b90506005811115613494576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401612bd9565b600061349f83613ac1565b905060006134ad838361466d565b9050601c8111156134f4576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401612bd9565b60005b82811015610bc45760ff601b82900360080286901c166000819003613548576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115613583576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016134f7565b80158015613598575081155b156135b957604051635318beb960e01b815260006004820152602401612bd9565b60006135c483613a84565b905060058111156135eb57604051635318beb960e01b815260048101829052602401612bd9565b60006135f684613ac1565b90506000613604838361466d565b9050601c81111561362b57604051635318beb960e01b815260048101829052602401612bd9565b60008060005b838110156136ec5760006136596136488a84613ad3565b60c5811115612c2157612c2161451e565b11156136a357848110613698576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916136e4565b848110156136dd576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101613631565b5083821461371057604051635318beb960e01b815260048101839052602401612bd9565b848114611af857604051635318beb960e01b815260048101829052602401612bd9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061376c5761376c61443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906137eb906137db90614419565b836000630101000160d81b613afb565b90506137f78160f81c90565b949350505050565b600061380c868686613b31565b9050600061381a8484613b53565b905060006138288585613b70565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106138625761386261443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526138f7906138ce90614419565b828686867e60030220202000000000000000000000000000000000000000000000000000613b9c565b50505050505050505050565b6000828260405160200161391892919061474e565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106139935761399361443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090613a0a90613a0290614419565b836000613ece565b90506137f7613a1c8260008451613f08565b613f98565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b61137083838351613a508560200190565b613fa9565b6060838383604051602001613a6c93929190614789565b60405160208183030381529060405290509392505050565b60006008600180613a97600260206145d6565b613aa191906145d6565b613aab91906145d6565b613ab591906145e9565b8260ff911c1692915050565b600060086001613aa1600260206145d6565b6000601b8290036008028360ff911c1660c5811115613af457613af461451e565b9392505050565b6000613b28613b0a8686613903565b60ff858116601b0360080285901c16613b23858761304b565b614069565b95945050505050565b6040805160208101859052908101839052606081810183905290608001613a6c565b8151815160009181810160389190911b1760609190911b17613af4565b60608282604051602001613b859291906147db565b604051602081830303815290604052905092915050565b611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001603613c0d57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051613c00949392919061480a565b60405180910390a2613043565b6000613c1887613959565b905060005b8151811015613cfb576000828281518110613c3a57613c3a61443d565b60200260200101519050613c666001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ce8576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613cb5908c908c908c908c908c908c90600401614849565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050505b5080613cf381614469565b915050613c1d565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051613d32949392919061480a565b60405180910390a26000613d468888613903565b90506000602087019050613d5e826000895184613fa9565b6000613d6985613a84565b1115613ded576000613d7b8a8a6140ba565b878155905060208601915060008060005b613d9588613a84565b8160ff161015613de857613daa8d8d83614110565b9250613dc58a8260ff166028026038011c64ffffffffff1690565b9150613dd48360008488613fa9565b613dde828661466d565b9450600101613d8c565b505050505b60005b83518110156138f7576000848281518110613e0d57613e0d61443d565b60200260200101519050613e396002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ebb576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613e88908e908e908e908e908e908e90600401614849565b600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050505b5080613ec681614469565b915050613df0565b60606137f7613ede858585614110565b6000613f0385613eee8989614190565b9060ff166028026038011c64ffffffffff1690565b6141a3565b6000818311158015613f1b575083518211155b613f57578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401612bd9939291906148a2565b60208401613f65848261466d565b90506000613f7385856145d6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000613af483601560006141c6565b82156140235760208310613fd357602083048401935060208381613fcf57613fcf6148c7565b0692505b82156140235760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161401457505061154f565b50600194909401939182900391015b5b602082106140455780518455600190930192601f1990910190602001614024565b811561154f576000600019600884021c198554835182169119161785555050505050565b60006020821061408f5760208204840193506020828161408b5761408b6148c7565b0691505b508254600882021b602082900380841115613086576001850154600882021c82179150509392505050565b600082826040516020016140cf92919061474e565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161412592919061474e565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000613af461419f84846140ba565b5490565b60405160208101601f19603f848401011660405282825261308685858584614241565b606060006141d48560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816141fa576141fa6148c7565b04905060405193506020840160208202810160405281855260005b82811015614235578451871c825293870193602090910190600101614215565b50505050509392505050565b82156142ca576020831061426b57602083048401935060208381614267576142676148c7565b0692505b82156142ca57602083900360008184101561428f5750600019600884021c1961429a565b50600019600882021c195b8554600886021b8119845116828216178452508184116142bb57505061154f565b50600194909401939182900391015b5b602082106142ec5783548152600190930192601f19909101906020016142cb565b811561154f576000600019600884021c198251865482169119161782525050505050565b60006020828403121561432257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613af457600080fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561437a57600080fd5b813567ffffffffffffffff8082111561439257600080fd5b818401915084601f8301126143a657600080fd5b8135818111156143b8576143b8614352565b604051601f8201601f19908116603f011681019083821181831017156143e0576143e0614352565b816040528281528760208487010111156143f957600080fd5b826020860160208301376000928101602001929092525095945050505050565b805160208083015191908110156134055760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361447c5761447c614453565b5060010190565b60005b8381101561449e578181015183820152602001614486565b50506000910152565b600081518084526144bf816020860160208601614483565b601f01601f19169290920160200192915050565b8381526060602082015260006144ec60608301856144a7565b90507fffffffff0000000000000000000000000000000000000000000000000000000083166040830152949350505050565b634e487b7160e01b600052602160045260246000fd5b600082825180855260208086019550808260051b84010181860160005b8481101561457f57601f1986840301895261456d8383516144a7565b98840198925090830190600101614551565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006145b760c0830185614534565b82810360a08401526145c98185614534565b9998505050505050505050565b8181038181111561022757610227614453565b808202811582820484141761022757610227614453565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000613b2860608301846144a7565b8281526040602082015260006137f760408301846144a7565b602081526000613af46020830184614534565b8082018082111561022757610227614453565b600081518084526020808501945080840160005b838110156146b057815187529582019590820190600101614694565b509495945050505050565b6060815260006146ce6060830186614680565b65ffffffffffff8516602084015282810360408401526126b281856144a7565b8481526080602082015260006147076080830186614680565b65ffffffffffff85166040840152828103606084015261472781856144a7565b979650505050505050565b60008251614744818460208701614483565b9190910192915050565b82815260006020808301845182860160005b8281101561477c57815184529284019290840190600101614760565b5091979650505050505050565b6000845161479b818460208901614483565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600083516147ed818460208801614483565b835190830190614801818360208801614483565b01949350505050565b60808152600061481d6080830187614680565b828103602084015261482f81876144a7565b9050846040840152828103606084015261472781856144a7565b86815260c06020820152600061486260c0830188614680565b828103604084015261487481886144a7565b9050856060840152828103608084015261488e81866144a7565b9150508260a0830152979650505050505050565b6060815260006148b560608301866144a7565b60208301949094525060400152919050565b634e487b7160e01b600052601260045260246000fdfe756e726567697374657253746f7265486f6f6b28627974657333322c616464726573732972656769737465725461626c6528627974657333322c627974657333322c627974657333322c627974657333322c737472696e675b5d2c737472696e675b5d29726567697374657244656c65676174696f6e28616464726573732c627974657333322c627974657329726567697374657246756e6374696f6e53656c6563746f7228627974657333322c737472696e6729726567697374657253797374656d28627974657333322c616464726573732c626f6f6c297472616e7366657242616c616e6365546f4164647265737328627974657333322c616464726573732c75696e7432353629726567697374657253746f7265486f6f6b28627974657333322c616464726573732c75696e7438297265676973746572526f6f7446756e6374696f6e53656c6563746f7228627974657333322c737472696e672c62797465733429626174636843616c6c46726f6d2828616464726573732c627974657333322c6279746573295b5d29756e726567697374657253797374656d486f6f6b28627974657333322c616464726573732972656769737465724e616d65737061636544656c65676174696f6e28627974657333322c627974657333322c6279746573297472616e7366657242616c616e6365546f4e616d65737061636528627974657333322c627974657333322c75696e7432353629726567697374657253797374656d486f6f6b28627974657333322c616464726573732c75696e7438297472616e736665724f776e65727368697028627974657333322c6164647265737329a164736f6c6343000815000a64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65646368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65647365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d617463686368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564476574206c697374206f66206b6579732077697468206120676976656e2076616c75657365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564636f6d707574652074686520746172676574207461626c652073656c6563746f72a164736f6c6343000815000a60a06040526040516100109061004b565b604051809103906000f08015801561002c573d6000803e3d6000fd5b506001600160a01b031660805234801561004557600080fd5b50610058565b6126f0806115ff83390190565b60805161158561007a60003960008181610587015261069001526115856000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b6100956100903660046111ec565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461124b565b61023c565b005b6040517f696e64657800000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b36600461124b565b61026e565b6100b2610786565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610790565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102987f696e646578000000000000000000000000000000000000000000000000000000826107c2565b6000818060200190518101906102ae91906112fc565b905060006102dc7f6b65797776616c0000000000000000000000000000000000000000000000000083610807565b905060006102e8610786565b90506103357f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008416176108e4565b6104515760008073ffffffffffffffffffffffffffffffffffffffff83168063b29e40897f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008816176040516024016103ae91815260200190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103fb9250611339565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b50915091508161044e5761044e816109fb565b50505b60008073ffffffffffffffffffffffffffffffffffffffff831680630ba51f49867c0100000000000000000000000000000000000000000000000000000000610498610a03565b6104a0610a7b565b6104a8610ab5565b6104b0610b3a565b6040516024016104c5969594939291906113c5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105129250611339565b600060405180830381855af49150503d806000811461054d576040519150601f19603f3d011682016040523d82523d6000602084013e610552565b606091505b50915091508161056557610565816109fb565b604080516024810186905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40554c3a0000000000000000000000000000000000000000000000000000000017905291519185169161061a9190611339565b600060405180830381855af49150503d8060008114610655576040519150601f19603f3d011682016040523d82523d6000602084013e61065a565b606091505b5090925090508161066e5761066e816109fb565b604080516024810187905273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166044830152607d60648084019190915283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f530f4b600000000000000000000000000000000000000000000000000000000017905291519185169161072a9190611339565b600060405180830381855af49150503d8060008114610765576040519150601f19603f3d011682016040523d82523d6000602084013e61076a565b606091505b5090925090508161077e5761077e816109fb565b505050505050565b6000610237610bb1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806107bf5750335b90565b6107cc8282610bfd565b15610803576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008061081383610c46565b905060006108218460101b90565b90506038610830816010611425565b61083a9190611425565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c61086b60386010611425565b7f74620000000000000000000000000000000000000000000000000000000000007fffffffffffffff0000000000000000000000000000000000000000000000000093909316901c601087901c7dffffffffffffff00000000000000000000000000000000000000000000001617171791505092915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061091d5761091d611438565b602090810291909101810191909152604080517f7462000000000000000000000000000000000000000000000000000000000000818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906109e7906109bf9061144e565b8360007e01010001000000000000000000000000000000000000000000000000000000610c5d565b90506109f38160f81c90565b949350505050565b805160208201fd5b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610a3d57610a3d611438565b602002602001019060c5811115610a5657610a56611472565b908160c5811115610a6957610a69611472565b905250610a7581610d34565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060c181600081518110610a3d57610a3d611438565b604080516001808252818301909252606091816020015b6060815260200190600190039081610acc5790505090506040518060400160405280600981526020017f76616c756548617368000000000000000000000000000000000000000000000081525081600081518110610b2c57610b2c611438565b602002602001018190525090565b604080516001808252818301909252606091816020015b6060815260200190600190039081610b515790505090506040518060400160405280600d81526020017f6b6579735769746856616c75650000000000000000000000000000000000000081525081600081518110610b2c57610b2c611438565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610bf8573391505090565b919050565b60008073ffffffffffffffffffffffffffffffffffffffff16610c27848480519060200120610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614159392505050565b6000610c5460706010611425565b9190911b919050565b600080610c68610bb1565b90503073ffffffffffffffffffffffffffffffffffffffff821603610c9b57610c938686868661106c565b9150506109f3565b6040517f8c364d5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690638c364d5990610cf3908990899089908990600401611488565b602060405180830381865afa158015610d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9391906112fc565b6000601c82511115610d805781516040517f5318beb9000000000000000000000000000000000000000000000000000000008152600401610d7791815260200190565b60405180910390fd5b60008080805b8551811015610e5b576000610dc4878381518110610da657610da6611438565b602002602001015160c5811115610dbf57610dbf611472565b6110a2565b905080600003610dd957600190920191610e11565b8215610e11576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610e3257610e32611438565b602002602001015160c5811115610e4b57610e4b611472565b901b949094179350600101610d86565b506005811115610e9a576040517f5318beb900000000000000000000000000000000000000000000000000000000815260048101829052602401610d77565b84518190036008610ead600260206114e3565b610eb791906114f6565b83901b939093179260086001610ecf600260206114e3565b610ed991906114e3565b610ee391906114f6565b81901b93909317926008600180610efc600260206114e3565b610f0691906114e3565b610f1091906114e3565b610f1a91906114f6565b9190911b92909217949350505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110610f7657610f76611438565b6020026020010181815250508281600181518110610f9657610f96611438565b602090810291909101810191909152604080517f7462000000000000000000000000000000000000000000000000000000000000818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052600090611060906110389061144e565b8360007e14010014000000000000000000000000000000000000000000000000000000610c5d565b60601c95945050505050565b600061109961107b8686611102565b60ff858116601b0360080285901c166110948587611158565b61119b565b95945050505050565b6000808260c58111156110b7576110b7611472565b60ff16905060618110156110d157601f1660010192915050565b60618360c58111156110e5576110e5611472565b036110f35750601492915050565b50600092915050565b50919050565b6000828260405160200161111792919061150d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156111935761117f60ff601b83900360080287901c1683611425565b91508061118b81611548565b91505061115d565b509392505050565b6000602082106111c1576020820484019350602082816111bd576111bd611562565b0691505b508254600882021b602082900380841115611193576001850154600882021c82179150509392505050565b6000602082840312156111fe57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461122e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561125d57600080fd5b813567ffffffffffffffff8082111561127557600080fd5b818401915084601f83011261128957600080fd5b81358181111561129b5761129b611235565b604051601f8201601f19908116603f011681019083821181831017156112c3576112c3611235565b816040528281528760208487010111156112dc57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561130e57600080fd5b5051919050565b60005b83811015611330578181015183820152602001611318565b50506000910152565b6000825161134b818460208701611315565b9190910192915050565b600082825180855260208086019550808260051b84010181860160005b848110156113b857601f1980878503018a528251805180865261139a81888801898501611315565b9a86019a601f01909116939093018401925090830190600101611372565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006113f060c0830185611355565b82810360a08401526114028185611355565b9998505050505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102275761022761140f565b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156110fc5760001960209190910360031b1b16919050565b634e487b7160e01b600052602160045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b818110156114c9578451835293830193918301916001016114ad565b505060ff9690961660408501525050506060015292915050565b818103818111156102275761022761140f565b80820281158282048414176102275761022761140f565b82815260006020808301845182860160005b8281101561153b5781518452928401929084019060010161151f565b5091979650505050505050565b6000600019820361155b5761155b61140f565b5060010190565b634e487b7160e01b600052601260045260246000fdfea164736f6c6343000815000a608060405234801561001057600080fd5b506126d0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636358453311610076578063964f667d1161005b578063964f667d1461012b5780639faeaf451461013e578063a8ba87211461015157600080fd5b8063635845331461010a57806383b5c95b1461011d57600080fd5b806301ffc9a7146100a857806355eb5a28146100cf57806357066c9c146100e45780635b28cdaf146100f7575b600080fd5b6100bb6100b6366004611df4565b610164565b604051901515815260200160405180910390f35b6100e26100dd366004611f90565b6101fd565b005b6100e26100f2366004612044565b610262565b6100e2610105366004612044565b61031d565b6100e2610118366004611f90565b61034f565b6100e26101053660046120e8565b6100e2610139366004612138565b61039b565b6100e261014c3660046120e8565b6103ef565b6100e261015f366004612138565b610434565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061020888610480565b90506000610217898984610558565b9050600061022f661ad95e5ddd985b60ca1b8b610633565b9050610256818a600081518110610248576102486121c5565b6020026020010151846106f5565b50505050505050505050565b6000610278661ad95e5ddd985b60ca1b88610633565b90506000610287888885610558565b90506102ae82886000815181106102a0576102a06121c5565b6020026020010151836106f5565b8351606090156102e3578686866040516020016102cd939291906121ff565b60405160208183030381529060405290506102e6565b50855b6103128382805190602001208a600081518110610305576103056121c5565b6020026020010151610736565b505050505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061035a88610480565b90506000610369898984610558565b90506000610381661ad95e5ddd985b60ca1b8b610633565b905061025681838b600081518110610305576103056121c5565b60006103a685610480565b905060006103b5868684610558565b905060006103cd661ad95e5ddd985b60ca1b88610633565b90506103e68187600081518110610248576102486121c5565b50505050505050565b60006103fc848484610558565b90506000610414661ad95e5ddd985b60ca1b86610633565b905061042d8185600081518110610248576102486121c5565b5050505050565b600061043f85610480565b9050600061044e868684610558565b90506000610466661ad95e5ddd985b60ca1b88610633565b90506103e6818388600081518110610305576103056121c5565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104b9576104b96121c5565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906105509061052890612236565b8360007e600302202020000000000000000000000000000000000000000000000000006107a6565b949350505050565b600080600080610566610863565b6001600160a01b031663419b58fd8888886040518463ffffffff1660e01b815260040161059593929190612298565b600060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105da9190810190612306565b92509250925060008151111561061f578282826040516020016105ff939291906121ff565b60405160208183030381529060405280519060200120935050505061062c565b5050805160209091012090505b9392505050565b60008061063f83610872565b9050600061064d8460101b90565b9050603861065c816010612389565b6106669190612389565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c61069760386010612389565b613a3160f11b7fffffffffffffff0000000000000000000000000000000000000000000000000093909316901c601087901c7dffffffffffffff00000000000000000000000000000000000000000000001617171791505092915050565b600061070b836107058685610889565b906108fd565b905080516000036107255761072084836109d5565b610730565b610730848383610a26565b50505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061076c5761076c6121c5565b602002602001018181525050610730848260008560405160200161079291815260200190565b604051602081830303815290604052610a7d565b6000806107b1610b23565b9050306001600160a01b038216036107d7576107cf86868686610b62565b915050610550565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061082290899089908990899060040161239c565b602060405180830381865afa15801561083f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf91906123cb565b600061086d610b23565b905090565b600061088060706010612389565b9190911b919050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106108c3576108c36121c5565b60200260200101818152505060006108dd85836000610b8f565b90506108f46108ef8260008451610c56565b610cef565b95945050505050565b60606000835167ffffffffffffffff81111561091b5761091b611e36565b604051908082528060200260200182016040528015610944578160200160208202803683370190505b5090506000805b85518110156109cb5784868281518110610967576109676121c5565b6020026020010151146109b957858181518110610986576109866121c5565b60200260200101518383815181106109a0576109a06121c5565b6020908102919091010152816109b5816123e4565b9250505b806109c3816123e4565b91505061094b565b5081529392505050565b604080516001808252818301909252600091602080830190803683370190505090508181600081518110610a0b57610a0b6121c5565b602002602001018181525050610a218382610d00565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610a5c57610a5c6121c5565b60200260200101818152505061073084826000610a7886610d9b565b610dab565b6000610a87610b23565b9050306001600160a01b03821603610aaa57610aa585858585610e1e565b61042d565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290610af590889088908890889060040161242a565b600060405180830381600087803b158015610b0f57600080fd5b505af1158015610312573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610b5d573391505090565b919050565b60006108f4610b718686610e61565b60ff858116601b0360080285901c16610b8a8587610eb7565b610ef2565b60606000610b9b610b23565b9050306001600160a01b03821603610bc057610bb8858585610f43565b91505061062c565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610c099088908890889060040161245e565b600060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bb8919081019061248a565b509392505050565b6000818311158015610c69575083518211155b610cae578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610ca5939291906124bf565b60405180910390fd5b60208401610cbc8482612389565b90506000610cca85856124e4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061062c8360206000610f7d565b6000610d0a610b23565b9050306001600160a01b03821603610d2657610a218383610ff8565b6040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063505a181d90610d6d90869086906004016124f7565b600060405180830381600087803b158015610d8757600080fd5b505af11580156103e6573d6000803e3d6000fd5b60608161062c816020600061100f565b6000610db5610b23565b9050306001600160a01b03821603610dd357610aa585858585611063565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea86290610af590889088908890889060040161242a565b6000610e2a858561109e565b90506000610e47828560ff166028026038011c64ffffffffff1690565b9050610e5986868684600088886110b1565b505050505050565b60008282604051602001610e76929190612510565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4e57610ede60ff601b83900360080287901c1683612389565b915080610eea816123e4565b915050610ebc565b600060208210610f1857602082048401935060208281610f1457610f1461254b565b0691505b508254600882021b602082900380841115610c4e576001850154600882021c82179150509392505050565b6060610550610f538585856114c7565b6000610f7885610f63898961109e565b9060ff166028026038011c64ffffffffff1690565b611547565b60606000610f8b8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281610fb157610fb161254b565b04905060405193506020840160208202810160405281855260005b82811015610fec578451871c825293870193602090910190600101610fcc565b50505050509392505050565b61100b82826110068561156a565b611668565b5050565b825160609060006110208583612561565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015610fec578051871b83529187019160019190910190602001611042565b600061106f858561109e565b9050600061108c828560ff166028026038011c64ffffffffff1690565b9050610e5986868660008588886110b1565b600061062c6110ad848461197b565b5490565b613a3160f11b877fffff000000000000000000000000000000000000000000000000000000000000161461113b57613a3160f11b87886040516020016110f991815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610ca5939291600401612578565b6000611156828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361116f91906124e4565b6111799190612389565b905080821415801561119b57508161119186886125b9565b64ffffffffff1614155b156111eb576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610ca5565b818664ffffffffff16111561123c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610ca5565b60006112498489846119d1565b905060006112568b611a9f565b905060005b815181101561132b576000828281518110611278576112786121c5565b602002602001015190506112a46010826affffffffffffffffffffff1916611b6790919063ffffffff16565b1561131857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016112e597969594939291906125de565b600060405180830381600087803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050505b5080611323816123e4565b91505061125b565b5064ffffffffff881660005b8a60ff168160ff16101561136a5761135e878260ff166028026038011c64ffffffffff1690565b90910190600101611337565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516113a395949392919061263c565b60405180910390a2508284146113c45760006113bf8c8c61197b565b839055505b60006113d18c8c8c6114c7565b90506113e5818a64ffffffffff1689611b85565b5060005b81518110156114b9576000828281518110611406576114066121c5565b602002602001015190506114326020826affffffffffffffffffffff1916611b6790919063ffffffff16565b156114a657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b815260040161147397969594939291906125de565b600060405180830381600087803b15801561148d57600080fd5b505af11580156114a1573d6000803e3d6000fd5b505050505b50806114b1816123e4565b9150506113e9565b505050505050505050505050565b600083836040516020016114dc929190612510565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60405160208101601f19603f8484010116604052828252610c4e85858584611b9b565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152600091016040516020818303038152906040526115c990612236565b82036115f557507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101f79161165f910160405160208183030381529060405261165990612236565b84611c6a565b60206000610ef2565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff00000000000000000000000000000000000000000000000000000000000016036116ee57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516116e1919061268e565b60405180910390a2505050565b60006116f984611a9f565b905060005b81518110156117d657600082828151811061171b5761171b6121c5565b602002602001015190506117476040826affffffffffffffffffffff1916611b6790919063ffffffff16565b156117c3576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf459061179090899089908990600401612298565b600060405180830381600087803b1580156117aa57600080fd5b505af11580156117be573d6000803e3d6000fd5b505050505b50806117ce816123e4565b9150506116fe565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051611807919061268e565b60405180910390a2600061181b8585610e61565b905061187481600061182c86611c86565b67ffffffffffffffff81111561184457611844611e36565b6040519080825280601f01601f19166020018201604052801561186e576020820181803683370190505b50611b85565b600061187f84611ca9565b11156118a0576000611891868661197b565b905061189e816020611ce6565b505b60005b8251811015610e595760008382815181106118c0576118c06121c5565b602002602001015190506118ec6080826affffffffffffffffffffff1916611b6790919063ffffffff16565b15611968576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611935908a908a908a90600401612298565b600060405180830381600087803b15801561194f57600080fd5b505af1158015611963573d6000803e3d6000fd5b505050505b5080611973816123e4565b9150506118a3565b60008282604051602001611990929190612510565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff821115611a15576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610ca5565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510611a475780850382019150611a4f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ad957611ad96121c5565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b5090611b4890612236565b836000610f43565b9050610550611b628260008451610c56565b611d23565b60008160ff1682611b788560581c90565b1660ff1614905092915050565b610a2183838351611b968560200190565b611d34565b8215611c245760208310611bc557602083048401935060208381611bc157611bc161254b565b0692505b8215611c24576020839003600081841015611be95750600019600884021c19611bf4565b50600019600882021c195b8554600886021b811984511682821617845250818411611c15575050610730565b50600194909401939182900391015b5b60208210611c465783548152600190930192601f1990910190602001611c25565b8115610730576000600019600884021c198251865482169119161782525050505050565b6040805160208101849052908101829052600090606001610e76565b60006008611c96600260206124e4565b611ca09190612561565b9190911c919050565b60006008600180611cbc600260206124e4565b611cc691906124e4565b611cd091906124e4565b611cda9190612561565b8260ff911c1692915050565b60006020611cf583601f612389565b611cff91906126a1565b611d099084612389565b90505b80831015610a215760008355600183019250611d0c565b6060600061062c8360156000610f7d565b8215611dae5760208310611d5e57602083048401935060208381611d5a57611d5a61254b565b0692505b8215611dae5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611d9f575050610730565b50600194909401939182900391015b5b60208210611dd05780518455600190930192601f1990910190602001611daf565b8115610730576000600019600884021c198554835182169119161785555050505050565b600060208284031215611e0657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461062c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e7557611e75611e36565b604052919050565b600082601f830112611e8e57600080fd5b8135602067ffffffffffffffff821115611eaa57611eaa611e36565b8160051b611eb9828201611e4c565b9283528481018201928281019087851115611ed357600080fd5b83870192505b84831015611ef257823582529183019190830190611ed9565b979650505050505050565b803564ffffffffff81168114610b5d57600080fd5b600067ffffffffffffffff821115611f2c57611f2c611e36565b50601f01601f191660200190565b600082601f830112611f4b57600080fd5b8135611f5e611f5982611f12565b611e4c565b818152846020838601011115611f7357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611fab57600080fd5b87359650602088013567ffffffffffffffff80821115611fca57600080fd5b611fd68b838c01611e7d565b975060408a0135915060ff82168214611fee57600080fd5b819650611ffd60608b01611efd565b955061200b60808b01611efd565b945060a08a0135935060c08a013591508082111561202857600080fd5b506120358a828b01611f3a565b91505092959891949750929550565b60008060008060008060c0878903121561205d57600080fd5b86359550602087013567ffffffffffffffff8082111561207c57600080fd5b6120888a838b01611e7d565b9650604089013591508082111561209e57600080fd5b6120aa8a838b01611f3a565b95506060890135945060808901359150808211156120c757600080fd5b506120d489828a01611f3a565b92505060a087013590509295509295509295565b6000806000606084860312156120fd57600080fd5b83359250602084013567ffffffffffffffff81111561211b57600080fd5b61212786828701611e7d565b925050604084013590509250925092565b6000806000806080858703121561214e57600080fd5b84359350602085013567ffffffffffffffff8082111561216d57600080fd5b61217988838901611e7d565b94506040870135915065ffffffffffff8216821461219657600080fd5b909250606086013590808211156121ac57600080fd5b506121b987828801611f3a565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b60005b838110156121f65781810151838201526020016121de565b50506000910152565b600084516122118184602089016121db565b820184815283516122298160208085019088016121db565b0160200195945050505050565b80516020808301519190811015612257576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b8381101561228d57815187529582019590820190600101612271565b509495945050505050565b8381526060602082015260006122b1606083018561225d565b9050826040830152949350505050565b600082601f8301126122d257600080fd5b81516122e0611f5982611f12565b8181528460208386010111156122f557600080fd5b6105508260208301602087016121db565b60008060006060848603121561231b57600080fd5b835167ffffffffffffffff8082111561233357600080fd5b61233f878388016122c1565b945060208601519350604086015191508082111561235c57600080fd5b50612369868287016122c1565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7612373565b8481526080602082015260006123b5608083018661225d565b60ff949094166040830152506060015292915050565b6000602082840312156123dd57600080fd5b5051919050565b600060001982036123f7576123f7612373565b5060010190565b600081518084526124168160208601602086016121db565b601f01601f19169290920160200192915050565b848152608060208201526000612443608083018661225d565b60ff851660408401528281036060840152611ef281856123fe565b838152606060208201526000612477606083018561225d565b905060ff83166040830152949350505050565b60006020828403121561249c57600080fd5b815167ffffffffffffffff8111156124b357600080fd5b610550848285016122c1565b6060815260006124d260608301866123fe565b60208301949094525060400152919050565b818103818111156101f7576101f7612373565b828152604060208201526000610550604083018461225d565b82815260006020808301845182860160005b8281101561253e57815184529284019290840190600101612522565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b80820281158282048414176101f7576101f7612373565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108f460608301846123fe565b64ffffffffff8181168382160190808211156125d7576125d7612373565b5092915050565b87815260e0602082015260006125f760e083018961225d565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261262e81856123fe565b9a9950505050505050505050565b60a08152600061264f60a083018861225d565b65ffffffffffff8716602084015264ffffffffff86166040840152846060840152828103608084015261268281856123fe565b98975050505050505050565b60208152600061062c602083018461225d565b6000826126be57634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000815000a","sourceMap":"1842:9097:197:-:0;;;1572:26:101;;;1594:4;-1:-1:-1;;1572:26:101;;;;;;;;3126:44:104;;;;;;;;;;;228:9:0;186:51;;2062:25:197;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2012:75:197;;;-1:-1:-1;;;;;;2012:75:197;-1:-1:-1;;;;;2012:75:197;;;;;;;;;;2153:42;;;-1:-1:-1;;;;;;2199:46:197;-1:-1:-1;;;2199:46:197;;;2272:17;2249:40;;2347:18;2324:41;;1842:9097;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b50600436106200016c5760003560e01c8063786bd7bc11620000dd578063b5508aa9116200008b578063e004c9e9116200006e578063e004c9e91462000267578063e20c9f711462000271578063fa7626d4146200027b57600080fd5b8063b5508aa91462000242578063ba414fa6146200024c57600080fd5b806379fe553d11620000c057806379fe553d146200021557806385226c81146200021f578063916a17c6146200023857600080fd5b8063786bd7bc146200020157806378cdebf9146200020b57600080fd5b80633f7286f4116200013b578063615295ee116200011e578063615295ee14620001c757806366d9a9a014620001d157806376270d0114620001ea57600080fd5b80633f7286f414620001b35780634a8cf93d14620001bd57600080fd5b80630a9254e414620001715780631ed7831c146200017d57806339e2edb9146200019f5780633e5e3c2314620001a9575b600080fd5b6200017b62000289565b005b6200018762000531565b604051620001969190620038a5565b60405180910390f35b6200017b62000595565b62000187620005a3565b6200018762000605565b6200017b62000667565b6200017b62000cc9565b620001db62000f53565b604051620001969190620038f4565b6200017b620001fb366004620039e1565b6200105b565b6200017b620012b0565b6200017b620013c8565b6200017b6200159f565b62000229620015d5565b60405162000196919062003aa8565b620001db620016af565b62000229620017ae565b6200025662001888565b604051901515815260200162000196565b6200017b620019d4565b6200018762001c49565b600054620002569060ff1681565b620002976020600062001cab565b602655620002a6601f62001d09565b602755620002b5605f62001d09565b60285560215462000303907f746200000000000000000000000000000000000000000000000000000000000090609081901b906e010000000000000000000000000000900460801b62001d8c565b602981905562000335907f6b65797776616c000000000000000000000000000000000000000000000000009062001e14565b602a556040516200034690620037ee565b604051809103906000f08015801562000363573d6000803e3d6000fd5b50601f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905563c4d66de8620003aa62001efc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200040457600080fd5b505af115801562000419573d6000803e3d6000fd5b5050601f547f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055506200047d9050565b604080516001808252818301909252906020808301908036833750508151620004ae926023925060200190620037fc565b506022546023600081548110620004c957620004c962003ad3565b600091825260209091200155604080516001808252818301909252908160200160208202803683375050815162000508926025925060200190620037fc565b50602454602560008154811062000523576200052362003ad3565b600091825260209091200155565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200058b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200056c575b5050505050905090565b620005a160016200105b565b565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b6200067162002007565b601f546029546040805160016020808301829052835180840390910181526000838501818152606085019586905263298314fb60e01b90955291956001600160a01b03169463298314fb94620006d39491936023939290919060640162003b2b565b600060405180830381600087803b158015620006ee57600080fd5b505af115801562000703573d6000803e3d6000fd5b50505050600062000740602a54836040516020016200072491815260200190565b60405160208183030381529060405280519060200120620021b5565b905062000786815160016040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525062002232565b620007e781600081518110620007a057620007a062003ad3565b60200260200101516022546040518060400160405280600181526020017f32000000000000000000000000000000000000000000000000000000000000008152506200227f565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200084694909360259392919060640162003b2b565b600060405180830381600087803b1580156200086157600080fd5b505af115801562000876573d6000803e3d6000fd5b5050505062000895602a54836040516020016200072491815260200190565b9050620008a581516002620022cc565b6200090681600081518110620008bf57620008bf62003ad3565b60200260200101516022546040518060400160405280600181526020017f33000000000000000000000000000000000000000000000000000000000000008152506200227f565b620009678160018151811062000920576200092062003ad3565b60200260200101516024546040518060400160405280600181526020017f34000000000000000000000000000000000000000000000000000000000000008152506200227f565b600060029050620009916040518060600160405280603d815260200162017bb8603d9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620009f094909360239392919060640162003b2b565b600060405180830381600087803b15801562000a0b57600080fd5b505af115801562000a20573d6000803e3d6000fd5b5050505062000a2e620026b9565b62000a49602a54846040516020016200072491815260200190565b915062000a8f825160016040518060400160405280600181526020017f350000000000000000000000000000000000000000000000000000000000000081525062002232565b62000af08260008151811062000aa95762000aa962003ad3565b60200260200101516024546040518060400160405280600181526020017f36000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000b0b602a54826040516020016200072491815260200190565b915062000b51825160016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525062002232565b62000bb28260008151811062000b6b5762000b6b62003ad3565b60200260200101516022546040518060400160405280600181526020017f38000000000000000000000000000000000000000000000000000000000000008152506200227f565b62000bd66040518060600160405280603d815260200162017add603d9139620023de565b601f546029546040517f505a181d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163505a181d9162000c259160239060040162003b76565b600060405180830381600087803b15801562000c4057600080fd5b505af115801562000c55573d6000803e3d6000fd5b5050505062000c63620026b9565b62000c7e602a54826040516020016200072491815260200190565b915062000cc4825160006040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525062002232565b505050565b62000cd362002007565b60006001905062000cfd60405180606001604052806039815260200162017b5660399139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000d71939092602392600092909160440162003b91565b600060405180830381600087803b15801562000d8c57600080fd5b505af115801562000da1573d6000803e3d6000fd5b5050505062000daf620026b9565b600062000dcc602a54836040516020016200072491815260200190565b905062000ddc81516001620022cc565b62000e078160008151811062000df65762000df662003ad3565b602002602001015160225462002949565b60006002905062000e316040518060600160405280603c815260200162017b1a603c9139620023de565b601f5460295460408051602080820186905282518083039091018152818301928390526026547f3708196e000000000000000000000000000000000000000000000000000000009093526001600160a01b0390941693633708196e9362000ea5939092602392600092909160440162003b91565b600060405180830381600087803b15801562000ec057600080fd5b505af115801562000ed5573d6000803e3d6000fd5b5050505062000ee3620026b9565b62000efe602a54846040516020016200072491815260200190565b915062000f0e82516000620022cc565b62000f29602a54826040516020016200072491815260200190565b915062000f3982516001620022cc565b62000cc48260008151811062000df65762000df662003ad3565b60606012805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200103957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000fe55790505b5050505050815250508152602001906001019062000f77565b50505050905090565b6200106562002007565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620010c494909360239392919060640162003b2b565b600060405180830381600087803b158015620010df57600080fd5b505af1158015620010f4573d6000803e3d6000fd5b505050506200111c60405180606001604052806023815260200162017bf560239139620023de565b601f54602954604080516020810185905260009362001165936001600160a01b03909116929091015b60408051808303601f190181526000808452602084019092529162002a49565b905062001171620026b9565b6200117f81516001620022cc565b620011998160008151811062000df65762000df662003ad3565b601f54602954604080516020808201879052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb94620011f894909360259392919060640162003b2b565b600060405180830381600087803b1580156200121357600080fd5b505af115801562001228573d6000803e3d6000fd5b5050601f5460295460408051602081018890526200125795506001600160a01b03909316935090910162001145565b90506200126781516002620022cc565b620012818160008151811062000df65762000df662003ad3565b620012ac816001815181106200129b576200129b62003ad3565b602002602001015160245462002949565b5050565b620012ba62002007565b600060019050620012e46040518060600160405280603a815260200162017c18603a9139620023de565b601f54602954604080516020808201869052825180830390910181526000828401818152606084019485905263298314fb60e01b9094526001600160a01b039095169463298314fb946200134394909360239392919060640162003b2b565b600060405180830381600087803b1580156200135e57600080fd5b505af115801562001373573d6000803e3d6000fd5b5050505062001381620026b9565b60006200139e602a54836040516020016200072491815260200190565b9050620013ae81516001620022cc565b620012ac8160008151811062000df65762000df662003ad3565b601f54602080546029546040516001600160a01b039485169463af068c9e94931692620013fa92910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200142892919062003bdc565b600060405180830381600087803b1580156200144357600080fd5b505af115801562001458573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f14012068000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015620014e257600080fd5b505af1158015620014f7573d6000803e3d6000fd5b5050601f5460208054602954604080518085019290925280518083039094018452818101908190527faf068c9e0000000000000000000000000000000000000000000000000000000090526001600160a01b03938416955063af068c9e94506200156993909116919060440162003bdc565b600060405180830381600087803b1580156200158457600080fd5b505af115801562001599573d6000803e3d6000fd5b50505050565b620005a160106080620015b460388062003c16565b620015c0919062003c16565b620015cc919062003c16565b610100620022cc565b60606011805480602002602001604051908101604052809291908181526020016000905b82821015620010525783829060005260206000200180546200161b9062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016499062003c2c565b80156200169a5780601f106200166e576101008083540402835291602001916200169a565b820191906000526020600020905b8154815290600101906020018083116200167c57829003601f168201915b505050505081526020019060010190620015f9565b60606013805480602002602001604051908101604052809291908181526020016000905b82821015620010525760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200179557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017415790505b50505050508152505081526020019060010190620016d3565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101562001052578382906000526020600020018054620017f49062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620018229062003c2c565b8015620018735780601f10620018475761010080835404028352916020019162001873565b820191906000526020600020905b8154815290600101906020018083116200185557829003601f168201915b505050505081526020019060010190620017d2565b60008054610100900460ff1615620018a95750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620019cf5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000008284015282518083038401815260608301909352600092909162001951917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003c62565b60408051601f19818403018152908290526200196d9162003cac565b6000604051808303816000865af19150503d8060008114620019ac576040519150601f19603f3d011682016040523d82523d6000602084013e620019b1565b606091505b5091505080806020019051810190620019cb919062003cca565b9150505b919050565b620019f860405180606001604052806021815260200162017c5260219139620023de565b600062001a287f6b65797776616c0000000000000000000000000000000000000000000000000060295462001e14565b905062001a34620026b9565b62001abc817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f74620000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660405180606001604052806029815260200162017b8f602991396200227f565b60408051808201909152601f81527f6d6f64756c65206e616d65737061636520646f6573206e6f74206d6174636800602082015262001b45907fffffffffffffff00000000000000000000000000000000000000000000000000601084901b16907f6b65797776616c00000000000000000000000000000000000000000000000000906200227f565b62001bc562001b576038601062003c16565b60215460408051808201909152601e81527f7461626c65206e616d65737061636520646f6573206e6f74206d61746368000060208201529184901b7fffffffffffffff000000000000000000000000000000000000000000000000009081169260909290921b16906200227f565b62001c4662001bd48262002ad9565b6fffffffffffffffffffffffffffffffff19166021600e9054906101000a900460801b6fffffffffffffffffffffffffffffffff19166040518060400160405280601981526020017f7461626c65206e616d6520646f6573206e6f74206d61746368000000000000008152506200227f565b50565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200058b576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200056c575050505050905090565b60408051600180825281830190925260009182919060208083019080368337019050509050838160008151811062001ce75762001ce762003ad3565b60200260200101818152505062001cff818462002af2565b9150505b92915050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811062001d455762001d4562003ad3565b602002602001019060c581111562001d615762001d6162003cee565b908160c581111562001d775762001d7762003cee565b90525062001d858162002d1c565b9392505050565b600062001d9c6070601062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b60008062001e228362002ad9565b9050600062001e318460101b90565b9050603862001e4281601062003c16565b62001e4e919062003c16565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c62001e816038601062003c16565b7dffffffffffffff0000000000000000000000000000000000000000000000601088901c167fffffffffffffff00000000000000000000000000000000000000000000000000909316901c91909117177f74620000000000000000000000000000000000000000000000000000000000001791505092915050565b600060405162001f0c9062003848565b604051809103906000f08015801562001f29573d6000803e3d6000fd5b5060405162001f389062003856565b604051809103906000f08015801562001f55573d6000803e3d6000fd5b5060405162001f649062003864565b604051809103906000f08015801562001f81573d6000803e3d6000fd5b5060405162001f909062003872565b604051809103906000f08015801562001fad573d6000803e3d6000fd5b5060405162001fbc9062003880565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f08015801562002001573d6000803e3d6000fd5b50905090565b601f546029546026546028546027546040805160018082528183019092526001600160a01b0390961695630ba51f499594939291816020015b60608152602001906001900390816200204057505060408051600180825281830190925290602082015b60608152602001906001900390816200206a579050506040518763ffffffff1660e01b8152600401620020a39695949392919062003d04565b600060405180830381600087803b158015620020be57600080fd5b505af1158015620020d3573d6000803e3d6000fd5b50505050620021176040518060400160405280601e81526020017f696e7374616c6c206b65797320776974682076616c7565206d6f64756c650000815250620023de565b601f54602080546029546040516001600160a01b039485169463af068c9e949316926200214992910190815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016200217792919062003bdc565b600060405180830381600087803b1580156200219257600080fd5b505af1158015620021a7573d6000803e3d6000fd5b50505050620005a1620026b9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110620021f257620021f262003ad3565b60200260200101818152505060006200220e8583600062002f32565b90506200222962002223826000845162003004565b6200309c565b95945050505050565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200226b919062003d52565b60405180910390a162000cc48383620022cc565b81831462000cc4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381604051620022b8919062003d52565b60405180910390a162000cc4838362002949565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200235a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e60408201527f745d000000000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162002393919062003d9b565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a881604051620023cc919062003de7565b60405180910390a1620012ac620030af565b604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024a6919062003cca565b620024ae5750565b601b8054620024bd9062003c2c565b9050600014601b604051602001620024d6919062003ebe565b6040516020818303038152906040529062002529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b60405180910390fd5b50601d816040516200253c919062003cac565b9081526020016040518091039020546000148160405160200162002561919062003f5a565b60405160208183030381529060405290620025ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002520919062003f45565b50601b620025ba82826200401a565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663d1a5b36f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200261a57600080fd5b505af11580156200262f573d6000803e3d6000fd5b505050505a601c55604080517f2bcd50e00000000000000000000000000000000000000000000000000000000081529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91632bcd50e091600480830192600092919082900301818387803b1580156200269d57600080fd5b505af1158015620026b2573d6000803e3d6000fd5b5050505050565b60005a604080517f4777f3cf0000000000000000000000000000000000000000000000000000000081526004810191909152601460448201527f4741535f5245504f525445525f454e41424c4544000000000000000000000000606482015260006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634777f3cf906084016020604051808303816000875af115801562002761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002787919062003cca565b6200278f5750565b600060a082601c54620027a39190620040e7565b620027af9190620040e7565b620027bc90600162003c16565b9050600081116200282a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f676173207265706f7274206469646e2774207573652067617300000000000000604482015260640162002520565b80601d601b6040516200283e9190620040fd565b90815260405190819003602001902055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016200288d601b826200410b565b506200292b601b8054620028a19062003c2c565b80601f0160208091040260200160405190810160405280929190818152602001828054620028cf9062003c2c565b8015620029205780601f10620028f45761010080835404028352916020019162002920565b820191906000526020600020905b8154815290600101906020018083116200290257829003601f168201915b5050505050620031f6565b604080516020810190915260008152601b9062000cc490826200401a565b808214620012ac577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620029d79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201527f657333325d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162002a10919062003d9b565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f9981604051620023cc919062003de7565b6060600062002a797f6b65797776616c000000000000000000000000000000000000000000000000008762001e14565b9050606060008451111562002ab65785858560405160200162002a9f93929190620041ed565b604051602081830303815290604052905062002ab9565b50845b62002acd88838380519060200120620032f9565b98975050505050505050565b600062002ae96070601062003c16565b9190911b919050565b60008060008084865162002b07919062003c16565b9050601c81111562002b50576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c602482015260440162002520565b600585111562002b97576040517f7f2372c3000000000000000000000000000000000000000000000000000000008152600481018690526005602482015260440162002520565b60005b865181101562002c7d57600087828151811062002bbb5762002bbb62003ad3565b602002602001015190508060000362002c00576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111562002c3c576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030288838151811062002c605762002c6062003ad3565b6020026020010151901b8517945081806001019250505062002b9a565b50600862002c8e60026020620040e7565b62002c9a919062004228565b82901b92909217916008600162002cb460026020620040e7565b62002cc09190620040e7565b62002ccc919062004228565b8651901b9290921791600860018062002ce860026020620040e7565b62002cf49190620040e7565b62002d009190620040e7565b62002d0c919062004228565b9490941b91909117949350505050565b6000601c8251111562002d615781516040517f5318beb90000000000000000000000000000000000000000000000000000000081526004016200252091815260200190565b60008080805b855181101562002e4f57600062002dae87838151811062002d8c5762002d8c62003ad3565b602002602001015160c581111562002da85762002da862003cee565b620033f6565b90508060000362002dc55760019092019162002dfe565b821562002dfe576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811062002e225762002e2262003ad3565b602002602001015160c581111562002e3e5762002e3e62003cee565b901b94909417935060010162002d67565b50600581111562002e90576040517f5318beb90000000000000000000000000000000000000000000000000000000081526004810182905260240162002520565b8451819003600862002ea560026020620040e7565b62002eb1919062004228565b83901b93909317926008600162002ecb60026020620040e7565b62002ed79190620040e7565b62002ee3919062004228565b81901b9390931792600860018062002efe60026020620040e7565b62002f0a9190620040e7565b62002f169190620040e7565b62002f22919062004228565b9190911b92909217949350505050565b6060600062002f406200345e565b9050306001600160a01b0382160362002f695762002f608585856200349d565b91505062001d85565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779062002fb49088908890889060040162004274565b600060405180830381865afa15801562002fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002f6091908101906200431f565b509392505050565b600081831115801562003018575083518211155b62003057578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040162002520939291906200436d565b6020840162003067848262003c16565b90506000620030778585620040e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600062001d858360206000620034e6565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620031c85760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003163929160200162003c62565b60408051601f19818403018152908290526200317f9162003cac565b6000604051808303816000865af19150503d8060008114620031be576040519150601f19603f3d011682016040523d82523d6000602084013e620031c3565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b62001c467f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316636900a3ae601d846040516200323e919062003cac565b908152604051908190036020018120547fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168252620032889160040190815260200190565b600060405180830381865afa158015620032a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620032d091908101906200431f565b82604051602001620032e492919062004394565b60405160208183030381529060405262003567565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811062003336576200333662003ad3565b60209081029190910101526040517f1e7889770000000000000000000000000000000000000000000000000000000081526000906001600160a01b03871690631e788977906200338f9088908690869060040162004274565b600060405180830381865afa158015620033ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620033d791908101906200431f565b9050620033ec62002223826000845162003004565b9695505050505050565b6000808260c58111156200340e576200340e62003cee565b60ff16905060618110156200342957601f1660010192915050565b60618360c581111562003440576200344062003cee565b036200344f5750601492915050565b50600092915050565b50919050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680620019cf573391505090565b5090565b6060620034de620034b0858585620035dc565b6000620034d885620034c389896200365e565b9060ff166028026038011c64ffffffffff1690565b62003674565b949350505050565b60606000620034f58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816200351e576200351e62004419565b04905060405193506020840160208202810160405281855260005b828110156200355b578451871c82529387019360209091019060010162003539565b50505050509392505050565b62001c46816040516024016200357e919062003f45565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac0000000000000000000000000000000000000000000000000000000017905262003699565b60008383604051602001620035f39291906200442f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b600062001d85620036708484620036ba565b5490565b60405160208101601f19603f848401011660405282825262002ffc8585858462003712565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60008282604051602001620036d19291906200442f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215620037a5576020831062003741576020830484019350602083816200373d576200373d62004419565b0692505b8215620037a5576020839003600081841015620037685750600019600884021c1962003773565b50600019600882021c195b8554600886021b8119845116828216178452508184116200379657505062001599565b50600194909401939182900391015b5b60208210620037c95783548152600190930192601f1990910190602001620037a6565b811562001599576000600019600884021c198251865482169119161782525050505050565b61553a806200446083390190565b8280548282559060005260206000209081019282156200383a579160200282015b828111156200383a5782518255916020019190600101906200381d565b50620034999291506200388e565b611a79806200999a83390190565b6118cc806200b41383390190565b610b15806200ccdf83390190565b61567c806200d7f483390190565b614c6d8062012e7083390190565b5b808211156200349957600081556001016200388f565b6020808252825182820181905260009190848201906040850190845b81811015620038e85783516001600160a01b031683529284019291840191600101620038c1565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015620039d2578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620039bc5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019062003978565b50978a019795505050918701916001016200391c565b50919998505050505050505050565b600060208284031215620039f457600080fd5b5035919050565b60005b8381101562003a18578181015183820152602001620039fe565b50506000910152565b6000815180845262003a3b816020860160208601620039fb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101562003a9b57828403895262003a8884835162003a21565b9885019893509084019060010162003a6d565b5091979650505050505050565b60208152600062001d85602083018462003a4f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000815480845260208085019450836000528060002060005b8381101562003b205781548752958201956001918201910162003b02565b509495945050505050565b85815260a06020820152600062003b4660a083018762003ae9565b828103604084015262003b5a818762003a21565b9050846060840152828103608084015262002acd818562003a21565b828152604060208201526000620034de604083018462003ae9565b85815260a06020820152600062003bac60a083018762003ae9565b60ff86166040840152828103606084015262003bc9818662003a21565b9150508260808301529695505050505050565b6001600160a01b0383168152604060208201526000620034de604083018462003a21565b634e487b7160e01b600052601160045260246000fd5b8082018082111562001d035762001d0362003c00565b600181811c9082168062003c4157607f821691505b6020821081036200345857634e487b7160e01b600052602260045260246000fd5b7fffffffff00000000000000000000000000000000000000000000000000000000831681526000825162003c9e816004850160208701620039fb565b919091016004019392505050565b6000825162003cc0818460208701620039fb565b9190910192915050565b60006020828403121562003cdd57600080fd5b8151801515811462001d8557600080fd5b634e487b7160e01b600052602160045260246000fd5b86815285602082015284604082015283606082015260c06080820152600062003d3160c083018562003a4f565b82810360a084015262003d45818562003a4f565b9998505050505050505050565b60408152600560408201527f4572726f72000000000000000000000000000000000000000000000000000000606082015260806020820152600062001d85608083018462003a21565b60408152600062003dd960408301600a81527f2020202020204c65667400000000000000000000000000000000000000000000602082015260400190565b905082602083015292915050565b60408152600062003dd960408301600a81527f2020202020526967687400000000000000000000000000000000000000000000602082015260400190565b6000815462003e348162003c2c565b6001828116801562003e4f576001811462003e835762003eb4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945062003eb4565b8560005260208060002060005b8581101562003eab5781548a82015290840190820162003e90565b50505082870194505b5050505092915050565b7f676173207265706f7274202200000000000000000000000000000000000000008152600062003ef2600c83018462003e25565b7f2220697320616c72656164792072756e6e696e6720616e64206f6e6c79206f6e81527f65207265706f72742063616e2062652072756e20617420612074696d650000006020820152603d019392505050565b60208152600062001d85602083018462003a21565b7f676173207265706f72742022000000000000000000000000000000000000000081526000825162003f9481600c850160208701620039fb565b7f2220616c7265616479207573656420666f722074686973207465737400000000600c939091019283015250602801919050565b601f82111562000cc457600081815260208120601f850160051c8101602086101562003ff15750805b601f850160051c820191505b81811015620040125782815560010162003ffd565b505050505050565b815167ffffffffffffffff81111562004037576200403762003abd565b6200404f8162004048845462003c2c565b8462003fc8565b602080601f8311600181146200408757600084156200406e5750858301515b600019600386901b1c1916600185901b17855562004012565b600085815260208120601f198616915b82811015620040b85788860151825594840194600190910190840162004097565b5085821015620040d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111562001d035762001d0362003c00565b600062001d85828462003e25565b81810362004117575050565b62004123825462003c2c565b67ffffffffffffffff8111156200413e576200413e62003abd565b6200414f8162004048845462003c2c565b6000601f8211600181146200418657600083156200416d5750848201545b600019600385901b1c1916600184901b178455620026b2565b600085815260209020601f19841690600086815260209020845b83811015620041c25782860154825560019586019590910190602001620041a0565b5085831015620040d75793015460001960f8600387901b161c19169092555050600190811b01905550565b6000845162004201818460208901620039fb565b820184815283516200421b816020808501908801620039fb565b0160200195945050505050565b808202811582820484141762001d035762001d0362003c00565b600081518084526020808501945080840160005b8381101562003b205781518752958201959082019060010162004256565b8381526060602082015260006200428f606083018562004242565b905060ff83166040830152949350505050565b600067ffffffffffffffff80841115620042c057620042c062003abd565b604051601f8501601f19908116603f01168101908282118183101715620042eb57620042eb62003abd565b816040528093508581528686860111156200430557600080fd5b62004315866020830187620039fb565b5050509392505050565b6000602082840312156200433257600080fd5b815167ffffffffffffffff8111156200434a57600080fd5b8201601f810184136200435c57600080fd5b62001cff84825160208401620042a2565b60608152600062004382606083018662003a21565b60208301949094525060400152919050565b7f474153205245504f52543a200000000000000000000000000000000000000000815260008351620043ce81600c850160208801620039fb565b7f2000000000000000000000000000000000000000000000000000000000000000600c9184019182015283516200440d81600d840160208801620039fb565b01600d01949350505050565b634e487b7160e01b600052601260045260246000fd5b82815260006020808301845182860160005b8281101562003a9b578151845292840192908401906001016200444156fe60a060405234801561001057600080fd5b506100477f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e17580546001600160a01b03191630179055565b6040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907fc7f5fdc8526b76f54916701bc910876243ffff2a40b0bb8d59eea8151c52c00590600090a2336080526040516e0c4b8c0b8c0b5d5b985d591a5d1959608a1b907f7f8f36afe3fb61c459c1a54a60b8a477eab02cc58e49f547561a40906239cb8290600090a2608051615452620000e86000396000818161036f015261139601526154526000f3fe6080604052600436106101d15760003560e01c80638c364d59116100f7578063c4d66de811610095578063d9c03a0411610064578063d9c03a04146106d1578063dbbf0e21146105d1578063e228a4a3146106f1578063ef6ea8621461071157610266565b8063c4d66de814610651578063cc49db7e14610671578063d03edb8c14610691578063d4285dc2146106b157610266565b8063af068c9e116100d1578063af068c9e146105f1578063b047c1eb14610611578063c0a2895a14610631578063c11222291461054b57610266565b80638c364d59146105915780639f1fcf0a146105b1578063a53417ed146105d157610266565b8063390baae01161016f5780634dc77d971161013e5780634dc77d971461050b578063505a181d1461052b5780636951955d1461054b578063894ecc581461057e57610266565b8063390baae01461047b5780633a77c2c21461049b5780633ae7af08146104c9578063419b58fd146104dc57610266565b8063150f3262116101ab578063150f3262146103fb5780631e7889771461041b578063298314fb1461043b5780633708196e1461045b57610266565b806302d05d3f1461035d57806305242d2f146103ae578063114a7266146103db57610266565b366102665760408051616e7360f01b6020820152600060228201819052603082018190529161021891016040516020818303038152906040526102139061459d565b610731565b60408051616e7360f01b6020820152600060228201819052603082015291925061026491016040516020818303038152906040526102559061459d565b61025f34846145da565b61080f565b005b303303610299576040516327a1460b60e21b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6000806102b16000356001600160e01b031916610901565b91509150816000801b036102ff576040517ffdde54e20000000000000000000000000000000000000000000000000000000081526001600160e01b0319600035166004820152602401610290565b60006103436000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250869150610a119050565b9050600061035333858434610a44565b9050805160208201f35b34801561036957600080fd5b506103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103ce6103c936600461464a565b610a71565b6040516103a59190614700565b3480156103e757600080fd5b506102646103f6366004614755565b610ab4565b34801561040757600080fd5b50610264610416366004614755565b610b67565b34801561042757600080fd5b506103ce6104363660046147e2565b610c12565b34801561044757600080fd5b50610264610456366004614840565b610c5c565b34801561046757600080fd5b506102646104763660046148ed565b610d45565b34801561048757600080fd5b506102646104963660046148ed565b610dfb565b3480156104a757600080fd5b506104bb6104b6366004614983565b610ea8565b6040519081526020016103a5565b6103ce6104d7366004614a53565b610eb9565b3480156104e857600080fd5b506104fc6104f7366004614a9a565b610ef5565b6040516103a593929190614aed565b34801561051757600080fd5b506103ce610526366004614b8d565b610f4a565b34801561053757600080fd5b50610264610546366004614bf6565b610f59565b34801561055757600080fd5b507f312e302e302d756e6175646974656400000000000000000000000000000000006104bb565b6103ce61058c366004614c57565b610fce565b34801561059d57600080fd5b506104bb6105ac36600461464a565b61112a565b3480156105bd57600080fd5b506104bb6105cc366004614cb0565b61116d565b3480156105dd57600080fd5b506104bb6105ec366004614d0f565b61117b565b3480156105fd57600080fd5b5061026461060c366004614d66565b611188565b34801561061d57600080fd5b5061026461062c366004614da0565b611204565b34801561063d57600080fd5b5061026461064c366004614e2f565b6112af565b34801561065d57600080fd5b5061026461066c366004614ebc565b61135d565b34801561067d57600080fd5b506104fc61068c366004614bf6565b6114d8565b34801561069d57600080fd5b506103ce6106ac3660046147e2565b61152a565b3480156106bd57600080fd5b506104bb6106cc366004614983565b61156b565b3480156106dd57600080fd5b506102646106ec36600461464a565b611576565b3480156106fd57600080fd5b506104bb61070c366004614983565b6115f6565b34801561071d57600080fd5b5061026461072c366004614755565b611601565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061076a5761076a614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e636573000000000000000000000000000000000000000000000000603083015260009161080791015b6040516020818303038152906040526107df9061459d565b8360007e200100200000000000000000000000000000000000000000000000000000006116ac565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061084557610845614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526108fc906108b19061459d565b826000856040516020016108c791815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006116d9565b505050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061095a5761095a614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f720000000000000000000000000000000060308201528151808203909301835281019052600090819081906109f3906109cd9061459d565b857e240200200400000000000000000000000000000000000000000000000000006116ee565b925092509250610a048383836117f6565b9550955050505050915091565b82820160200180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052825b9392505050565b6060600080610a558787878761180e565b9150915081610a6757610a67816119f2565b9695505050505050565b6060610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506119fa9050565b303303610ae2576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610aec8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611a8b92505050565b505050505050565b303303610b95576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610b9f8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611aa692505050565b6060610c5385858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611ae1915050565b95945050505050565b303303610c8a576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610c948833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b1b92505050565b5050505050505050565b303303610d73576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610d7d8733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250889250611b31915050565b50505050505050565b303303610e29576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610e338733611a3f565b610df28787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152508892506116d9915050565b6000610eb382611b74565b92915050565b6060303303610ee9576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610a3d33848434610a44565b606060006060610f3a878787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506116ee915050565b9250925092509450945094915050565b6060610a678686868686611c44565b303303610f87576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b610f918333611a3f565b6108fc83838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d0592505050565b6060303303610ffe576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b038516036110215761101a33848434610a44565b9050610a3d565b600061102d8533611d18565b905061103c8186338787611dea565b156110555761104d85858534610a44565b915050610a3d565b6000611062866000611d18565b90506110718187338888611dea565b1561108b5761108286868634610a44565b92505050610a3d565b60006110bd616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000881617611ebf565b90506110cc8188338989611dea565b156110e7576110dd87878734610a44565b9350505050610a3d565b6040517fc86745f90000000000000000000000000000000000000000000000000000000081526001600160a01b0388166004820152336024820152604401610290565b6000610a67868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892508791506116ac9050565b6000610c5385858585611f59565b6000610807848484611fa1565b3033036111b6576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b60408051616e7360f01b602082015260006022820181905260308201526111f691016040516020818303038152906040526111f09061459d565b33611fb7565b6112008282612008565b5050565b303303611232576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b61123c8633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061211a92505050565b3033036112dd576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6112e78833611a3f565b610d3b8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528b93508a9250899189908990819084018382808284376000920191909152506123c992505050565b30330361138b576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461142f5760408051616e7360f01b602082015260006022820181905260308201526113fa91016040516020818303038152906040526113f59061459d565b6123e1565b336040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b600061147b7f636f7265000000000000000000000000000000000000000000000000000000007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47061250f565b6001600160a01b0316146114bb576040517f15e34a4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008152602081019091526114d5908290612008565b50565b60606000606061151b8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061262492505050565b92509250925093509350939050565b6060610c538585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525087925061264a915050565b6000610eb382612660565b3033036115a4576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6115ae8533611a3f565b6115ef858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508792508691506126d49050565b5050505050565b6000610eb38261272d565b30330361162f576040516327a1460b60e21b81526001600160e01b0319600035166004820152602401610290565b6116398633611a3f565b610b5f8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061275392505050565b6000610c536116bb868661278e565b60ff858116601b0360080285901c166116d485876127e4565b612827565b6115ef85856116e884876127e4565b8561211a565b60606000606060006116ff85612878565b905061170c87878361289b565b93506000611719866128d4565b905080156117eb5761172b8888612911565b935066ffffffffffffff841667ffffffffffffffff81111561174f5761174f61499c565b6040519080825280601f01601f191660200182016040528015611779576020820181803683370190505b5092506020830160005b828160ff1610156117e857600061179b8b8b84612924565b905060006117b8888460ff166028026038011c64ffffffffff1690565b90506117c782600083876129a4565b6117d181856145da565b9350505080806117e090614f1a565b915050611783565b50505b505093509350939050565b60008061180285612a73565b90969095509350505050565b60006060600061181d86612a88565b905060005b81518110156118fa57600082828151811061183f5761183f614ed9565b6020026020010151905061186b6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156118e7576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c3323031906118b4908c908c908c90600401614f39565b600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b505050505b50806118f281614f61565b915050611822565b5061190787858888612b74565b909350915060005b81518110156119e757600082828151811061192c5761192c614ed9565b602002602001015190506119586002826affffffffffffffffffffff1916612b5690919063ffffffff16565b156119d4576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f99906119a1908c908c908c90600401614f39565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b50806119df81614f61565b91505061190f565b505094509492505050565b805160208201fd5b6060611a0582612c8f565b8360ff161015611a2257611a1b85858585612ca1565b9050610807565b611a1b8585611a3085612c8f565b611a3a9087614f7b565b611ae1565b611a498282612cce565b61120057611a56826123e1565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610290929190614eef565b611aa084848484611a9b89611b74565b611b31565b50505050565b6000611ab28585612911565b90506000611acf828560ff166028026038011c64ffffffffff1690565b9050610b5f8686868460008888612d11565b6060610807611af1858585612924565b6000611b1685611b018989612911565b9060ff166028026038011c64ffffffffff1690565b613127565b6115ef8585858585611b2c8b611b74565b61314a565b611b3a81612c8f565b8360ff161015611b5657611b5185858585856116d9565b6115ef565b6115ef8585611b6484612c8f565b611b6e9087614f7b565b85612753565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b603082015260009101604051602081830303815290604052611bbc9061459d565b8203611be857507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b6022820152655461626c657360d01b6030820152610eb391611c3b9101604051602081830303815290604052611c359061459d565b846134a3565b60206000612827565b60606000611c528787612911565b90506000611c6f828760ff166028026038011c64ffffffffff1690565b90508085101580611c7f57508084115b15611cda578081861015611c9d57611c98600186614f94565b611c9f565b855b6040517f7e8578d300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610290565b6000611ce7898989612924565b9050611cf88187611b168189614f94565b9998505050505050505050565b6112008282611d1385611b74565b6134bf565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611d5d57611d5d614ed9565b602002602001018181525050826001600160a01b031660001b81600181518110611d8957611d89614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152600091610c5391016107c7565b6000611df5866137d2565b15611e0257506001610c53565b85611e0f57506000610c53565b600080611e8b8660008a8a8989604051602401611e2e93929190614f39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1a86b55000000000000000000000000000000000000000000000000000000000179052612b74565b9150915081611e9f57600092505050610c53565b80806020019051810190611eb39190614fa7565b98975050505050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611ef857611ef8614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c6567617400000000000000000000000000000000603083015260009161080791016107c7565b600080611f6583612c8f565b90508060ff168460ff161015611f8d5760ff848116601b0360080284901c165b915050610807565b611f858686611f9c8488614f7b565b61384d565b6000610807848484611fb288611b74565b611f59565b6001600160a01b038116611ff1616e7360f01b7dffffffffffffffffffffffffffff0000000000000000000000000000000085161761385d565b6001600160a01b03161461120057611a56826123e1565b612032827f780ac2fc00000000000000000000000000000000000000000000000000000000613902565b6120a7336000848460405160240161204a9190614700565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c5b03350000000000000000000000000000000000000000000000000000000017905261395d565b50611200826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210d9190614fc9565b825160208401208461396e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036121a457837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161219793929190615037565b60405180910390a2611aa0565b60006121b0858561278e565b905060006121bd86613aae565b905060005b815181101561229c5760008282815181106121df576121df614ed9565b6020026020010151905061220b6004826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612289576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612256908b908b908b908b9060040161506a565b600060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050505b508061229481614f61565b9150506121c2565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516122d193929190615037565b60405180910390a26122ec828565ffffffffffff1685613b49565b60005b8151811015610df257600082828151811061230c5761230c614ed9565b602002602001015190506123386008826affffffffffffffffffffff1916612b5690919063ffffffff16565b156123b6576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612383908b908b908b908b9060040161506a565b600060405180830381600087803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b505050505b50806123c181614f61565b9150506122ef565b610b5f8686868686866123dc8d8d612911565b612d11565b606081601081901b60006123f483613b5f565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561244f5761244a7fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613b76565b612486565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff198316156124ad576124a883613b76565b6124e4565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016124f6939291906150a3565b6040516020818303038152906040529350505050919050565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061255b5761255b614ed9565b602002602001018181525050828160018151811061257b5761257b614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603083015260009161261891015b6040516020818303038152906040526125f09061459d565b8360007e140100140000000000000000000000000000000000000000000000000000006116ac565b60601c95945050505050565b60606000606061263d858561263888611b74565b6116ee565b9250925092509250925092565b606061080784848461265b88611b74565b6119fa565b600061266b82613c06565b905061267682613cbf565b6126cf57818260405160200161268e91815260200190565b60408051601f19818403018152908290527f41e713ad0000000000000000000000000000000000000000000000000000000082526102909291600401615131565b919050565b60006126e08585612911565b905060006126fd828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866127168764ffffffffff8716614f94565b604080516000815260208101909152889088612d11565b600061273882613da1565b9050806126cf57818260405160200161268e91815260200190565b600061275f8585612911565b9050600061277c828560ff166028026038011c64ffffffffff1690565b9050610b5f8686866000858888612d11565b600082826040516020016127a392919061514a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561281f5761280b60ff601b83900360080287901c16836145da565b91508061281781614f61565b9150506127e9565b509392505050565b60006020821061284d5760208204840193506020828161284957612849615185565b0691505b508254600882021b60208290038084111561281f576001850154600882021c82179150509392505050565b6000600861288860026020614f94565b612892919061519b565b9190911c919050565b6060816000036128ba5750604080516020810190915260008152610a3d565b60006128c6858561278e565b9050610c5381600085613127565b600060086001806128e760026020614f94565b6128f19190614f94565b6128fb9190614f94565b612905919061519b565b8260ff911c1692915050565b6000610a3d6129208484613e5a565b5490565b6000838360405160200161293992919061514a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215612a2d57602083106129ce576020830484019350602083816129ca576129ca615185565b0692505b8215612a2d5760208390036000818410156129f25750600019600884021c196129fd565b50600019600882021c195b8554600886021b811984511682821617845250818411612a1e575050611aa0565b50600194909401939182900391015b5b60208210612a4f5783548152600190930192601f1990910190602001612a2e565b8115611aa0576000600019600884021c198251865482169119161782525050505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612ac257612ac2614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091612b3f91015b604051602081830303815290604052612b379061459d565b836000611ae1565b9050610807612b518260008451613eb0565b613f40565b60008160ff1682612b678560581c90565b1660ff1614905092915050565b60006060600080612b8486613f51565b90925090506001600160a01b038216612bd55785612ba1876123e1565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610290929190615131565b80612be457612be48689611a3f565b8615612c30577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000612c1d82610731565b9050612c2d8261025f8b846145da565b50505b6000612c3c8760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c7457612c6f88888488614035565b612c80565b612c80888884886140ad565b90999098509650505050505050565b6000600860016128f160026020614f94565b6060610c53612cb0868661278e565b612cba84866127e4565b60ff868116601b0360080286901c16613127565b6000612d01616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516178361410e565b80610a3d5750610a3d838361410e565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614612d9b57613a3160f11b8788604051602001612d5991815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102909392916004016151b2565b6000612db6828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612dcf9190614f94565b612dd991906145da565b9050808214158015612dfb575081612df186886151f3565b64ffffffffff1614155b15612e4b576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610290565b818664ffffffffff161115612e9c576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610290565b6000612ea98489846141e0565b90506000612eb68b613aae565b905060005b8151811015612f8b576000828281518110612ed857612ed8614ed9565b60200260200101519050612f046010826affffffffffffffffffffff1916612b5690919063ffffffff16565b15612f7857606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401612f459796959493929190615218565b600060405180830381600087803b158015612f5f57600080fd5b505af1158015612f73573d6000803e3d6000fd5b505050505b5080612f8381614f61565b915050612ebb565b5064ffffffffff881660005b8a60ff168160ff161015612fca57612fbe878260ff166028026038011c64ffffffffff1690565b90910190600101612f97565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c604051613003959493929190615276565b60405180910390a25082841461302457600061301f8c8c613e5a565b839055505b60006130318c8c8c612924565b9050613045818a64ffffffffff1689613b49565b5060005b815181101561311957600082828151811061306657613066614ed9565b602002602001015190506130926020826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561310657606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016130d39796959493929190615218565b600060405180830381600087803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b505050505b508061311181614f61565b915050613049565b505050505050505050505050565b60405160208101601f19603f848401011660405282825261281f858585846129a4565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036131d657857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516131c994939291906152bc565b60405180910390a2610b5f565b60006131e187613aae565b905060005b81518110156132c457600082828151811061320357613203614ed9565b6020026020010151905061322f6001826affffffffffffffffffffff1916612b5690919063ffffffff16565b156132b1576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c9061327e908c908c908c908c908c908c906004016152fb565b600060405180830381600087803b15801561329857600080fd5b505af11580156132ac573d6000803e3d6000fd5b505050505b50806132bc81614f61565b9150506131e6565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516132fb94939291906152bc565b60405180910390a2600061330f888861278e565b905060006020870190506133278260008951846142ae565b6000613332856128d4565b11156133b65760006133448a8a613e5a565b878155905060208601915060008060005b61335e886128d4565b8160ff1610156133b1576133738d8d83612924565b925061338e8a8260ff166028026038011c64ffffffffff1690565b915061339d83600084886142ae565b6133a782866145da565b9450600101613355565b505050505b60005b83518110156134975760008482815181106133d6576133d6614ed9565b602002602001015190506134026002826affffffffffffffffffffff1916612b5690919063ffffffff16565b15613484576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613451908e908e908e908e908e908e906004016152fb565b600060405180830381600087803b15801561346b57600080fd5b505af115801561347f573d6000803e3d6000fd5b505050505b508061348f81614f61565b9150506133b9565b50505050505050505050565b60408051602081018490529081018290526000906060016127a3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361354557827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07836040516135389190615354565b60405180910390a2505050565b600061355084613aae565b905060005b815181101561362d57600082828151811061357257613572614ed9565b6020026020010151905061359e6040826affffffffffffffffffffff1916612b5690919063ffffffff16565b1561361a576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906135e790899089908990600401615367565b600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b505050505b508061362581614f61565b915050613555565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078460405161365e9190615354565b60405180910390a26000613672858561278e565b90506136cb81600061368386612878565b67ffffffffffffffff81111561369b5761369b61499c565b6040519080825280601f01601f1916602001820160405280156136c5576020820181803683370190505b50613b49565b60006136d6846128d4565b11156136f75760006136e88686613e5a565b90506136f581602061436e565b505b60005b8251811015610b5f57600083828151811061371757613717614ed9565b602002602001015190506137436080826affffffffffffffffffffff1916612b5690919063ffffffff16565b156137bf576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b9061378c908a908a908a90600401615367565b600060405180830381600087803b1580156137a657600080fd5b505af11580156137ba573d6000803e3d6000fd5b505050505b50806137ca81614f61565b9150506136fa565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d697465640000000000000000000000000000000000000000000000603083015291016040516020818303038152906040526138459061459d565b909114919050565b600061080782611b018686612911565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061389657613896614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526000916138f791016125d8565b60601c949350505050565b61390c82826143ab565b611200576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610290565b6060600080610a55878787876140ad565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff1916816000815181106139b6576139b6614ed9565b60200260200101818152505082816001815181106139d6576139d6614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201528151808203909301835281019052611aa090613a429061459d565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006116d9565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ae857613ae8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091612b3f9101612b1f565b6108fc83838351613b5a8560200190565b6142ae565b6000613b6d607060106145da565b9190911b919050565b606060005b6010811015613bd6576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613bd65780613bce81614f61565b915050613b7b565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610807565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613c3f57613c3f614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613c979061459d565b8360017e600302202020000000000000000000000000000000000000000000000000006116ac565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613cf857613cf8614ed9565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091613d9591015b604051602081830303815290604052613d6d9061459d565b8360007e010100010000000000000000000000000000000000000000000000000000006116ac565b90506108078160f81c90565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110613dda57613dda614ed9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b6022820152655461626c657360d01b6030820152815180820390930183528101905260009061080790613e329061459d565b8360027e600302202020000000000000000000000000000000000000000000000000006116ac565b60008282604051602001613e6f92919061514a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000818311158015613ec3575083518211155b613eff578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161029093929190615390565b60208401613f0d84826145da565b90506000613f1b8585614f94565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610a3d83601560006143c7565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f8b57613f8b614ed9565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061402490613ffe9061459d565b857e150200140100000000000000000000000000000000000000000000000000006116ee565b925092509250610a04838383614442565b60006060836001600160a01b0316600061405085898961444e565b60405161405d91906153b5565b60006040518083038185875af1925050503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b606091505b509097909650945050505050565b60006060836001600160a01b03166140c684888861444e565b6040516140d391906153b5565b600060405180830381855af49150503d806000811461409a576040519150601f19603f3d011682016040523d82523d6000602084013e61409f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061414757614147614ed9565b602002602001018181525050826001600160a01b031660001b8160018151811061417357614173614ed9565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f7572636541636365737300000000000000000000000000000000000060308301526000916141d49101613d55565b9050610c538160f81c90565b600064ffffffffff821115614224576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610290565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510614256578085038201915061425e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b821561432857602083106142d8576020830484019350602083816142d4576142d4615185565b0692505b82156143285760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411614319575050611aa0565b50600194909401939182900391015b5b6020821061434a5780518455600190930192601f1990910190602001614329565b8115611aa0576000600019600884021c198554835182169119161785555050505050565b6000602061437d83601f6145da565b61438791906153d1565b61439190846145da565b90505b808310156108fc5760008355600183019250614394565b60006143b68361447d565b8015610a3d5750610a3d83836144c9565b606060006143d58560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816143fb576143fb615185565b04905060405193506020840160208202810160405281855260005b82811015614436578451871c825293870193602090910190600101614416565b50505050509392505050565b60008061180285614581565b6060838383604051602001614465939291906153f3565b60405160208183030381529060405290509392505050565b60006144a9827f01ffc9a7000000000000000000000000000000000000000000000000000000006144c9565b8015610eb357506144c2826001600160e01b03196144c9565b1592915050565b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561456a575060208210155b80156145765750600081115b979650505050505050565b6020810151603482015160609190911c9060009060f81c612a81565b805160208083015191908110156145be576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eb357610eb36145c4565b60008083601f8401126145ff57600080fd5b50813567ffffffffffffffff81111561461757600080fd5b6020830191508360208260051b850101111561463257600080fd5b9250929050565b803560ff811681146126cf57600080fd5b60008060008060006080868803121561466257600080fd5b85359450602086013567ffffffffffffffff81111561468057600080fd5b61468c888289016145ed565b909550935061469f905060408701614639565b949793965091946060013592915050565b60005b838110156146cb5781810151838201526020016146b3565b50506000910152565b600081518084526146ec8160208601602086016146b0565b601f01601f19169290920160200192915050565b602081526000610a3d60208301846146d4565b60008083601f84011261472557600080fd5b50813567ffffffffffffffff81111561473d57600080fd5b60208301915083602082850101111561463257600080fd5b6000806000806000806080878903121561476e57600080fd5b86359550602087013567ffffffffffffffff8082111561478d57600080fd5b6147998a838b016145ed565b90975095508591506147ad60408a01614639565b945060608901359150808211156147c357600080fd5b506147d089828a01614713565b979a9699509497509295939492505050565b600080600080606085870312156147f857600080fd5b84359350602085013567ffffffffffffffff81111561481657600080fd5b614822878288016145ed565b9094509250614835905060408601614639565b905092959194509250565b60008060008060008060008060a0898b03121561485c57600080fd5b88359750602089013567ffffffffffffffff8082111561487b57600080fd5b6148878c838d016145ed565b909950975060408b01359150808211156148a057600080fd5b6148ac8c838d01614713565b909750955060608b0135945060808b01359150808211156148cc57600080fd5b506148d98b828c01614713565b999c989b5096995094979396929594505050565b600080600080600080600060a0888a03121561490857600080fd5b87359650602088013567ffffffffffffffff8082111561492757600080fd5b6149338b838c016145ed565b909850965086915061494760408b01614639565b955060608a013591508082111561495d57600080fd5b5061496a8a828b01614713565b989b979a50959894979596608090950135949350505050565b60006020828403121561499557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156149db576149db61499c565b604052919050565b600082601f8301126149f457600080fd5b813567ffffffffffffffff811115614a0e57614a0e61499c565b614a216020601f19601f840116016149b2565b818152846020838601011115614a3657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614a6657600080fd5b82359150602083013567ffffffffffffffff811115614a8457600080fd5b614a90858286016149e3565b9150509250929050565b60008060008060608587031215614ab057600080fd5b84359350602085013567ffffffffffffffff811115614ace57600080fd5b614ada878288016145ed565b9598909750949560400135949350505050565b606081526000614b0060608301866146d4565b8460208401528281036040840152610a6781856146d4565b600082601f830112614b2957600080fd5b8135602067ffffffffffffffff821115614b4557614b4561499c565b8160051b614b548282016149b2565b9283528481018201928281019087851115614b6e57600080fd5b83870192505b8483101561457657823582529183019190830190614b74565b600080600080600060a08688031215614ba557600080fd5b85359450602086013567ffffffffffffffff811115614bc357600080fd5b614bcf88828901614b18565b945050614bde60408701614639565b94979396509394606081013594506080013592915050565b600080600060408486031215614c0b57600080fd5b83359250602084013567ffffffffffffffff811115614c2957600080fd5b614c35868287016145ed565b9497909650939450505050565b6001600160a01b03811681146114d557600080fd5b600080600060608486031215614c6c57600080fd5b8335614c7781614c42565b925060208401359150604084013567ffffffffffffffff811115614c9a57600080fd5b614ca6868287016149e3565b9150509250925092565b60008060008060808587031215614cc657600080fd5b84359350602085013567ffffffffffffffff811115614ce457600080fd5b614cf087828801614b18565b935050614cff60408601614639565b9396929550929360600135925050565b600080600060608486031215614d2457600080fd5b83359250602084013567ffffffffffffffff811115614d4257600080fd5b614d4e86828701614b18565b925050614d5d60408501614639565b90509250925092565b60008060408385031215614d7957600080fd5b8235614d8481614c42565b9150602083013567ffffffffffffffff811115614a8457600080fd5b60008060008060008060808789031215614db957600080fd5b86359550602087013567ffffffffffffffff80821115614dd857600080fd5b614de48a838b016145ed565b90975095506040890135915065ffffffffffff82168214614e0457600080fd5b909350606088013590808211156147c357600080fd5b803564ffffffffff811681146126cf57600080fd5b60008060008060008060008060c0898b031215614e4b57600080fd5b88359750602089013567ffffffffffffffff80821115614e6a57600080fd5b614e768c838d016145ed565b9099509750879150614e8a60408c01614639565b9650614e9860608c01614e1a565b9550614ea660808c01614e1a565b945060a08b01359150808211156148cc57600080fd5b600060208284031215614ece57600080fd5b8135610a3d81614c42565b634e487b7160e01b600052603260045260246000fd5b604081526000614f0260408301856146d4565b90506001600160a01b03831660208301529392505050565b600060ff821660ff8103614f3057614f306145c4565b60010192915050565b6001600160a01b0384168152826020820152606060408201526000610c5360608301846146d4565b60006000198203614f7457614f746145c4565b5060010190565b60ff8281168282160390811115610eb357610eb36145c4565b81810381811115610eb357610eb36145c4565b600060208284031215614fb957600080fd5b81518015158114610a3d57600080fd5b600060208284031215614fdb57600080fd5b81516fffffffffffffffffffffffffffffffff1981168114610a3d57600080fd5b600081518084526020808501945080840160005b8381101561502c57815187529582019590820190600101615010565b509495945050505050565b60608152600061504a6060830186614ffc565b65ffffffffffff851660208401528281036040840152610a6781856146d4565b8481526080602082015260006150836080830186614ffc565b65ffffffffffff85166040840152828103606084015261457681856146d4565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516151048160038601602089016146b0565b8084019050816003820152845191506151248260048301602088016146b0565b0160040195945050505050565b82815260406020820152600061080760408301846146d4565b82815260006020808301845182860160005b828110156151785781518452928401929084019060010161515c565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b8082028115828204841417610eb357610eb36145c4565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000610c5360608301846146d4565b64ffffffffff818116838216019080821115615211576152116145c4565b5092915050565b87815260e06020820152600061523160e0830189614ffc565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c084015261526881856146d4565b9a9950505050505050505050565b60a08152600061528960a0830188614ffc565b65ffffffffffff8716602084015264ffffffffff861660408401528460608401528281036080840152611eb381856146d4565b6080815260006152cf6080830187614ffc565b82810360208401526152e181876146d4565b9050846040840152828103606084015261457681856146d4565b86815260c06020820152600061531460c0830188614ffc565b828103604084015261532681886146d4565b9050856060840152828103608084015261534081866146d4565b9150508260a0830152979650505050505050565b602081526000610a3d6020830184614ffc565b8381526060602082015260006153806060830185614ffc565b9050826040830152949350505050565b6060815260006153a360608301866146d4565b60208301949094525060400152919050565b600082516153c78184602087016146b0565b9190910192915050565b6000826153ee57634e487b7160e01b600052601260045260246000fd5b500490565b600084516154058184602089016146b0565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea164736f6c6343000815000a608060405234801561001057600080fd5b50611a59806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806345ec93541161005b57806345ec9354146100ec5780638d53b208146100ff578063e1af802c14610112578063ef5d6bbb1461011a57600080fd5b806301ffc9a714610082578063119df25f146100aa57806340554c3a146100d7575b600080fd5b61009561009036600461165b565b61012d565b60405190151581526020015b60405180910390f35b6100b26101c6565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e536600461169d565b6101d5565b005b604051601f1936013581526020016100a1565b6100ea61010d36600461169d565b6101f6565b6100b261020c565b6100ea61012836600461169d565b610216565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101c057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d061023d565b905090565b6101e6826101e16101c6565b61026f565b6101f282826001610333565b5050565b610202826101e16101c6565b6101f28282610463565b60006101d0610568565b610222826101e16101c6565b61022c82826105b4565b6101e6826102386101c6565b610463565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061026c5750335b90565b73ffffffffffffffffffffffffffffffffffffffff81166102d17f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff000000000000000000000000000000008516176106c2565b73ffffffffffffffffffffffffffffffffffffffff16146101f2576102f58261079d565b816040517fd787b73700000000000000000000000000000000000000000000000000000000815260040161032a929190611736565b60405180910390fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061036857610368611784565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106103a1576103a1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261045d9061040d9061179a565b8260008560405160200161042891151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006108da565b50505050565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061049857610498611784565b6020026020010181815250508173ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106104d1576104d1611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526105639061053d9061179a565b827e010100010000000000000000000000000000000000000000000000000000006108f6565b505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806105af573391505090565b919050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105ea576105ea611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201528151808203909301835281019052610563906106569061179a565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006108da565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106106fb576106fb611784565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906107929061076a9061179a565b8360007e14010014000000000000000000000000000000000000000000000000000000610c11565b60601c949350505050565b606081601081901b60006107b083610c47565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561080b576108067fffffffffffffffffffffffffffff0000000000000000000000000000000000008416610c5e565b610842565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156108785761087383610c5e565b6108af565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016108c1939291906117c1565b6040516020818303038152906040529350505050919050565b6108ef85856108e98487610d10565b85610d53565b5050505050565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361097c57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161096f919061188a565b60405180910390a2505050565b60006109878461100b565b905060005b8151811015610a645760008282815181106109a9576109a9611784565b602002602001015190506109d56040826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610a51576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590610a1e9089908990899060040161189d565b600060405180830381600087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050505b5080610a5c816118dc565b91505061098c565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051610a95919061188a565b60405180910390a26000610aa98585611109565b9050610b02816000610aba8661115f565b67ffffffffffffffff811115610ad257610ad261176e565b6040519080825280601f01601f191660200182016040528015610afc576020820181803683370190505b50611182565b6000610b0d84611198565b1115610b2e576000610b1f86866111d5565b9050610b2c81602061122b565b505b60005b8251811015610c09576000838281518110610b4e57610b4e611784565b60200260200101519050610b7a6080826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610bf6576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90610bc3908a908a908a9060040161189d565b600060405180830381600087803b158015610bdd57600080fd5b505af1158015610bf1573d6000803e3d6000fd5b505050505b5080610c01816118dc565b915050610b31565b505050505050565b6000610c3e610c208686611109565b60ff858116601b0360080285901c16610c398587610d10565b611268565b95945050505050565b6000610c55607060106118f6565b9190911b919050565b606060005b6010811015610ccd577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615610ccd5780610cc5816118dc565b915050610c63565b604080517fffffffffffffffffffffffffffffffff000000000000000000000000000000008516602082015281516030909101909152818152805b949350505050565b600080805b8360ff16811015610d4b57610d3760ff601b83900360080287901c16836118f6565b915080610d43816118dc565b915050610d15565b509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610ddd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610dd093929190611909565b60405180910390a261045d565b6000610de98585611109565b90506000610df68661100b565b905060005b8151811015610ed5576000828281518110610e1857610e18611784565b60200260200101519050610e446004826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610ec2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610e8f908b908b908b908b90600401611946565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050505b5080610ecd816118dc565b915050610dfb565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610f0a93929190611909565b60405180910390a2610f25828565ffffffffffff1685611182565b60005b8151811015611002576000828281518110610f4557610f45611784565b60200260200101519050610f716008826affffffffffffffffffffff19166110eb90919063ffffffff16565b15610fef576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610fbc908b908b908b908b90600401611946565b600060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050505b5080610ffa816118dc565b915050610f28565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061104557611045611784565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110d4906110cc9061179a565b8360006112b9565b9050610d086110e682600084516112f3565b611383565b60008160ff16826110fc8560581c90565b1660ff1614905092915050565b6000828260405160200161111e92919061198a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000600861116f600260206119c5565b61117991906119d8565b9190911c919050565b610563838383516111938560200190565b61139b565b600060086001806111ab600260206119c5565b6111b591906119c5565b6111bf91906119c5565b6111c991906119d8565b8260ff911c1692915050565b600082826040516020016111ea92919061198a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000602061123a83601f6118f6565b6112449190611a05565b61124e90846118f6565b90505b808310156105635760008355600183019250611251565b60006020821061128e5760208204840193506020828161128a5761128a6119ef565b0691505b508254600882021b602082900380841115610d4b576001850154600882021c82179150509392505050565b6060610d086112c985858561145b565b60006112ee856112d989896114db565b9060ff166028026038011c64ffffffffff1690565b6114ee565b6000818311158015611306575083518211155b611342578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161032a93929190611a27565b6020840161135084826118f6565b9050600061135e85856119c5565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006113948360156000611511565b9392505050565b821561141557602083106113c5576020830484019350602083816113c1576113c16119ef565b0692505b82156114155760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161140657505061045d565b50600194909401939182900391015b5b602082106114375780518455600190930192601f1990910190602001611416565b811561045d576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161147092919061198a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006113946114ea84846111d5565b5490565b60405160208101601f19603f8484010116604052828252610d4b8585858461158c565b6060600061151f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611545576115456119ef565b04905060405193506020840160208202810160405281855260005b82811015611580578451871c825293870193602090910190600101611560565b50505050509392505050565b821561161557602083106115b6576020830484019350602083816115b2576115b26119ef565b0692505b82156116155760208390036000818410156115da5750600019600884021c196115e5565b50600019600882021c195b8554600886021b81198451168282161784525081841161160657505061045d565b50600194909401939182900391015b5b602082106116375783548152600190930192601f1990910190602001611616565b811561045d576000600019600884021c198251865482169119161782525050505050565b60006020828403121561166d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461139457600080fd5b600080604083850312156116b057600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff811681146116db57600080fd5b809150509250929050565b60005b838110156117015781810151838201526020016116e9565b50506000910152565b600081518084526117228160208601602086016116e6565b601f01601f19169290920160200192915050565b604081526000611749604083018561170a565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156117bb576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516118228160038601602089016116e6565b8084019050816003820152845191506118428260048301602088016116e6565b0160040195945050505050565b600081518084526020808501945080840160005b8381101561187f57815187529582019590820190600101611863565b509495945050505050565b602081526000611394602083018461184f565b8381526060602082015260006118b6606083018561184f565b9050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600060001982036118ef576118ef6118c6565b5060010190565b808201808211156101c0576101c06118c6565b60608152600061191c606083018661184f565b65ffffffffffff85166020840152828103604084015261193c818561170a565b9695505050505050565b84815260806020820152600061195f608083018661184f565b65ffffffffffff85166040840152828103606084015261197f818561170a565b979650505050505050565b82815260006020808301845182860160005b828110156119b85781518452928401929084019060010161199c565b5091979650505050505050565b818103818111156101c0576101c06118c6565b80820281158282048414176101c0576101c06118c6565b634e487b7160e01b600052601260045260246000fd5b600082611a2257634e487b7160e01b600052601260045260246000fd5b500490565b606081526000611a3a606083018661170a565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b506118ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806345ec93541161005057806345ec9354146100e1578063c9c85a60146100f4578063e1af802c1461010757600080fd5b806301ffc9a714610077578063119df25f1461009f57806345afd199146100cc575b600080fd5b61008a610085366004611460565b61010f565b60405190151581526020015b60405180910390f35b6100a76101a8565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b6100df6100da3660046114a2565b6101b7565b005b604051601f193601358152602001610096565b6100df6101023660046114f3565b6102ac565b6100a76103e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101b26103f1565b905090565b6101c8836101c36101a8565b610423565b60006101d384610473565b90508082111561021e576040517f0e0e2d4d00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044015b60405180910390fd5b6102318461022c848461154e565b610563565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102a4576102a48161066d565b505050505050565b7f6e73000000000000000000000000000000000000000000000000000000000000827fffff0000000000000000000000000000000000000000000000000000000000001614610355577f6e730000000000000000000000000000000000000000000000000000000000008261032084610675565b6040517f5c30fb6f000000000000000000000000000000000000000000000000000000008152600401610215939291906115b1565b61035e826107b2565b61036a836101c36101a8565b600061037584610473565b9050808211156103bb576040517f0e0e2d4d0000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610215565b6103c98461022c848461154e565b6103e183836103d786610473565b61022c91906115f2565b50505050565b60006101b2610800565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806104205750335b90565b61042d828261084c565b61046f5761043a82610675565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610215929190611605565b5050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106104ac576104ac61163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e6365730000000000000000000000000000000000000000000000006030820152815180820390930183528101905260009061055b906105339061166c565b8360007e200100200000000000000000000000000000000000000000000000000000006108b1565b949350505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106105995761059961163d565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015281518082039093018352810190526106689061061d9061166c565b8260008560405160200161063391815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006108e7565b505050565b805160208201fd5b606081601081901b600061068883610903565b9050827fffffffffffffffffffffffffffff0000000000000000000000000000000000008316156106e3576106de7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661091a565b61071a565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156107505761074b8361091a565b610787565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b60405160200161079993929190611693565b6040516020818303038152906040529350505050919050565b6107bb816109c8565b6107fd57806107c982610675565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610215929190611721565b50565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610847573391505090565b919050565b600061089a7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783610ac2565b806108aa57506108aa8383610ac2565b9392505050565b60006108de6108c08686610bb9565b60ff858116601b0360080285901c166108d98587610c0f565b610c52565b95945050505050565b6108fc85856108f68487610c0f565b85610ca3565b5050505050565b6000610911607060106115f2565b9190911b919050565b606060005b6010811015610989577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561098957806109818161173a565b91505061091f565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061055b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610a0157610a0161163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f73746f726500000000000000000000000000000000000000000000000000000060228301527f5265736f757263654964730000000000000000000000000000000000000000006030830152600091610ab691015b604051602081830303815290604052610a8e9061166c565b8360007e010100010000000000000000000000000000000000000000000000000000006108b1565b905061055b8160f81c90565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610afb57610afb61163d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b81600181518110610b3457610b3461163d565b60209081029190910181019190915260408051613a3160f11b928101929092527f776f726c6400000000000000000000000000000000000000000000000000000060228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091610bad9101610a76565b90506108de8160f81c90565b60008282604051602001610bce929190611754565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610c4a57610c3660ff601b83900360080287901c16836115f2565b915080610c428161173a565b915050610c14565b509392505050565b600060208210610c7857602082048401935060208281610c7457610c7461178f565b0691505b508254600882021b602082900380841115610c4a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610d2d57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610d20939291906117f9565b60405180910390a26103e1565b6000610d398585610bb9565b90506000610d4686610f5b565b905060005b8151811015610e25576000828281518110610d6857610d6861163d565b60200260200101519050610d946004826affffffffffffffffffffff191661103b90919063ffffffff16565b15610e12576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610ddf908b908b908b908b90600401611836565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050505b5080610e1d8161173a565b915050610d4b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610e5a939291906117f9565b60405180910390a2610e75828565ffffffffffff1685611059565b60005b8151811015610f52576000828281518110610e9557610e9561163d565b60200260200101519050610ec16008826affffffffffffffffffffff191661103b90919063ffffffff16565b15610f3f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610f0c908b908b908b908b90600401611836565b600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050505b5080610f4a8161173a565b915050610e78565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610f9557610f9561163d565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906110249061101c9061166c565b83600061106f565b905061055b61103682600084516110a9565b611139565b60008160ff168261104c8560581c90565b1660ff1614905092915050565b6106688383835161106a8560200190565b61114a565b606061055b61107f85858561120a565b60006110a48561108f898961128a565b9060ff166028026038011c64ffffffffff1690565b61129d565b60008183111580156110bc575083518211155b6110f8578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102159392919061187a565b6020840161110684826115f2565b90506000611114858561154e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006108aa83601560006112c0565b82156111c45760208310611174576020830484019350602083816111705761117061178f565b0692505b82156111c45760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116111b55750506103e1565b50600194909401939182900391015b5b602082106111e65780518455600190930192601f19909101906020016111c5565b81156103e1576000600019600884021c198554835182169119161785555050505050565b6000838360405160200161121f929190611754565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006108aa611299848461133b565b5490565b60405160208101601f19603f8484010116604052828252610c4a85858584611391565b606060006112ce8560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816112f4576112f461178f565b04905060405193506020840160208202810160405281855260005b8281101561132f578451871c82529387019360209091019060010161130f565b50505050509392505050565b60008282604051602001611350929190611754565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b821561141a57602083106113bb576020830484019350602083816113b7576113b761178f565b0692505b821561141a5760208390036000818410156113df5750600019600884021c196113ea565b50600019600882021c195b8554600886021b81198451168282161784525081841161140b5750506103e1565b50600194909401939182900391015b5b6020821061143c5783548152600190930192601f199091019060200161141b565b81156103e1576000600019600884021c198251865482169119161782525050505050565b60006020828403121561147257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108aa57600080fd5b6000806000606084860312156114b757600080fd5b83359250602084013573ffffffffffffffffffffffffffffffffffffffff811681146114e257600080fd5b929592945050506040919091013590565b60008060006060848603121561150857600080fd5b505081359360208301359350604090920135919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101a2576101a261151f565b60005b8381101561157c578181015183820152602001611564565b50506000910152565b6000815180845261159d816020860160208601611561565b601f01601f19169290920160200192915050565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006108de6060830184611585565b808201808211156101a2576101a261151f565b6040815260006116186040830185611585565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051602080830151919081101561168d576000198160200360031b1b821691505b50919050565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516116f4816003860160208901611561565b808401905081600382015284519150611714826004830160208801611561565b0160040195945050505050565b82815260406020820152600061055b6040830184611585565b6000600019820361174d5761174d61151f565b5060010190565b82815260006020808301845182860160005b8281101561178257815184529284019290840190600101611766565b5091979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081518084526020808501945080840160005b838110156117ee578151875295820195908201906001016117d2565b509495945050505050565b60608152600061180c60608301866117be565b65ffffffffffff85166020840152828103604084015261182c8185611585565b9695505050505050565b84815260806020820152600061184f60808301866117be565b65ffffffffffff85166040840152828103606084015261186f8185611585565b979650505050505050565b60608152600061188d6060830186611585565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50610af5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80638fc8cf7e116100505780638fc8cf7e146100df578063ce5e8dd9146100ff578063e1af802c1461011257600080fd5b806301ffc9a714610077578063119df25f1461009f57806345ec9354146100cc575b600080fd5b61008a61008536600461063e565b61011a565b60405190151581526020015b60405180910390f35b6100a76101b3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b604051601f193601358152602001610096565b6100f26100ed3660046106d3565b6101c2565b6040516100969190610739565b6100f261010d3660046106d3565b6103d7565b6100a76105ae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101ad57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101bd6105b8565b905090565b606060006101ce6105ae565b90508267ffffffffffffffff8111156101e9576101e96107d1565b60405190808252806020026020018201604052801561021c57816020015b60608152602001906001900390816102075790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff84168063894ecc5889898781811061025c5761025c610800565b905060200281019061026e919061082f565b61027c90602081019061086d565b8a8a8881811061028e5761028e610800565b90506020028101906102a0919061082f565b602001358b8b898181106102b6576102b6610800565b90506020028101906102c8919061082f565b6102d69060408101906108a3565b6040516024016102e99493929190610933565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103369250610973565b600060405180830381855af49150503d8060008114610371576040519150601f19603f3d011682016040523d82523d6000602084013e610376565b606091505b50915091508161038957610389816105ea565b8080602001905181019061039d9190610985565b8584815181106103af576103af610800565b6020026020010181905250505080806103c790610a32565b915050610222565b505092915050565b606060006103e36105ae565b90508267ffffffffffffffff8111156103fe576103fe6107d1565b60405190808252806020026020018201604052801561043157816020015b606081526020019060019003908161041c5790505b50915060005b838110156103cf5760008073ffffffffffffffffffffffffffffffffffffffff841680633ae7af0889898781811061047157610471610800565b90506020028101906104839190610a91565b358a8a8881811061049657610496610800565b90506020028101906104a89190610a91565b6104b69060208101906108a3565b6040516024016104c893929190610ac5565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105159250610973565b600060405180830381855af49150503d8060008114610550576040519150601f19603f3d011682016040523d82523d6000602084013e610555565b606091505b50915091508161056857610568816105ea565b8080602001905181019061057c9190610985565b85848151811061058e5761058e610800565b6020026020010181905250505080806105a690610a32565b915050610437565b60006101bd6105f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105e75750335b90565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610639573391505090565b919050565b60006020828403121561065057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461068057600080fd5b9392505050565b60008083601f84011261069957600080fd5b50813567ffffffffffffffff8111156106b157600080fd5b6020830191508360208260051b85010111156106cc57600080fd5b9250929050565b600080602083850312156106e657600080fd5b823567ffffffffffffffff8111156106fd57600080fd5b61070985828601610687565b90969095509350505050565b60005b83811015610730578181015183820152602001610718565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156107c4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526107a5818989018a8501610715565b601f01601f191695909501860194509285019290850190600101610760565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261086357600080fd5b9190910192915050565b60006020828403121561087f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126108d857600080fd5b83018035915067ffffffffffffffff8211156108f357600080fd5b6020019150368190038213156106cc57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610969606083018486610908565b9695505050505050565b60008251610863818460208701610715565b60006020828403121561099757600080fd5b815167ffffffffffffffff808211156109af57600080fd5b818401915084601f8301126109c357600080fd5b8151818111156109d5576109d56107d1565b604051601f8201601f19908116603f011681019083821181831017156109fd576109fd6107d1565b81604052828152876020848701011115610a1657600080fd5b610a27836020830160208801610715565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261086357600080fd5b838152604060208201526000610adf604083018486610908565b9594505050505056fea164736f6c6343000815000a608060405234801561001057600080fd5b5061565b80620000216000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063530f4b6011610097578063b29e408911610066578063b29e408914610226578063bfdfaff714610239578063d5f8337f1461024c578063e1af802c1461025f57600080fd5b8063530f4b60146101da578063742d6118146101ed5780638da798da14610200578063a92813ad1461021357600080fd5b80631d2257ba116100d35780631d2257ba1461017557806326d98102146101885780633350b6a9146101b457806345ec9354146101c757600080fd5b806301ffc9a714610105578063056091291461012d5780630ba51f4914610142578063119df25f14610155575b600080fd5b610118610113366004614aa7565b610267565b60405190151581526020015b60405180910390f35b61014061013b366004614ad7565b6102d0565b005b610140610150366004614b53565b6102ef565b61015d6103bf565b6040516001600160a01b039091168152602001610124565b610140610183366004614ca0565b6103ce565b61019b610196366004614cf9565b61044e565b6040516001600160e01b03199091168152602001610124565b6101406101c2366004614d40565b610546565b604051601f193601358152602001610124565b6101406101e8366004614d98565b610731565b61019b6101fb366004614dd6565b610772565b61014061020e366004614e24565b61082d565b610140610221366004614ad7565b610946565b610140610234366004614e5e565b6109ba565b610140610247366004614e77565b610a5e565b61014061025a366004614d98565b610b28565b61015d610b8f565b60006001600160e01b031982167fb5dee1270000000000000000000000000000000000000000000000000000000014806102ca57506001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6102e1826102dc6103bf565b610b99565b6102eb8282610c1f565b5050565b60006102fa89610c6c565b6fffffffffffffffffffffffffffffffff191603610359578761031c89610c83565b6040517fe4ac069e000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b60405180910390fd5b610389616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008a1617610d97565b610395886102dc6103bf565b6103b5888888886103a6888a614f1a565b6103b08789614f1a565b610de2565b5050505050505050565b60006103c9611082565b905090565b6103e06103d96103bf565b84846110b4565b6103e9826111de565b80156103f6575060008151115b15610449576000610406836111fa565b9050610432817faf585477000000000000000000000000000000000000000000000000000000006112d5565b61044661043d6103bf565b84846000611330565b50505b505050565b600061045c836102dc6103bf565b600061048561046b8560101b90565b71ffffffffffffffffffffffffffffffffffff191661135d565b9050600061049a61049586610c6c565b61135d565b905060008282866040516020016104b393929190614f9e565b60405160208183030381529060405290508080519060200120935060006104d9856113f1565b9050801561051f576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031986166004820152602401610350565b855160208701206105318689836114e0565b61053b86846115e8565b505050505092915050565b7f7379000000000000000000000000000000000000000000000000000000000000836001600160f01b031916146105d7577f7379000000000000000000000000000000000000000000000000000000000000836105a285610c83565b6040517f5c30fb6f00000000000000000000000000000000000000000000000000000000815260040161035093929190615014565b7dffffffffffffffffffffffffffff000000000000000000000000000000008316616e7360f01b1761060881610d97565b610614816102dc6103bf565b61063e837fb5dee127000000000000000000000000000000000000000000000000000000006112d5565b600061064985610c6c565b6fffffffffffffffffffffffffffffffff19160361066b578361031c85610c83565b6000610676846116ee565b905080158015906106875750848114155b156106c9576040517fc0b707410000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610350565b60006106d4866111fa565b90506001600160a01b038116156106fd576106ee816117d0565b6106f883826118a4565b610708565b610708866001611997565b610713868686611a8f565b61071d8587611b6f565b61072983866001611c0f565b505050505050565b61075b827f1873396a000000000000000000000000000000000000000000000000000000006112d5565b610767836102dc6103bf565b610449838383611cce565b60408051616e7360f01b602082015260006022820181905260308201819052916107b791016040516020818303038152906040526107af9061503d565b6102dc6103bf565b508151602083012060006107ca826113f1565b90508015610810576040517f3d1d1ae20000000000000000000000000000000000000000000000000000000081526001600160e01b031983166004820152602401610350565b61081b8286856114e0565b61082582856115e8565b509392505050565b610857827f780ac2fc000000000000000000000000000000000000000000000000000000006112d5565b6108d36108626103bf565b600084846040516024016108769190615061565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f13861fb500000000000000000000000000000000000000000000000000000000179052611d2f565b506102eb826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109399190615074565b8251602084012084611d40565b610952826102dc6103bf565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b7300000000000000000000000000000000000000000060308201526102eb91015b6040516020818303038152906040526109b39061503d565b8383611e73565b616e7360f01b816001600160f01b031916146109e057616e7360f01b816105a283610c83565b6109e981611f9a565b15610a2c57806109f882610c83565b6040517f0dc28f6a000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b610a37816001611997565b610a4881610a436103bf565b61207c565b610a5b81610a546103bf565b6001611c0f565b50565b616e7360f01b836001600160f01b03191614610a8457616e7360f01b836105a285610c83565b610a8d826111de565b610ac3576040517f71ee9e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610acf836102dc6103bf565b6000610ada836111fa565b9050610b06817faf585477000000000000000000000000000000000000000000000000000000006112d5565b610b108484612110565b815115610b225761044661043d6103bf565b50505050565b610b52827f540fbfa8000000000000000000000000000000000000000000000000000000006112d5565b610b5e836102dc6103bf565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b16176121a4565b60006103c9612293565b6001600160a01b038116610bd3616e7360f01b7dffffffffffffffffffffffffffff000000000000000000000000000000008516176122d2565b6001600160a01b0316146102eb57610bea82610c83565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103509291906150a7565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201526102eb910161099b565b6000610c7a607060106150e8565b9190911b919050565b606081601081901b6000610c9683610c6c565b90508271ffffffffffffffffffffffffffffffffffff19831615610cd757610cd271ffffffffffffffffffffffffffffffffffff19841661135d565b610d0e565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615610d3557610d308361135d565b610d6c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001610d7e939291906150fb565b6040516020818303038152906040529350505050919050565b610da081611f9a565b610a5b5780610dae82610c83565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610350929190614f01565b613a3160f11b866001600160f01b03191614801590610e105750611bdd60f21b866001600160f01b03191614155b15610e7157613a3160f11b8687604051602001610e2f91815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610350939291600401615014565b610e7a856123a2565b610e85846001612523565b610e90836000612523565b60e084901c60e885901c0160ff16825114610ef05760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff16815114610f505760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610fc85760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610350565b610fd186611f9a565b1561102b578586604051602001610fea91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526103509291600401614f01565b61107786868686866040516020016110439190615171565b604051602081830303815290604052866040516020016110639190615171565b6040516020818303038152906040526126cf565b610729866001611997565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806110b15750335b90565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b816000815181106110f5576110f56151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611121576111216151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5573657244656c65676174696f6e436f000000000000000000000000000000006030830152610b2291015b6040516020818303038152906040526111939061503d565b826000856040516020016111a991815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006127d3565b600081151580156102ca57506111f3826127e8565b1592915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611233576112336151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca906112a29061503d565b8360007e15020014010000000000000000000000000000000000000000000000000000612863565b60601c949350505050565b6112df8282612899565b6102eb576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526001600160e01b031982166024820152604401610350565b6060600080611341878787876128bc565b91509150816113535761135381612aa0565b9695505050505050565b606060005b60108110156113bd576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156113bd57806113b581615207565b915050611362565b604080516fffffffffffffffffffffffffffffffff198516602082015281516030909101909152818152805b949350505050565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611449576114496151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526000906113e9906114b89061503d565b8360007e24020020040000000000000000000000000000000000000000000000000000612863565b60006114ec8383612aa8565b60408051600180825281830190925291925060009160609183919060208083019080368337019050509050867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061154a5761154a6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015281518082039093018352810190526115df906115b69061503d565b828686867e24020020040000000000000000000000000000000000000000000000000000612ae7565b50505050505050565b606060006115f583612e01565b9050600061160284612e11565b6040805160018082528183019092529192506000919060208083019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168160008151811061165b5761165b6151f1565b60209081029190910181019190915260408051611bdd60f21b81840152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e617475720000000000000000000000000000000060308201528151808203909301835281019052610729906116c79061503d565b828686867c0100000000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110611733576117336151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d526567697374727900000000000000000000000000000000000060308301526000916113e991015b6040516020818303038152906040526117a89061503d565b8360007e20010020000000000000000000000000000000000000000000000000000000612863565b60408051600180825281830190925260009160208083019080368337019050509050816001600160a01b031660001b81600081518110611812576118126151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526102eb9061187e9061503d565b827e20010020000000000000000000000000000000000000000000000000000000612e3a565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106118d9576118d96151f1565b602002602001018181525050816001600160a01b031660001b81600181518110611905576119056151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f5265736f7572636541636365737300000000000000000000000000000000000060308201528151808203909301835281019052610449906119719061503d565b827e01010001000000000000000000000000000000000000000000000000000000612e3a565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106119cd576119cd6151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261044991015b604051602081830303815290604052611a3f9061503d565b82600085604051602001611a5a91151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006127d3565b6000611a9b838361311a565b604080516001808252818301909252919250600091606091839190602080830190803683370190505090508681600081518110611ada57611ada6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526115df90611b469061503d565b828686867e15020014010000000000000000000000000000000000000000000000000000612ae7565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b81600081518110611bb157611bb16151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d52656769737472790000000000000000000000000000000000006030830152610449910161117b565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110611c4457611c446151f1565b602002602001018181525050826001600160a01b031660001b81600181518110611c7057611c706151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152610b229101611a27565b613a3160f11b836001600160f01b03191614611cfe57613a3160f11b8384604051602001610e2f91815260200190565b610449836bffffffffffffffffffffffff19606085901b166bff0000000000000000000000605885901b161761314a565b6060600080611341878787876131de565b604080516002808252606082018352600092602083019080368337019050509050836fffffffffffffffffffffffffffffffff191681600081518110611d8857611d886151f1565b6020026020010181815250508281600181518110611da857611da86151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610b2291015b604051602081830303815290604052611e1a9061503d565b6040516bffffffffffffffffffffffff19606086901b166020820152839060009060340160408051601f198184030181529190527e140100140000000000000000000000000000000000000000000000000000006127d3565b6000611e7f8484613256565b90506000815167ffffffffffffffff811115611e9d57611e9d614be9565b604051908082528060200260200182016040528015611ec6578160200160208202803683370190505b5090506000805b8351811015611f8b57846001600160a01b0316611f11858381518110611ef557611ef56151f1565b60200260200101516affffffffffffffffffffff191660601c90565b6001600160a01b031614611f8357838181518110611f3157611f316151f1565b6020026020010151838381518110611f4b57611f4b6151f1565b7fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000909216602092830291909101909101526001909101905b600101611ecd565b508082526107298686846132c1565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611fd357611fd36151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015260009161207091015b6040516020818303038152906040526120489061503d565b8360007e01010001000000000000000000000000000000000000000000000000000000612863565b90506113e98160f81c90565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106120b2576120b26151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d6573706163654f776e657200000000000000000000000000000000000060308301526104499101611e02565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612146576121466151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f4e616d65737061636544656c65676174000000000000000000000000000000006030830152610449910161117b565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106121da576121da6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b73000000000000000000000000000000000000000000603083015261044991015b60405160208183030381529060405261224c9061503d565b6040517fffffffffffffffffffffffffffffffffffffffffff0000000000000000000000851660208201528390600090603501604051602081830303815290604052613318565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806122cd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061230b5761230b6151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906112ca9061237a9061503d565b8360007e14010014000000000000000000000000000000000000000000000000000000612863565b806123d9576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006123e4826133c9565b9050600581111561242b576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610350565b600061243683613406565b9050600061244483836150e8565b9050601c81111561248b576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610350565b60005b828110156104465760ff601b82900360080286901c1660008190036124df576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561251a576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161248e565b8015801561252f575081155b1561255057604051635318beb960e01b815260006004820152602401610350565b600061255b836133c9565b9050600581111561258257604051635318beb960e01b815260048101829052602401610350565b600061258d84613406565b9050600061259b83836150e8565b9050601c8111156125c257604051635318beb960e01b815260048101829052602401610350565b60008060005b838110156126885760006125f56125df8a84613418565b60c58111156125f0576125f0615221565b613439565b111561263f57848110612634576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612680565b84811015612679576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b6001016125c8565b508382146126ac57604051635318beb960e01b815260048101839052602401610350565b8481146115df57604051635318beb960e01b815260048101829052602401610350565b60006126dc868686613499565b905060006126ea84846134cf565b905060006126f885856134ec565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110612732576127326151f1565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526127c79061279e9061503d565b828686867e60030220202000000000000000000000000000000000000000000000000000612ae7565b50505050505050505050565b61044685856127e28487613501565b8561353c565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d6974656400000000000000000000000000000000000000000000006030830152910160405160208183030381529060405261285b9061503d565b909114919050565b600061289061287286866137b8565b60ff858116601b0360080285901c1661288b8587613501565b61380e565b95945050505050565b60006128a48361385f565b80156128b557506128b583836138a0565b9392505050565b6000606060006128cb86613958565b905060005b81518110156129a85760008282815181106128ed576128ed6151f1565b602002602001015190506129196001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612995576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190612962908c908c908c90600401615237565b600060405180830381600087803b15801561297c57600080fd5b505af1158015612990573d6000803e3d6000fd5b505050505b50806129a081615207565b9150506128d0565b506129b587858888613a3f565b909350915060005b8151811015612a955760008282815181106129da576129da6151f1565b60200260200101519050612a066002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612a82576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f9990612a4f908c908c908c90600401615237565b600060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050505b5080612a8d81615207565b9150506129bd565b505094509492505050565b805160208201fd5b60608282604051602001612ad09291909182526001600160e01b031916602082015260240190565b604051602081830303815290604052905092915050565b611bdd60f21b866001600160f01b03191603612b4057857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612b33949392919061529a565b60405180910390a2610729565b6000612b4b87613b1e565b905060005b8151811015612c2e576000828281518110612b6d57612b6d6151f1565b60200260200101519050612b996001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612c1b576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90612be8908c908c908c908c908c908c906004016152d9565b600060405180830381600087803b158015612c0257600080fd5b505af1158015612c16573d6000803e3d6000fd5b505050505b5080612c2681615207565b915050612b50565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051612c65949392919061529a565b60405180910390a26000612c7988886137b8565b90506000602087019050612c91826000895184613bb9565b6000612c9c856133c9565b1115612d20576000612cae8a8a613c79565b878155905060208601915060008060005b612cc8886133c9565b8160ff161015612d1b57612cdd8d8d83613ccf565b9250612cf88a8260ff166028026038011c64ffffffffff1690565b9150612d078360008488613bb9565b612d1182866150e8565b9450600101612cbf565b505050505b60005b83518110156127c7576000848281518110612d4057612d406151f1565b60200260200101519050612d6c6002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612dee576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612dbb908e908e908e908e908e908e906004016152d9565b600060405180830381600087803b158015612dd557600080fd5b505af1158015612de9573d6000803e3d6000fd5b505050505b5080612df981615207565b915050612d23565b60006102ca8251603881901b1790565b606081604051602001612e249190615332565b6040516020818303038152906040529050919050565b611bdd60f21b836001600160f01b03191603612e8d57827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0783604051612e80919061534e565b60405180910390a2505050565b6000612e9884613b1e565b905060005b8151811015612f75576000828281518110612eba57612eba6151f1565b60200260200101519050612ee66040826affffffffffffffffffffff1916613a2190919063ffffffff16565b15612f62576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf4590612f2f90899089908990600401615361565b600060405180830381600087803b158015612f4957600080fd5b505af1158015612f5d573d6000803e3d6000fd5b505050505b5080612f6d81615207565b915050612e9d565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d0784604051612fa6919061534e565b60405180910390a26000612fba85856137b8565b9050613013816000612fcb86613d4f565b67ffffffffffffffff811115612fe357612fe3614be9565b6040519080825280601f01601f19166020018201604052801561300d576020820181803683370190505b50613d72565b600061301e846133c9565b111561303f5760006130308686613c79565b905061303d816020613d88565b505b60005b825181101561072957600083828151811061305f5761305f6151f1565b6020026020010151905061308b6080826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613107576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b906130d4908a908a908a90600401615361565b600060405180830381600087803b1580156130ee57600080fd5b505af1158015613102573d6000803e3d6000fd5b505050505b508061311281615207565b915050613042565b604051606083811b6bffffffffffffffffffffffff1916602083015282151560f81b603483015290603501612ad0565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613180576131806151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308301526104499101612234565b60006060836001600160a01b031660006131f9858989613dc5565b6040516132069190615332565b60006040518083038185875af1925050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b509097909650945050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613290576132906151f1565b60200260200101818152505060006132aa85836000613ddc565b90506128906132bc8260008451613e16565b613ea6565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106132f7576132f76151f1565b602002602001018181525050610b228482600061331386613eb7565b613ec7565b6000613322612293565b9050306001600160a01b038216036133455761334085858585613f02565b610446565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f32629061339090889088908890889060040161538a565b600060405180830381600087803b1580156133aa57600080fd5b505af11580156133be573d6000803e3d6000fd5b505050505050505050565b600060086001806133dc600260206153be565b6133e691906153be565b6133f091906153be565b6133fa91906153d1565b8260ff911c1692915050565b6000600860016133e6600260206153be565b6000601b8290036008028360ff911c1660c58111156128b5576128b5615221565b6000808260c581111561344e5761344e615221565b60ff169050606181101561346857601f1660010192915050565b60618360c581111561347c5761347c615221565b0361348a5750601492915050565b50600092915050565b50919050565b60408051602081018590529081018390526060818101839052906080015b60405160208183030381529060405290509392505050565b8151815160009181810160389190911b1760609190911b176128b5565b60608282604051602001612ad09291906153e8565b600080805b8360ff168110156108255761352860ff601b83900360080287901c16836150e8565b91508061353481615207565b915050613506565b611bdd60f21b846001600160f01b0319160361359357837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161358693929190615417565b60405180910390a2610b22565b600061359f85856137b8565b905060006135ac86613b1e565b905060005b815181101561368b5760008282815181106135ce576135ce6151f1565b602002602001015190506135fa6004826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613678576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90613645908b908b908b908b9060040161544a565b600060405180830381600087803b15801561365f57600080fd5b505af1158015613673573d6000803e3d6000fd5b505050505b508061368381615207565b9150506135b1565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516136c093929190615417565b60405180910390a26136db828565ffffffffffff1685613d72565b60005b81518110156115df5760008282815181106136fb576136fb6151f1565b602002602001015190506137276008826affffffffffffffffffffff1916613a2190919063ffffffff16565b156137a5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190613772908b908b908b908b9060040161544a565b600060405180830381600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050505b50806137b081615207565b9150506136de565b600082826040516020016137cd929190615483565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061383457602082048401935060208281613830576138306154be565b0691505b508254600882021b602082900380841115610825576001850154600882021c82179150509392505050565b600061388b827f01ffc9a7000000000000000000000000000000000000000000000000000000006138a0565b80156102ca57506111f3826001600160e01b03195b6040516001600160e01b031982166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613941575060208210155b801561394d5750600081115b979650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613992576139926151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f53797374656d486f6f6b730000000000000000000000000000000000000000006030830152600091613a0f91015b604051602081830303815290604052613a079061503d565b836000613ddc565b90506113e96132bc8260008451613e16565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b60006060600080613a4f86613f3d565b90925090506001600160a01b038216613a6c5785610dae87610c83565b80613a7b57613a7b8689614035565b8615613acc577dffffffffffffffffffffffffffff000000000000000000000000000000008616616e7360f01b176000613ab48261404c565b9050613ac982613ac48b846150e8565b6140e6565b50505b6000613ad88760101b90565b71ffffffffffffffffffffffffffffffffffff191614613b0357613afe888884886131de565b613b0f565b613b0f8888848861417a565b90999098509650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613b5857613b586151f1565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f53746f7265486f6f6b73000000000000000000000000000000000000000000006030830152600091613a0f91016139ef565b8215613c335760208310613be357602083048401935060208381613bdf57613bdf6154be565b0692505b8215613c335760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613c24575050610b22565b50600194909401939182900391015b5b60208210613c555780518455600190930192601f1990910190602001613c34565b8115610b22576000600019600884021c198554835182169119161785555050505050565b60008282604051602001613c8e929190615483565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001613ce4929190615483565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008613d5f600260206153be565b613d6991906153d1565b9190911c919050565b61044983838351613d838560200190565b613bb9565b60006020613d9783601f6150e8565b613da191906154d4565b613dab90846150e8565b90505b808310156104495760008355600183019250613dae565b60608383836040516020016134b7939291906154f6565b60606113e9613dec858585613ccf565b6000613e1185613dfc89896141db565b9060ff166028026038011c64ffffffffff1690565b6141ee565b6000818311158015613e29575083518211155b613e65578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161035093929190615535565b60208401613e7384826150e8565b90506000613e8185856153be565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006128b58360156000614211565b6060816128b5816015600061428c565b6000613ed385856141db565b90506000613ef0828560ff166028026038011c64ffffffffff1690565b905061072986868660008588886142e0565b6000613f0e85856141db565b90506000613f2b828560ff166028026038011c64ffffffffff1690565b905061072986868684600088886142e0565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110613f7757613f776151f1565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000908190819061401090613fea9061503d565b857e1502001401000000000000000000000000000000000000000000000000000061469c565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b61403f82826147a4565b6102eb57610bea82610c83565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110614085576140856151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e63657300000000000000000000000000000000000000000000000060308301526000916113e99101611790565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061411c5761411c6151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f42616c616e6365730000000000000000000000000000000000000000000000006030830152610449910161117b565b60006060836001600160a01b0316614193848888613dc5565b6040516141a09190615332565b600060405180830381855af49150503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b60006128b56141ea8484613c79565b5490565b60405160208101601f19603f8484010116604052828252610825858585846147e7565b6060600061421f8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281614245576142456154be565b04905060405193506020840160208202810160405281855260005b82811015614280578451871c825293870193602090910190600101614260565b50505050509392505050565b8251606090600061429d85836153d1565b9050604051925060208301601f19603f83860101166040528184526000602088015b84821015614280578051871b835291870191600191909101906020016142bf565b613a3160f11b876001600160f01b0319161461431057613a3160f11b8788604051602001610e2f91815260200190565b600061432b828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361434491906153be565b61434e91906150e8565b9050808214158015614370575081614366868861555a565b64ffffffffff1614155b156143c0576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610350565b818664ffffffffff161115614411576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610350565b600061441e8489846148b6565b9050600061442b8b613b1e565b905060005b815181101561450057600082828151811061444d5761444d6151f1565b602002602001015190506144796010826affffffffffffffffffffff1916613a2190919063ffffffff16565b156144ed57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016144ba979695949392919061557f565b600060405180830381600087803b1580156144d457600080fd5b505af11580156144e8573d6000803e3d6000fd5b505050505b50806144f881615207565b915050614430565b5064ffffffffff881660005b8a60ff168160ff16101561453f57614533878260ff166028026038011c64ffffffffff1690565b9091019060010161450c565b508b7faa63765a776145e5e6492f471ae097dfed11cd57a61bc2679dd43180422385b48c838b878c6040516145789594939291906155dd565b60405180910390a2508284146145995760006145948c8c613c79565b839055505b60006145a68c8c8c613ccf565b90506145ba818a64ffffffffff1689613d72565b5060005b815181101561468e5760008282815181106145db576145db6151f1565b602002602001015190506146076020826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561467b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401614648979695949392919061557f565b600060405180830381600087803b15801561466257600080fd5b505af1158015614676573d6000803e3d6000fd5b505050505b508061468681615207565b9150506145be565b505050505050505050505050565b60606000606060006146ad85613d4f565b90506146ba878783614984565b935060006146c7866133c9565b90508015614799576146d988886141db565b935066ffffffffffffff841667ffffffffffffffff8111156146fd576146fd614be9565b6040519080825280601f01601f191660200182016040528015614727576020820181803683370190505b5092506020830160005b828160ff1610156147965760006147498b8b84613ccf565b90506000614766888460ff166028026038011c64ffffffffff1690565b905061477582600083876147e7565b61477f81856150e8565b93505050808061478e9061562f565b915050614731565b50505b505093509350939050565b60006147d7616e7360f01b7dffffffffffffffffffffffffffff00000000000000000000000000000000851617836149bd565b806128b557506128b583836149bd565b821561487057602083106148115760208304840193506020838161480d5761480d6154be565b0692505b82156148705760208390036000818410156148355750600019600884021c19614840565b50600019600882021c195b8554600886021b811984511682821617845250818411614861575050610b22565b50600194909401939182900391015b5b602082106148925783548152600190930192601f1990910190602001614871565b8115610b22576000600019600884021c198251865482169119161782525050505050565b600064ffffffffff8211156148fa576040517f4767058800000000000000000000000000000000000000000000000000000000815260048101839052602401610350565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061492c5780850382019150614934565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6060816000036149a357506040805160208101909152600081526128b5565b60006149af85856137b8565b9050612890816000856141ee565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106149f6576149f66151f1565b602002602001018181525050826001600160a01b031660001b81600181518110614a2257614a226151f1565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f757263654163636573730000000000000000000000000000000000006030830152600091614a839101612030565b90506128908160f81c90565b80356001600160e01b0319811681146122cd57600080fd5b600060208284031215614ab957600080fd5b6128b582614a8f565b6001600160a01b0381168114610a5b57600080fd5b60008060408385031215614aea57600080fd5b823591506020830135614afc81614ac2565b809150509250929050565b60008083601f840112614b1957600080fd5b50813567ffffffffffffffff811115614b3157600080fd5b6020830191508360208260051b8501011115614b4c57600080fd5b9250929050565b60008060008060008060008060c0898b031215614b6f57600080fd5b88359750602089013596506040890135955060608901359450608089013567ffffffffffffffff80821115614ba357600080fd5b614baf8c838d01614b07565b909650945060a08b0135915080821115614bc857600080fd5b50614bd58b828c01614b07565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614c2857614c28614be9565b604052919050565b600082601f830112614c4157600080fd5b813567ffffffffffffffff811115614c5b57614c5b614be9565b614c6e6020601f19601f84011601614bff565b818152846020838601011115614c8357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614cb557600080fd5b8335614cc081614ac2565b925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b614cef86828701614c30565b9150509250925092565b60008060408385031215614d0c57600080fd5b82359150602083013567ffffffffffffffff811115614d2a57600080fd5b614d3685828601614c30565b9150509250929050565b600080600060608486031215614d5557600080fd5b833592506020840135614d6781614ac2565b915060408401358015158114614d7c57600080fd5b809150509250925092565b803560ff811681146122cd57600080fd5b600080600060608486031215614dad57600080fd5b833592506020840135614dbf81614ac2565b9150614dcd60408501614d87565b90509250925092565b600080600060608486031215614deb57600080fd5b83359250602084013567ffffffffffffffff811115614e0957600080fd5b614e1586828701614c30565b925050614dcd60408501614a8f565b60008060408385031215614e3757600080fd5b8235614e4281614ac2565b9150602083013567ffffffffffffffff811115614d2a57600080fd5b600060208284031215614e7057600080fd5b5035919050565b600080600060608486031215614e8c57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ce357600080fd5b60005b83811015614ecc578181015183820152602001614eb4565b50506000910152565b60008151808452614eed816020860160208601614eb1565b601f01601f19169290920160200192915050565b8281526040602082015260006113e96040830184614ed5565b600067ffffffffffffffff80841115614f3557614f35614be9565b8360051b6020614f46818301614bff565b868152918501918181019036841115614f5e57600080fd5b865b84811015614f9257803586811115614f785760008081fd5b614f8436828b01614c30565b845250918301918301614f60565b50979650505050505050565b60008451614fb0818460208901614eb1565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528551614fec816001850160208a01614eb1565b60019201918201528351615007816002840160208801614eb1565b0160020195945050505050565b6001600160f01b0319841681528260208201526060604082015260006128906060830184614ed5565b805160208083015191908110156134935760001960209190910360031b1b16919050565b6020815260006128b56020830184614ed5565b60006020828403121561508657600080fd5b81516fffffffffffffffffffffffffffffffff19811681146128b557600080fd5b6040815260006150ba6040830185614ed5565b90506001600160a01b03831660208301529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ca576102ca6150d2565b6001600160f01b03198416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451615144816003860160208901614eb1565b808401905081600382015284519150615164826004830160208801614eb1565b0160040195945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526151d2858351614ed5565b94509285019290850190600101615198565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600019820361521a5761521a6150d2565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03841681528260208201526060604082015260006128906060830184614ed5565b600081518084526020808501945080840160005b8381101561528f57815187529582019590820190600101615273565b509495945050505050565b6080815260006152ad608083018761525f565b82810360208401526152bf8187614ed5565b9050846040840152828103606084015261394d8185614ed5565b86815260c0602082015260006152f260c083018861525f565b82810360408401526153048188614ed5565b9050856060840152828103608084015261531e8186614ed5565b9150508260a0830152979650505050505050565b60008251615344818460208701614eb1565b9190910192915050565b6020815260006128b5602083018461525f565b83815260606020820152600061537a606083018561525f565b9050826040830152949350505050565b8481526080602082015260006153a3608083018661525f565b60ff85166040840152828103606084015261394d8185614ed5565b818103818111156102ca576102ca6150d2565b80820281158282048414176102ca576102ca6150d2565b600083516153fa818460208801614eb1565b83519083019061540e818360208801614eb1565b01949350505050565b60608152600061542a606083018661525f565b65ffffffffffff8516602084015282810360408401526113538185614ed5565b848152608060208201526000615463608083018661525f565b65ffffffffffff85166040840152828103606084015261394d8185614ed5565b82815260006020808301845182860160005b828110156154b157815184529284019290840190600101615495565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826154f157634e487b7160e01b600052601260045260246000fd5b500490565b60008451615508818460208901614eb1565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006155486060830186614ed5565b60208301949094525060400152919050565b64ffffffffff818116838216019080821115615578576155786150d2565b5092915050565b87815260e06020820152600061559860e083018961525f565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526155cf8185614ed5565b9a9950505050505050505050565b60a0815260006155f060a083018861525f565b65ffffffffffff8716602084015264ffffffffff8616604084015284606084015282810360808401526156238185614ed5565b98975050505050505050565b600060ff821660ff8103615645576156456150d2565b6001019291505056fea164736f6c6343000815000a6101006040523480156200001257600080fd5b5060405162004c6d38038062004c6d833981016040819052620000359162000071565b6001600160a01b0393841660805291831660a052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614b4c62000121600039600081816106a20152818161159201526116210152600061063a015260006105d2015260006105510152614b4c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100ec57806345ec93541461011a5780637c5b03351461012d578063e1af802c1461014057600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100d7575b600080fd5b610095610090366004614310565b610148565b60405190151581526020015b60405180910390f35b6100b261022d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a1565b6100ea6100e5366004614368565b61023c565b005b6040517f636f72650000000000000000000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100ea61013b366004614368565b61026e565b6100b2610289565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780ac2fc0000000000000000000000000000000000000000000000000000000014806101db57507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b8061022757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000610237610293565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102766102c5565b61027e61050f565b6102866106c8565b50565b6000610237610bcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102c25750335b90565b6102cd610c17565b6102d5610c2f565b6102dd610cd4565b6102e5610d5c565b6102ed610dfc565b6102f5610e84565b6102fd610f04565b610305610f8c565b61030d61102c565b6103156110cc565b61031d61116a565b610325611208565b60408051616e7360f01b6020820152600060228201819052603082015261036791015b60405160208183030381529060405261036090614419565b6001611290565b60408051616e7360f01b602082015260006022820181905260308201526103af91015b6040516020818303038152906040526103a290614419565b6103aa61022d565b611375565b60408051616e7360f01b602082015260006022820181905260308201526103f991015b6040516020818303038152906040526103ea90614419565b6103f261022d565b6001611483565b60408051616e7360f01b60208201526473746f726560d81b6022820152600060308201526104279101610348565b60408051616e7360f01b60208201526473746f726560d81b602282015260006030820152610455910161038a565b60408051616e7360f01b60208201526473746f726560d81b60228201526000603082015261048391016103d2565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104b19101610348565b60408051616e7360f01b6020820152641ddbdc9b1960da1b6022820152600060308201526104df910161038a565b60408051616e7360f01b6020820152641ddbdc9b1960da1b60228201526000603082015261050d91016103d2565b565b6040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e74000000000000000000000000000000006030820152610590917f000000000000000000000000000000000000000000000000000000000000000091015b60405160208183030381529060405261058b90614419565b611555565b6040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526105f8917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610660917f00000000000000000000000000000000000000000000000000000000000000009101610573565b6040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e00000000000000000000000000000000603082015261050d917f00000000000000000000000000000000000000000000000000000000000000009101610573565b600060405180606001604052806040518060400160405280601c81526020017f6772616e7441636365737328627974657333322c61646472657373290000000081525081526020016040518060400160405280601d81526020017f7265766f6b6541636365737328627974657333322c61646472657373290000008152508152602001604051806060016040528060228152602001614b1e602291399052905060005b60038110156107fb576040805161737960f01b6020820152600060228201527f4163636573734d616e6167656d656e740000000000000000000000000000000060308201526107e991016040516020818303038152906040526107cd90614419565b8383600381106107df576107df61443d565b6020020151611612565b806107f381614469565b91505061076b565b506040805160a0810182526033918101828152600092829190614ac2606084013981526020016040518060600160405280603181526020016149b7603191399052905060005b60028110156108c8576040805161737960f01b6020820152600060228201527f42616c616e63655472616e73666572000000000000000000000000000000000060308201526108b691015b6040516020818303038152906040526108a490614419565b8383600281106107df576107df61443d565b806108c081614469565b915050610841565b50600060405180604001604052806040518060400160405280601c81526020017f626174636843616c6c2828627974657333322c6279746573295b5d29000000008152508152602001604051806060016040528060288152602001614a43602891399052905060005b6002811015610992576040805161737960f01b6020820152600060228201527f426174636843616c6c00000000000000000000000000000000000000000000006030820152610980910161088c565b8061098a81614469565b915050610931565b50604080516101c081018252601c61018082019081527f696e7374616c6c4d6f64756c6528616464726573732c627974657329000000006101a08301528152815160608101835282815260009260208084019291906149029083013981526020016040518060600160405280602881526020016149e86028913981526020016040518060600160405280602481526020016148de6024913981526020016040518060400160405280601a81526020017f72656769737465724e616d6573706163652862797465733332290000000000008152508152602001604051806060016040528060298152602001614af5602991398152602001604051806060016040528060258152602001614a6b60259139815260200160405180606001604052806024815260200161499360249139815260200160405180606001604052806028815260200161496b602891398152602001604051806060016040528060338152602001614a10603391398152602001604051806060016040528060298152602001614942602991398152602001604051806060016040528060328152602001614a90603291399052905060005b600c811015610bc4576040805161737960f01b6020820152600060228201527f436f7265526567697374726174696f6e000000000000000000000000000000006030820152610bb29101604051602081830303815290604052610ba090614419565b8383600c81106107df576107df61443d565b80610bbc81614469565b915050610b3e565b5050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610c12573391505090565b919050565b610c1f6116b9565b610c27611759565b61050d6117f7565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610c8f90614419565b7e14010014000000000000000000000000000000000000000000000000000000610cb761187f565b610cbf6118f7565b610cc7611931565b610ccf6119b6565b611a2d565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f42616c616e636573000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610d3490614419565b630100080160dd1b610d4461187f565b610d4c611b01565b610d54611931565b610ccf611b3b565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015261050d9101604051602081830303815290604052610dbc90614419565b7e14010014000000000000000000000000000000000000000000000000000000610de4611bb2565b610dec6118f7565b610df4611c31565b610ccf611cfb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5573657244656c65676174696f6e436f00000000000000000000000000000000603082015261050d9101604051602081830303815290604052610e5c90614419565b630100080160dd1b610e6c611d72565b610e7461187f565b610e7c611df1565b610ccf611ebb565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f4e616d65737061636544656c6567617400000000000000000000000000000000603082015261050d9101604051602081830303815290604052610ee490614419565b630100080160dd1b610ef461187f565b610efc61187f565b610e7c611931565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f5265736f75726365416363657373000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610f6490614419565b630101000160d81b610f74611f32565b610f7c611f6c565b610f84611fa6565b610ccf612070565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261050d9101604051602081830303815290604052610fec90614419565b7e1502001401000000000000000000000000000000000000000000000000000061101461187f565b61101c6120e7565b611024612166565b610ccf6121dd565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e53656c6563746f7200000000000000000000000000000000603082015261050d910160405160208183030381529060405261108c90614419565b7e240200200400000000000000000000000000000000000000000000000000006110b46122a7565b6110bc6122e1565b6110c4612360565b610ccf6123d7565b60408051611bdd60f21b6020820152641ddbdc9b1960da1b60228201527f46756e6374696f6e5369676e6174757200000000000000000000000000000000603082015261050d910160405160208183030381529060405261112c90614419565b7c01000000000000000000000000000000000000000000000000000000006111526122a7565b61115a6124a1565b611162612360565b610ccf6124db565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d486f6f6b73000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526111ca90614419565b7c01000000000000000000000000000000000000000000000000000000006111f061187f565b6111f8612552565b611200612166565b610ccf61258c565b60408051613a3160f11b6020820152641ddbdc9b1960da1b60228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261126890614419565b630100080160dd1b6112786118f7565b61128061187f565b611288612603565b610ccf612166565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106112c6576112c661443d565b60209081029190910181019190915260408051613a3160f11b928101929092526473746f726560d81b60228301527f5265736f75726365496473000000000000000000000000000000000000000000603083015261137091015b60405160208183030381529060405261133890614419565b8260008560405160200161135391151560f81b815260010190565b60408051601f19818403018152919052630101000160d81b61267a565b505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106113ab576113ab61443d565b60209081029190910181019190915260408051613a3160f11b81840152641ddbdc9b1960da1b60228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526113709061141790614419565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152839060009060340160408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061267a565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106114b8576114b861443d565b6020026020010181815250508273ffffffffffffffffffffffffffffffffffffffff1660001b816001815181106114f1576114f161443d565b60209081029190910181019190915260408051613a3160f11b92810192909252641ddbdc9b1960da1b60228301527f5265736f75726365416363657373000000000000000000000000000000000000603083015261154f9101611320565b50505050565b61137061156061022d565b6040516024810184905273ffffffffffffffffffffffffffffffffffffffff85166044820152600160648201526000907f00000000000000000000000000000000000000000000000000000000000000009060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3350b6a90000000000000000000000000000000000000000000000000000000017905261268f565b61137061161d61022d565b60007f00000000000000000000000000000000000000000000000000000000000000008585868051906020012060405160240161165c939291906144d3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f742d61180000000000000000000000000000000000000000000000000000000017905261268f565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261171990614419565b7e6003022020200000000000000000000000000000000000000000000000000061174161187f565b6117496126bc565b61175161280b565b610ccf612882565b60408051613a3160f11b60208201526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015261050d91016040516020818303038152906040526117b990614419565b7c01000000000000000000000000000000000000000000000000000000006117df61187f565b6117e7612552565b6117ef61280b565b610ccf612a4a565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015261050d910160405160208183030381529060405261185790614419565b630101000160d81b61186761187f565b61186f611f6c565b611877612ac1565b610ccf612b38565b60408051600180825281830190925260009182919060208083019080368337019050509050605f816000815181106118b9576118b961443d565b602002602001019060c58111156118d2576118d261451e565b908160c58111156118e5576118e561451e565b9052506118f181612baf565b91505090565b604080516001808252818301909252600091829190602080830190803683370190505090506061816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816119485790505090506040518060400160405280600b81526020017f6e616d6573706163654964000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816119cd5790505090506040518060400160405280600581526020017f6f776e6572000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000611a37610bcb565b90503073ffffffffffffffffffffffffffffffffffffffff821603611a6957611a64878787878787612d73565b611af8565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f4990611ac5908a908a908a908a908a908a9060040161458c565b600060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050505b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050601f816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611b525790505090506040518060400160405280600781526020017f62616c616e636500000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110611bec57611bec61443d565b602002602001019060c5811115611c0557611c0561451e565b908160c5811115611c1857611c1861451e565b81525050605f816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611c475790505090506040518060400160405280600a81526020017f6d6f64756c654e616d650000000000000000000000000000000000000000000081525081600081518110611ca757611ca761443d565b60200260200101819052506040518060400160405280600d81526020017f617267756d656e74734861736800000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611d125790505090506040518060400160405280600d81526020017f6d6f64756c654164647265737300000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611dac57611dac61443d565b602002602001019060c5811115611dc557611dc561451e565b908160c5811115611dd857611dd861451e565b815250506061816001815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611e075790505090506040518060400160405280600981526020017f64656c656761746f72000000000000000000000000000000000000000000000081525081600081518110611e6757611e6761443d565b60200260200101819052506040518060400160405280600981526020017f64656c6567617465650000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081611ed25790505090506040518060400160405280601381526020017f64656c65676174696f6e436f6e74726f6c496400000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611dac57611dac61443d565b604080516001808252818301909252600091829190602080830190803683370190505090506060816000815181106118b9576118b961443d565b6040805160028082526060828101909352816020015b6060815260200190600190039081611fbc5790505090506040518060400160405280600a81526020017f7265736f757263654964000000000000000000000000000000000000000000008152508160008151811061201c5761201c61443d565b60200260200101819052506040518060400160405280600681526020017f63616c6c65720000000000000000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816120875790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106121215761212161443d565b602002602001019060c581111561213a5761213a61451e565b908160c581111561214d5761214d61451e565b815250506060816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161217d5790505090506040518060400160405280600881526020017f73797374656d4964000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816121f35790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106122535761225361443d565b60200260200101819052506040518060400160405280600c81526020017f7075626c69634163636573730000000000000000000000000000000000000000815250816001815181106119a8576119a861443d565b604080516001808252818301909252600091829190602080830190803683370190505090506043816000815181106118b9576118b961443d565b60408051600280825260608201835260009283929190602083019080368337019050509050605f8160008151811061231b5761231b61443d565b602002602001019060c58111156123345761233461451e565b908160c58111156123475761234761451e565b815250506043816001815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816123775790505090506040518060400160405280601081526020017f66756e6374696f6e53656c6563746f7200000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160028082526060828101909352816020015b60608152602001906001900390816123ed5790505090506040518060400160405280600881526020017f73797374656d49640000000000000000000000000000000000000000000000008152508160008151811061244d5761244d61443d565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816001815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060c5816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816124f25790505090506040518060400160405280601181526020017f66756e6374696f6e5369676e6174757265000000000000000000000000000000815250816000815181106119a8576119a861443d565b6040805160018082528183019092526000918291906020808301908036833701905050905060b6816000815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816125a35790505090506040518060400160405280600581526020017f76616c7565000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b606081526020019060019003908161261a5790505090506040518060400160405280600681526020017f73797374656d0000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b610bc48585612689848761304b565b8561308e565b60606000806126a087878787613322565b91509150816126b2576126b2816133a3565b9695505050505050565b60408051600580825260c082019092526000918291906020820160a080368337019050509050605f816000815181106126f7576126f761443d565b602002602001019060c58111156127105761271061451e565b908160c58111156127235761272361451e565b81525050605f8160018151811061273c5761273c61443d565b602002602001019060c58111156127555761275561451e565b908160c58111156127685761276861451e565b81525050605f816002815181106127815761278161443d565b602002602001019060c581111561279a5761279a61451e565b908160c58111156127ad576127ad61451e565b8152505060c4816003815181106127c6576127c661443d565b602002602001019060c58111156127df576127df61451e565b908160c58111156127f2576127f261451e565b8152505060c4816004815181106118b9576118b961443d565b604080516001808252818301909252606091816020015b60608152602001906001900390816128225790505090506040518060400160405280600781526020017f7461626c65496400000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b60408051600580825260c08201909252606091816020015b606081526020019060019003908161289a5790505090506040518060400160405280600b81526020017f6669656c644c61796f7574000000000000000000000000000000000000000000815250816000815181106128fa576128fa61443d565b60200260200101819052506040518060400160405280600981526020017f6b6579536368656d6100000000000000000000000000000000000000000000008152508160018151811061294e5761294e61443d565b60200260200101819052506040518060400160405280600b81526020017f76616c7565536368656d61000000000000000000000000000000000000000000815250816002815181106129a2576129a261443d565b60200260200101819052506040518060400160405280601281526020017f616269456e636f6465644b65794e616d65730000000000000000000000000000815250816003815181106129f6576129f661443d565b60200260200101819052506040518060400160405280601481526020017f616269456e636f6465644669656c644e616d6573000000000000000000000000815250816004815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612a615790505090506040518060400160405280600581526020017f686f6f6b73000000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612ad85790505090506040518060400160405280600a81526020017f7265736f75726365496400000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b604080516001808252818301909252606091816020015b6060815260200190600190039081612b4f5790505090506040518060400160405280600681526020017f6578697374730000000000000000000000000000000000000000000000000000815250816000815181106119a8576119a861443d565b6000601c82511115612be2578151604051635318beb960e01b8152600401612bd991815260200190565b60405180910390fd5b60008080805b8551811015612cbd576000612c26878381518110612c0857612c0861443d565b602002602001015160c5811115612c2157612c2161451e565b6133ab565b905080600003612c3b57600190920191612c73565b8215612c73576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110612c9457612c9461443d565b602002602001015160c5811115612cad57612cad61451e565b901b949094179350600101612be8565b506005811115612ce357604051635318beb960e01b815260048101829052602401612bd9565b84518190036008612cf6600260206145d6565b612d0091906145e9565b83901b939093179260086001612d18600260206145d6565b612d2291906145d6565b612d2c91906145e9565b81901b93909317926008600180612d45600260206145d6565b612d4f91906145d6565b612d5991906145d6565b612d6391906145e9565b9190911b92909217949350505050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590612dd15750611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001614155b15612e3257613a3160f11b8687604051602001612df091815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252612bd9939291600401614600565b612e3b8561340b565b612e4684600161358c565b612e5183600061358c565b60e084901c60e885901c0160ff16825114612eb15760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff16815114612f115760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614612f895760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401612bd9565b612f9286613733565b15612fec578586604051602001612fab91815260200190565b60408051601f19818403018152908290527fdfaaf9cf000000000000000000000000000000000000000000000000000000008252612bd99291600401614641565b6130388686868686604051602001613004919061465a565b60405160208183030381529060405286604051602001613024919061465a565b6040516020818303038152906040526137ff565b613043866001611290565b505050505050565b600080805b8360ff168110156130865761307260ff601b83900360080287901c168361466d565b91508061307e81614469565b915050613050565b509392505050565b611bdd60f21b847fffff00000000000000000000000000000000000000000000000000000000000016036130fd57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8484846040516130f0939291906146bb565b60405180910390a261154f565b60006131098585613903565b9050600061311686613959565b905060005b81518110156131f55760008282815181106131385761313861443d565b602002602001015190506131646004826affffffffffffffffffffff1916613a2190919063ffffffff16565b156131e2576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906131af908b908b908b908b906004016146ee565b600060405180830381600087803b1580156131c957600080fd5b505af11580156131dd573d6000803e3d6000fd5b505050505b50806131ed81614469565b91505061311b565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161322a939291906146bb565b60405180910390a2613245828565ffffffffffff1685613a3f565b60005b8151811015611af85760008282815181106132655761326561443d565b602002602001015190506132916008826affffffffffffffffffffff1916613a2190919063ffffffff16565b1561330f576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906132dc908b908b908b908b906004016146ee565b600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050505b508061331a81614469565b915050613248565b600060608373ffffffffffffffffffffffffffffffffffffffff16613348848888613a55565b6040516133559190614732565b600060405180830381855af49150503d8060008114613390576040519150601f19603f3d011682016040523d82523d6000602084013e613395565b606091505b509097909650945050505050565b805160208201fd5b6000808260c58111156133c0576133c061451e565b60ff16905060618110156133da57601f1660010192915050565b60618360c58111156133ee576133ee61451e565b036133fc5750601492915050565b50600092915050565b50919050565b80613442576040517f220c0f6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061344d82613a84565b90506005811115613494576040517f7f2372c30000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401612bd9565b600061349f83613ac1565b905060006134ad838361466d565b9050601c8111156134f4576040517f4a8a06ad00000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401612bd9565b60005b82811015610bc45760ff601b82900360080286901c166000819003613548576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115613583576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016134f7565b80158015613598575081155b156135b957604051635318beb960e01b815260006004820152602401612bd9565b60006135c483613a84565b905060058111156135eb57604051635318beb960e01b815260048101829052602401612bd9565b60006135f684613ac1565b90506000613604838361466d565b9050601c81111561362b57604051635318beb960e01b815260048101829052602401612bd9565b60008060005b838110156136ec5760006136596136488a84613ad3565b60c5811115612c2157612c2161451e565b11156136a357848110613698576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916136e4565b848110156136dd576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101613631565b5083821461371057604051635318beb960e01b815260048101839052602401612bd9565b848114611af857604051635318beb960e01b815260048101829052602401612bd9565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061376c5761376c61443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906137eb906137db90614419565b836000630101000160d81b613afb565b90506137f78160f81c90565b949350505050565b600061380c868686613b31565b9050600061381a8484613b53565b905060006138288585613b70565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106138625761386261443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526138f7906138ce90614419565b828686867e60030220202000000000000000000000000000000000000000000000000000613b9c565b50505050505050505050565b6000828260405160200161391892919061474e565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106139935761399361443d565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090613a0a90613a0290614419565b836000613ece565b90506137f7613a1c8260008451613f08565b613f98565b60008160ff1682613a328560581c90565b1660ff1614905092915050565b61137083838351613a508560200190565b613fa9565b6060838383604051602001613a6c93929190614789565b60405160208183030381529060405290509392505050565b60006008600180613a97600260206145d6565b613aa191906145d6565b613aab91906145d6565b613ab591906145e9565b8260ff911c1692915050565b600060086001613aa1600260206145d6565b6000601b8290036008028360ff911c1660c5811115613af457613af461451e565b9392505050565b6000613b28613b0a8686613903565b60ff858116601b0360080285901c16613b23858761304b565b614069565b95945050505050565b6040805160208101859052908101839052606081810183905290608001613a6c565b8151815160009181810160389190911b1760609190911b17613af4565b60608282604051602001613b859291906147db565b604051602081830303815290604052905092915050565b611bdd60f21b867fffff0000000000000000000000000000000000000000000000000000000000001603613c0d57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051613c00949392919061480a565b60405180910390a2613043565b6000613c1887613959565b905060005b8151811015613cfb576000828281518110613c3a57613c3a61443d565b60200260200101519050613c666001826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ce8576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613cb5908c908c908c908c908c908c90600401614849565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050505b5080613cf381614469565b915050613c1d565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a987878787604051613d32949392919061480a565b60405180910390a26000613d468888613903565b90506000602087019050613d5e826000895184613fa9565b6000613d6985613a84565b1115613ded576000613d7b8a8a6140ba565b878155905060208601915060008060005b613d9588613a84565b8160ff161015613de857613daa8d8d83614110565b9250613dc58a8260ff166028026038011c64ffffffffff1690565b9150613dd48360008488613fa9565b613dde828661466d565b9450600101613d8c565b505050505b60005b83518110156138f7576000848281518110613e0d57613e0d61443d565b60200260200101519050613e396002826affffffffffffffffffffff1916613a2190919063ffffffff16565b15613ebb576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90613e88908e908e908e908e908e908e90600401614849565b600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050505b5080613ec681614469565b915050613df0565b60606137f7613ede858585614110565b6000613f0385613eee8989614190565b9060ff166028026038011c64ffffffffff1690565b6141a3565b6000818311158015613f1b575083518211155b613f57578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401612bd9939291906148a2565b60208401613f65848261466d565b90506000613f7385856145d6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000613af483601560006141c6565b82156140235760208310613fd357602083048401935060208381613fcf57613fcf6148c7565b0692505b82156140235760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161401457505061154f565b50600194909401939182900391015b5b602082106140455780518455600190930192601f1990910190602001614024565b811561154f576000600019600884021c198554835182169119161785555050505050565b60006020821061408f5760208204840193506020828161408b5761408b6148c7565b0691505b508254600882021b602082900380841115613086576001850154600882021c82179150509392505050565b600082826040516020016140cf92919061474e565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161412592919061474e565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000613af461419f84846140ba565b5490565b60405160208101601f19603f848401011660405282825261308685858584614241565b606060006141d48560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816141fa576141fa6148c7565b04905060405193506020840160208202810160405281855260005b82811015614235578451871c825293870193602090910190600101614215565b50505050509392505050565b82156142ca576020831061426b57602083048401935060208381614267576142676148c7565b0692505b82156142ca57602083900360008184101561428f5750600019600884021c1961429a565b50600019600882021c195b8554600886021b8119845116828216178452508184116142bb57505061154f565b50600194909401939182900391015b5b602082106142ec5783548152600190930192601f19909101906020016142cb565b811561154f576000600019600884021c198251865482169119161782525050505050565b60006020828403121561432257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613af457600080fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561437a57600080fd5b813567ffffffffffffffff8082111561439257600080fd5b818401915084601f8301126143a657600080fd5b8135818111156143b8576143b8614352565b604051601f8201601f19908116603f011681019083821181831017156143e0576143e0614352565b816040528281528760208487010111156143f957600080fd5b826020860160208301376000928101602001929092525095945050505050565b805160208083015191908110156134055760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361447c5761447c614453565b5060010190565b60005b8381101561449e578181015183820152602001614486565b50506000910152565b600081518084526144bf816020860160208601614483565b601f01601f19169290920160200192915050565b8381526060602082015260006144ec60608301856144a7565b90507fffffffff0000000000000000000000000000000000000000000000000000000083166040830152949350505050565b634e487b7160e01b600052602160045260246000fd5b600082825180855260208086019550808260051b84010181860160005b8481101561457f57601f1986840301895261456d8383516144a7565b98840198925090830190600101614551565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006145b760c0830185614534565b82810360a08401526145c98185614534565b9998505050505050505050565b8181038181111561022757610227614453565b808202811582820484141761022757610227614453565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000613b2860608301846144a7565b8281526040602082015260006137f760408301846144a7565b602081526000613af46020830184614534565b8082018082111561022757610227614453565b600081518084526020808501945080840160005b838110156146b057815187529582019590820190600101614694565b509495945050505050565b6060815260006146ce6060830186614680565b65ffffffffffff8516602084015282810360408401526126b281856144a7565b8481526080602082015260006147076080830186614680565b65ffffffffffff85166040840152828103606084015261472781856144a7565b979650505050505050565b60008251614744818460208701614483565b9190910192915050565b82815260006020808301845182860160005b8281101561477c57815184529284019290840190600101614760565b5091979650505050505050565b6000845161479b818460208901614483565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600083516147ed818460208801614483565b835190830190614801818360208801614483565b01949350505050565b60808152600061481d6080830187614680565b828103602084015261482f81876144a7565b9050846040840152828103606084015261472781856144a7565b86815260c06020820152600061486260c0830188614680565b828103604084015261487481886144a7565b9050856060840152828103608084015261488e81866144a7565b9150508260a0830152979650505050505050565b6060815260006148b560608301866144a7565b60208301949094525060400152919050565b634e487b7160e01b600052601260045260246000fdfe756e726567697374657253746f7265486f6f6b28627974657333322c616464726573732972656769737465725461626c6528627974657333322c627974657333322c627974657333322c627974657333322c737472696e675b5d2c737472696e675b5d29726567697374657244656c65676174696f6e28616464726573732c627974657333322c627974657329726567697374657246756e6374696f6e53656c6563746f7228627974657333322c737472696e6729726567697374657253797374656d28627974657333322c616464726573732c626f6f6c297472616e7366657242616c616e6365546f4164647265737328627974657333322c616464726573732c75696e7432353629726567697374657253746f7265486f6f6b28627974657333322c616464726573732c75696e7438297265676973746572526f6f7446756e6374696f6e53656c6563746f7228627974657333322c737472696e672c62797465733429626174636843616c6c46726f6d2828616464726573732c627974657333322c6279746573295b5d29756e726567697374657253797374656d486f6f6b28627974657333322c616464726573732972656769737465724e616d65737061636544656c65676174696f6e28627974657333322c627974657333322c6279746573297472616e7366657242616c616e6365546f4e616d65737061636528627974657333322c627974657333322c75696e7432353629726567697374657253797374656d486f6f6b28627974657333322c616464726573732c75696e7438297472616e736665724f776e65727368697028627974657333322c6164647265737329a164736f6c6343000815000a64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65646368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c65647365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d617463686368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564476574206c697374206f66206b6579732077697468206120676976656e2076616c75657365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564636f6d707574652074686520746172676574207461626c652073656c6563746f72a164736f6c6343000815000a","sourceMap":"1842:9097:197:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:685;;;:::i;:::-;;2170:134:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9627:127:197;;;:::i;2939:133:107:-;;;:::i;2640:141::-;;;:::i;4959:2346:197:-;;;:::i;7309:1390::-;;;:::i;2456:178:107:-;;;:::i;:::-;;;;;;;:::i;9758:1179:197:-;;;;;;:::i;:::-;;:::i;4046:648::-;;;:::i;4698:257::-;;;:::i;3908:134::-;;;:::i;2310:140:107:-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;1875:141::-;;;:::i;1819:584:101:-;;;:::i;:::-;;;4248:14:203;;4241:22;4223:41;;4211:2;4196:18;1819:584:101;4083:187:203;8703:920:197;;;:::i;2022:142:107:-;;;:::i;1572:26:101:-;;;;;;;;;2595:685:197;2650:37;2681:2;2685:1;2650:30;:37::i;:::-;2625:22;:62;2713:45;2739:18;2713:25;:45::i;:::-;2693:17;:65;2787:45;2813:18;2787:25;:45::i;:::-;2764:20;:68;2917:9;;2854:93;;2890:14;;2917:9;;;;;2934:10;;;;;2854:25;:93::i;:::-;2838:13;:109;;;2969:49;;2986:16;;2969;:49::i;:::-;2953:13;:65;3052:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3025:5:197;:40;;;;-1:-1:-1;;;;;3025:40:197;;;;;;;;;3071:16;3088:18;:16;:18::i;:::-;3071:36;;;;;;;;;;-1:-1:-1;;;;;4459:55:203;;;3071:36:197;;;4441:74:203;4414:18;;3071:36:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3149:5:197;;996:42:24;2304:38;;;;-1:-1:-1;;;;;3149:5:197;;;2304:38:24;;;;;;-1:-1:-1;3113:43:197;;-1:-1:-1;2241:106:24;3113:43:197;3175:16;;;3189:1;3175:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:28:197;;;;:9;;-1:-1:-1;3163:28:197;;;;:::i;:::-;;3212:4;;3197:9;3207:1;3197:12;;;;;;;;:::i;:::-;;;;;;;;;;:19;3234:16;;;3248:1;3234:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3222:28:197;;;;:9;;-1:-1:-1;3222:28:197;;;;:::i;:::-;;3271:4;;3256:9;3266:1;3256:12;;;;;;;;:::i;:::-;;;;;;;;;;:19;2595:685::o;2170:134:107:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2262:35:107;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;9627:127:197:-;9726:23;9747:1;9726:20;:23::i;:::-;9627:127::o;2939:133:107:-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3030:35:107;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2735:39:107;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;4959:2346:197:-;5010:29;:27;:29::i;:::-;5110:5;;5126:13;;5152:24;;;5102:1;5152:24;;;;5033:19:203;;;5152:24:197;;;;;;;;;;5205:1;5068:12:203;;;5210::197;;;;;;;;;;-1:-1:-1;;;5110:113:197;;;5102:1;;-1:-1:-1;;;;;5110:5:197;;:15;;:113;;5126:13;;5141:9;;5152:24;5205:1;;5068:12:203;5110:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5296:30;5329:69;5347:13;;5389:6;5372:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;5372:24:197;;;;;;;;;;;;;5362:35;;;;;;5329:17;:69::i;:::-;5296:102;;5444:38;5453:13;:20;5475:1;5444:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;5488:37;5497:13;5511:1;5497:16;;;;;;;;:::i;:::-;;;;;;;5515:4;;5488:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;5577:5;;5593:13;;5619:24;;;;;;;5033:19:203;;;5619:24:197;;;;;;;;;;5672:1;5068:12:203;;;5677::197;;;;;;;;;;-1:-1:-1;;;5577:113:197;;;-1:-1:-1;;;;;5577:5:197;;;;:15;;:113;;5593:13;;5608:9;;5619:24;5672:1;5068:12:203;5577:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5779:69;5797:13;;5839:6;5822:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;5779:69:197;5763:85;;5894:33;5903:13;:20;5925:1;5894:8;:33::i;:::-;5933:37;5942:13;5956:1;5942:16;;;;;;;;:::i;:::-;;;;;;;5960:4;;5933:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;5976;5985:13;5999:1;5985:16;;;;;;;;:::i;:::-;;;;;;;6003:4;;5976:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6061:14;6078:1;6061:18;;6086:79;;;;;;;;;;;;;;;;;;:14;:79::i;:::-;6171:5;;6187:13;;6213:24;;;;;;;5033:19:203;;;6213:24:197;;;;;;;;;;6266:1;5068:12:203;;;6271::197;;;;;;;;;;-1:-1:-1;;;6171:113:197;;;-1:-1:-1;;;;;6171:5:197;;;;:15;;:113;;6187:13;;6202:9;;6213:24;6266:1;5068:12:203;6171:113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6290:14;:12;:14::i;:::-;6393:69;6411:13;;6453:6;6436:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;6393:69:197;6377:85;;6508:38;6517:13;:20;6539:1;6508:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;6552:37;6561:13;6575:1;6561:16;;;;;;;;:::i;:::-;;;;;;;6579:4;;6552:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6678:69;6696:13;;6738:6;6721:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;6678:69:197;6662:85;;6793:38;6802:13;:20;6824:1;6793:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;6837:37;6846:13;6860:1;6846:16;;;;;;;;:::i;:::-;;;;;;;6864:4;;6837:37;;;;;;;;;;;;;;;;;:8;:37::i;:::-;6909:79;;;;;;;;;;;;;;;;;;:14;:79::i;:::-;6994:5;;7013:13;;6994:44;;;;;-1:-1:-1;;;;;6994:5:197;;;;:18;;:44;;7028:9;;6994:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:14;:12;:14::i;:::-;7147:69;7165:13;;7207:6;7190:24;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;7147:69:197;7131:85;;7262:38;7271:13;:20;7293:1;7262:38;;;;;;;;;;;;;;;;;:8;:38::i;:::-;5004:2301;;;4959:2346::o;7309:1390::-;7346:29;:27;:29::i;:::-;7421:14;7438:1;7421:18;;7446:75;;;;;;;;;;;;;;;;;;:14;:75::i;:::-;7527:5;;7542:13;;7571:24;;;;;;;5033:19:203;;;7571:24:197;;;;;;;;;;5068:12:203;;;7571:24:197;;;;7597:22;;7527:93;;;;-1:-1:-1;;;;;7527:5:197;;;;:14;;:93;;7542:13;;7557:9;;7527:5;;7571:24;;7527:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7626:14;:12;:14::i;:::-;7713:30;7746:63;7764:13;;7800:6;7789:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;7746:63:197;7713:96;;7855:33;7864:13;:20;7886:1;7855:8;:33::i;:::-;7894:32;7903:13;7917:1;7903:16;;;;;;;;:::i;:::-;;;;;;;7921:4;;7894:8;:32::i;:::-;7933:14;7950:1;7933:18;;7997:78;;;;;;;;;;;;;;;;;;:14;:78::i;:::-;8081:5;;8096:13;;8125:24;;;;;;;5033:19:203;;;8125:24:197;;;;;;;;;;5068:12:203;;;8125:24:197;;;;8151:22;;8081:93;;;;-1:-1:-1;;;;;8081:5:197;;;;:14;;:93;;8096:13;;8111:9;;8081:5;;8125:24;;8081:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8180:14;:12;:14::i;:::-;8283:63;8301:13;;8337:6;8326:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;8283:63:197;8267:79;;8392:33;8401:13;:20;8423:1;8392:8;:33::i;:::-;8514:63;8532:13;;8568:6;8557:18;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;8514:63:197;8498:79;;8623:33;8632:13;:20;8654:1;8623:8;:33::i;:::-;8662:32;8671:13;8685:1;8671:16;;;;;;;;:::i;2456:178:107:-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2572:55:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;9758:1179:197:-;9816:29;:27;:29::i;:::-;9891:5;;9907:13;;9933:23;;;;;;;5033:19:203;;;9933:23:197;;;;;;;;;;9985:1;5068:12:203;;;9990::197;;;;;;;;;;-1:-1:-1;;;9891:112:197;;;-1:-1:-1;;;;;9891:5:197;;;;:15;;:112;;9907:13;;9922:9;;9933:23;9985:1;5068:12:203;9891:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10010:53;;;;;;;;;;;;;;;;;;:14;:53::i;:::-;10126:5;;10139:13;;10160:23;;;;;;5033:19:203;;;10069:30:197;;10102:145;;-1:-1:-1;;;;;10126:5:197;;;;10139:13;;5068:12:203;10160:23:197;;;;;;;-1:-1:-1;;10160:23:197;;;10218:1;10229:12;;;;;;;;;10160:23;10102:16;:145::i;:::-;10069:178;;10253:14;:12;:14::i;:::-;10313:33;10322:13;:20;10344:1;10313:8;:33::i;:::-;10352:32;10361:13;10375:1;10361:16;;;;;;;;:::i;10352:32::-;10436:5;;10452:13;;10478:23;;;;;;;5033:19:203;;;10478:23:197;;;;;;;;;;10530:1;5068:12:203;;;10535::197;;;;;;;;;;-1:-1:-1;;;10436:112:197;;;-1:-1:-1;;;;;10436:5:197;;;;:15;;:112;;10452:13;;10467:9;;10478:23;10530:1;5068:12:203;10436:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10656:5:197;;10669:13;;10690:23;;;;;;5033:19:203;;;10632:145:197;;-1:-1:-1;;;;;;10656:5:197;;;;-1:-1:-1;10669:13:197;;5068:12:203;10690:23:197;4904:182:203;10632:145:197;10616:161;;10823:33;10832:13;:20;10854:1;10823:8;:33::i;:::-;10862:32;10871:13;10885:1;10871:16;;;;;;;;:::i;10862:32::-;10900;10909:13;10923:1;10909:16;;;;;;;;:::i;:::-;;;;;;;10927:4;;10900:8;:32::i;:::-;9810:1127;9758:1179;:::o;4046:648::-;4082:29;:27;:29::i;:::-;4156:13;4172:1;4156:17;;4180:76;;;;;;;;;;;;;;;;;;:14;:76::i;:::-;4262:5;;4278:13;;4304:23;;;;;;;5033:19:203;;;4304:23:197;;;;;;;;;;4356:1;5068:12:203;;;4361::197;;;;;;;;;;-1:-1:-1;;;4262:112:197;;;-1:-1:-1;;;;;4262:5:197;;;;:15;;:112;;4278:13;;4293:9;;4304:23;4356:1;5068:12:203;4262:112:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:14;:12;:14::i;:::-;4471:30;4504:68;4522:13;;4564:5;4547:23;;;;;;5033:19:203;;5077:2;5068:12;;4904:182;4504:68:197;4471:101;;4618:33;4627:13;:20;4649:1;4618:8;:33::i;:::-;4657:32;4666:13;4680:1;4666:16;;;;;;;;:::i;4698:257::-;4739:5;;4763:19;;;4795:13;;4784:25;;-1:-1:-1;;;;;4739:5:197;;;;:23;;4763:19;;;4784:25;;4795:13;4784:25;7751::203;;;7739:2;7724:18;;7605:177;4784:25:197;;;;;;;;;;;;;4739:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4816:57:197;;;;;4832:40;4816:57;;;8517:98:203;4816:15:197;;-1:-1:-1;4816:15:197;;-1:-1:-1;8490:18:203;;4816:57:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4879:5:197;;4903:19;;;4935:13;;4924:25;;;;;;7751::203;;;;4924::197;;;;;;;;;;7724:18:203;;;4924:25:197;;;;4879:71;;;-1:-1:-1;;;;;4879:5:197;;;;-1:-1:-1;4879:23:197;;-1:-1:-1;4879:71:197;;4903:19;;;;4924:25;4879:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4698:257::o;3908:134::-;3954:83;336:5:16;466:6:59;3963:44:197;401:5:166;;3963:44:197;:::i;:::-;:56;;;;:::i;:::-;:68;;;;:::i;:::-;4033:3;3954:8;:83::i;2310:140:107:-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2887:39:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1875:141;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:101;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:101;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;9561:74:203;;;2221:17:101;9651:18:203;;;9644:34;2196:43:101;;;;;;;;;9534:18:203;;;2196:43:101;;;-1:-1:-1;;1671:64:101;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:101;;;;;;;;;;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:101:o;8703:920:197:-;8748:51;;;;;;;;;;;;;;;;;;:14;:51::i;:::-;8805:25;8833:49;8850:16;8868:13;;8833:16;:49::i;:::-;8805:77;;8888:14;:12;:14::i;:::-;8956:95;8965:14;8956:95;;;8991:14;8956:95;;;;;;;;;;;;;;;;;;;;:8;:95::i;:::-;9107:143;;;;;;;;;;;;;;;;;;;;336:5:16;9130:48:197;;;9107:143;;9187:16;;9107:8;:143::i;:::-;9324:167;9385:33;354:5:166;336::16;9385:33:197;:::i;:::-;9435:9;;9324:167;;;;;;;;;;;;;;;;;9347:72;;;;9324:167;;;;;9435:9;;;;;9324:167;;:8;:167::i;:::-;9543:75;9552:24;:14;:22;:24::i;:::-;9543:75;;;9578:10;;;;;;;;;;;9543:75;;;;;;;;;;;;;;;;;;;;:8;:75::i;:::-;8742:881;8703:920::o;2022:142:107:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2118:39:107;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;225:236:39:-;351:16;;;365:1;351:16;;;;;;;;;301:11;;;;351:16;;;;;;;;;;;;-1:-1:-1;351:16:39;320:47;;390:1;373:11;385:1;373:14;;;;;;;;:::i;:::-;;;;;;:18;;;;;404:52;426:11;439:16;404:21;:52::i;:::-;397:59;;;225:236;;;;;:::o;287:176:41:-;383:19;;;400:1;383:19;;;;;;;;;340:6;;;;383:19;;;;;;;;;;;;-1:-1:-1;383:19:41;354:48;;420:1;408:6;415:1;408:9;;;;;;;;:::i;:::-;;;;;;:13;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;434:24:41;451:6;434:16;:24::i;:::-;427:31;287:176;-1:-1:-1;;;287:176:41:o;941:257:59:-;1028:10;1157:26;399:6;336:5:16;1157:26:59;:::i;:::-;1139:13;;;:45;;336:5:16;1103:31:59;;;;;1084:15;;;:51;:101;;-1:-1:-1;941:257:59;;;;;:::o;1052:559:166:-;1142:10;1158:17;1178:46;1210:13;1178:31;:46::i;:::-;1158:66;;1228:27;1265:51;1302:13;336:5:16;2463:44:59;;2365:148;1265:51:166;1228:89;-1:-1:-1;401:5:166;1544:33;401:5;336::16;1544:33:166;:::i;:::-;:56;;;;:::i;:::-;1521:18;;;:80;;1474:33;354:5;336::16;1474:33:166;:::i;:::-;1390:37;336:5:16;1390:37:166;;;;1440:29;;;;:68;;1355:154;;;;:247;1363:14;1355:247;;-1:-1:-1;;1052:559:166;;;;:::o;514:223:100:-;551:10;600:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;636:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;671:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;700:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;578:156;;;;;:::i;:::-;-1:-1:-1;;;;;11317:15:203;;;11299:34;;11369:15;;;11364:2;11349:18;;11342:43;11421:15;;;11416:2;11401:18;;11394:43;11473:15;;;11468:2;11453:18;;11446:43;11225:3;11210:19;578:156:100;;;;;;;;;;;;;;;;;;;;;;;567:167;;514:223;:::o;3284:620:197:-;3367:5;;3394:13;;3415:22;;3445:20;;3473:17;;3498:15;;;3367:5;3498:15;;;;;;;;;-1:-1:-1;;;;;3367:5:197;;;;:19;;3394:13;3415:22;3445:20;3473:17;3498:15;;;;;;;;;;;;;;;;;-1:-1:-1;;3521:15:197;;;3534:1;3521:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:175;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3754:48;;;;;;;;;;;;;;;;;;:14;:48::i;:::-;3808:5;;3832:19;;;3864:13;;3853:25;;-1:-1:-1;;;;;3808:5:197;;;;:23;;3832:19;;;3853:25;;3864:13;3853:25;7751::203;;;7739:2;7724:18;;7605:177;3853:25:197;;;;;;;;;;;;;3808:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:14;:12;:14::i;4802:354:167:-;4945:16;;;4959:1;4945:16;;;;;;;;;4878:30;;4916:26;;4945:16;;;;;;;;;;;;-1:-1:-1;4945:16:167;4916:45;;4982:9;4967;4977:1;4967:12;;;;;;;;:::i;:::-;;;;;;:24;;;;;4998:18;5019:51;5047:8;5057:9;5068:1;5019:27;:51::i;:::-;4998:72;;5084:66;:44;5105:5;5112:1;5115:5;:12;5084:20;:44::i;:::-;:64;:66::i;:::-;5076:75;4802:354;-1:-1:-1;;;;;4802:354:167:o;5476:178:101:-;5557:1;5552;:6;5548:100;;5579:30;5605:3;5579:30;;;;;;:::i;:::-;;;;;;;;5623:14;5632:1;5635;5623:8;:14::i;4377:185::-;4464:1;4459;:6;4455:101;;4486:31;4513:3;4486:31;;;;;;:::i;:::-;;;;;;;;4531:14;4540:1;4543;4531:8;:14::i;5209:262::-;5271:1;5266;:6;5262:203;;5293:41;;;;;13065:2:203;13047:21;;;13104:2;13084:18;;;13077:30;13143:34;13138:2;13123:18;;13116:62;13214:4;13209:2;13194:18;;13187:32;13251:3;13236:19;;12863:398;5293:41:101;;;;;;;;5353:31;5382:1;5353:31;;;;;;:::i;:::-;;;;;;;;5403;5432:1;5403:31;;;;;;:::i;:::-;;;;;;;;5448:6;:4;:6::i;330:580:0:-;394:39;;;;;;;;;14506:21:203;;;;14563:2;14543:18;;;14536:30;14602:22;14582:18;;;14575:50;309:37:102;14677:20:203;;;14670:52;394:8:0;;;;14642:19:203;;394:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;389:53;;330:580;:::o;389:53::-;468:22;462:36;;;;;:::i;:::-;;;502:1;462:41;558:22;511:150;;;;;;;;:::i;:::-;;;;;;;;;;;;;447:220;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;681:12;694:4;681:18;;;;;;:::i;:::-;;;;;;;;;;;;;;703:1;681:23;736:4;706:67;;;;;;;;:::i;:::-;;;;;;;;;;;;;673:101;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;780:22:0;:29;805:4;780:22;:29;:::i;:::-;;317:28:102;309:37;;-1:-1:-1;;;;;815:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;868:9;842:23;:35;883:22;;;;;;;;:20;;;;:22;;;;;309:37:102;;883:22:0;;;;;;;309:37:102;883:20:0;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:580;:::o;914:534::-;953:11;967:9;987:39;;;;;;;;;14506:21:203;;;;14563:2;14543:18;;;14536:30;14602:22;14582:18;;;14575:50;309:37:102;14677:20:203;;;14670:52;953:23:0;;-1:-1:-1;987:8:0;;;;14642:19:203;;987:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:53;;1028:7;914:534::o;982:53::-;1151:15;1201:3;1195;1169:23;;:29;;;;:::i;:::-;:35;;;;:::i;:::-;:39;;1207:1;1169:39;:::i;:::-;1151:57;;1232:1;1222:7;:11;1214:49;;;;;;;20008:2:203;1214:49:0;;;19990:21:203;20047:2;20027:18;;;20020:30;20086:27;20066:18;;;20059:55;20131:18;;1214:49:0;19806:349:203;1214:49:0;1308:7;1269:12;1282:22;1269:36;;;;;;:::i;:::-;;;;;;;;;;;;;;:46;1321:16;:45;;;;;;;-1:-1:-1;1321:45:0;;;;;;;1343:22;1321:45;;:::i;:::-;;1372:38;1387:22;1372:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:38::i;:::-;1416:27;;;;;;;;;-1:-1:-1;1416:27:0;;:22;;:27;;:22;:27;:::i;4095:277:101:-;4163:1;4158;:6;4154:212;;4185:44;;;;;22145:2:203;22127:21;;;22184:2;22164:18;;;22157:30;22223:34;22218:2;22203:18;;22196:62;22294:7;22289:2;22274:18;;22267:35;22334:3;22319:19;;21943:401;4185:44:101;;;;;;;;4248:34;4280:1;4248:34;;;;;;:::i;:::-;;;;;;;;4301;4333:1;4301:34;;;;;;:::i;1346:620:165:-;1513:30;1598:31;1632:43;1649:16;1667:7;1632:16;:43::i;:::-;1598:77;;1719:18;1766:1;1745:11;:18;:22;1741:139;;;1800:10;1812:14;1828:11;1783:57;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1775:65;;1741:139;;;-1:-1:-1;1865:10:165;1741:139;1899:64;1917:5;1924:20;1956:5;1946:16;;;;;;1899:17;:64::i;:::-;1883:80;1346:620;-1:-1:-1;;;;;;;;1346:620:165:o;2991:160:59:-;3054:7;3118:26;399:6;336:5:16;3118:26:59;:::i;:::-;3084:61;;;;;2991:160;-1:-1:-1;2991:160:59:o;1776:1887:3:-;1879:11;1898:19;1923;1948;1999:16;1970:19;:26;:45;;;;:::i;:::-;1948:67;;647:2:30;2025:11:3;:30;2021:102;;;2064:59;;;;;;;;23840:25:203;;;647:2:30;23881:18:203;;;23874:34;23813:18;;2064:59:3;23666:248:203;2021:102:3;902:1:30;2133:16:3;:37;2129:129;;;2185:73;;;;;;;;23840:25:203;;;902:1:30;23881:18:203;;;23874:34;23813:18;;2185:73:3;23666:248:203;2129:129:3;2364:9;2359:795;2383:19;:26;2379:1;:30;2359:795;;;2421:24;2448:19;2468:1;2448:22;;;;;;;;:::i;:::-;;;;;;;2421:49;;2482:16;2502:1;2482:21;2478:200;;2522:35;;;;;;;;;;;;;;2478:200;334:2:30;2576:16:3;:28;2572:106;;;2623:46;;;;;;;;;;;;;;2572:106;2816:16;2801:31;;;;537:1:30;3108::3;3104;437:2:30;3086:19:3;:23;3085:40;3057:19;3077:1;3057:22;;;;;;;;:::i;:::-;;;;;;;3049:77;;3034:92;;;;3136:3;;;;;;;2413:741;2359:795;;;-1:-1:-1;537:1:30;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3410:41:3;;;3395:56;;;;;537:1:30;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3472:26:3;;:61;;3457:76;;;;;537:1:30;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3554:52:3;;;;3539:67;;;;;1776:1887;-1:-1:-1;;;;1776:1887:3:o;1247:2059:17:-;1315:6;647:2:30;1333:7:17;:14;:33;1329:85;;;1399:7;:14;1375:39;;;;;;;;;7751:25:203;;7739:2;7724:18;;7605:177;1329:85:17;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:30;2531::17;2527;437:2:30;2509:19:17;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:17;;1621:956;;;;902:1:30;2621:13:17;:34;2617:85;;;2664:38;;;;;;;;7751:25:203;;;7724:18;;2664:38:17;7605:177:203;2617:85:17;2802:14;;:30;;;537:1:30;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:17;;;3080:51;;;;;537:1:30;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:17;;;3137:57;;;;;537:1:30;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:17;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:17:o;18525:431:24:-;18661:12;18681:21;18705:17;:15;:17::i;:::-;18681:41;-1:-1:-1;18757:4:24;-1:-1:-1;;;;;18732:30:24;;;18728:224;;18779:63;18805:7;18814:8;18824:17;18779:25;:63::i;:::-;18772:70;;;;;18728:224;18870:75;;;;;-1:-1:-1;;;;;18870:37:24;;;;;:75;;18908:7;;18917:8;;18927:17;;18870:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18870:75:24;;;;;;;;;;;;:::i;18728:224::-;18675:281;18525:431;;;;;:::o;1957:570:18:-;2048:5;2146:3;2137:5;:12;;:34;;;;;2160:4;:11;2153:3;:18;;2137:34;2131:85;;2199:4;2205:5;2212:3;2181:35;;;;;;;;;;;;;:::i;2131:85::-;2284:4;2274:15;;2331:17;2343:5;2274:15;2331:17;:::i;:::-;;-1:-1:-1;2354:12:18;2369:11;2375:5;2369:3;:11;:::i;:::-;643:17;2505:15;2497:3;2485:15;;;;2484:37;;;;;;-1:-1:-1;;;;;1957:570:18:o;45218:220:34:-;45284:24;45316:30;45349:32;45367:6;45375:2;45379:1;45349:17;:32::i;2409:432:101:-;2997:42;2985:55;3066:16;2452:359;;2652:67;;;1671:64;2652:67;;;26685:74:203;;;2677:17:101;26775:18:203;;;26768:34;;;;2712:4:101;26818:18:203;;;26811:34;2489:11:101;;1671:64;2586:43;;26658:18:203;;2652:67:101;;;-1:-1:-1;;2652:67:101;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:101;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:101;2820:7;:14;;;;;;;;2409:432::o;1754:155:0:-;1818:86;317:28:102;309:37;;-1:-1:-1;;;;;1860:11:0;;1872:12;1885:4;1872:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;1860:31;;;;;;;;;;;;7751:25:203;;;7739:2;7724:18;;7605:177;1860:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1860:31:0;;;;;;;;;;;;:::i;:::-;1898:4;1830:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1818:11;:86::i;5633:380:167:-;5807:16;;;5821:1;5807:16;;;;;;;;;5740:30;;5778:26;;5807:16;;;;;;;;;;;;-1:-1:-1;5807:16:167;5778:45;;5844:9;5829;5839:1;5829:12;;;;;;;;:::i;:::-;;;;;;;;;;:24;5881:46;;;;;5860:18;;-1:-1:-1;;;;;5881:22:167;;;;;:46;;5904:8;;5914:9;;5860:18;;5881:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5881:46:167;;;;;;;;;;;;:::i;:::-;5860:67;;5941:66;:44;5962:5;5969:1;5972:5;:12;5941:20;:44::i;:66::-;5933:75;5633:380;-1:-1:-1;;;;;;5633:380:167:o;3195:520:1:-;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:1:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:1;;3195:520;-1:-1:-1;;3195:520:1:o;3592:121::-;-1:-1:-1;3707:1:1;;3195:520;-1:-1:-1;;3195:520:1:o;3592:121::-;3270:445;3195:520;;;:::o;1766:227:24:-;996:42;1855:22;1816:7;;-1:-1:-1;;;;;1855:22:24;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1825:168;1766:227;:::o;36604:522:20:-;36740:12;36864:257;36903:79;36945:7;36954:8;36964:17;36903:41;:79::i;:::-;37000:1;37019:93;37094:17;37019:66;37067:7;37076:8;37019:47;:66::i;:::-;:74;6801:16:15;;922;6801;834;6790:27;6750:68;6728:92;;;6613:218;37019:93:20;36864:12;:257::i;:::-;36851:270;36604:522;-1:-1:-1;;;;36604:522:20:o;2611:1127:36:-;2731:22;2761:21;2785;:11;2881:3:18;2859:25;;2785:104;:21:36;2761:45;-1:-1:-1;643:17:18;3122:38;;2812:20:36;2974:11;3122:38:18;2974:11:36;2959:26;;;;:::i;:::-;;2945:40;;3094:4;3088:11;3079:20;;3137:4;3130:5;3126:16;3197:2;3184:11;3180:20;3166:12;3162:39;3156:4;3149:53;3245:11;3238:5;3231:26;3288:1;3265:463;3304:11;3301:1;3298:18;3265:463;;;3698:20;;3677:42;;3656:64;;3570:31;;;;3483:4;3465:23;;;;3391:1;3384:9;3265:463;;;3269:28;;3046:688;;;2611:1127;;;;;:::o;5630:121:115:-;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:115;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;51939:274:20:-;52083:7;52188;52197:8;52171:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52161:46;;;;;;52140:17;52133:25;;52113:45;;;41681:34;52113:45;:94;52105:103;;52098:110;;51939:274;;;;;:::o;53136:301::-;53257:13;53349:82;53380:48;53410:7;53419:8;53380:29;:48::i;:::-;4640:21:19;;4534:137;4971:665;5383:4;5377:11;5424:4;5412:17;;-1:-1:-1;;5302:14:19;5471:26;;;5302:14;5298:28;5443:4;5436:63;5543:6;5535;5528:22;5561:51;5566:14;5582:6;5590;5598:13;5561:4;:51::i;181:376:115:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;52568:230:20:-;52689:7;52773;52782:8;52756:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52756:35:20;;;;;;;;;52746:46;;52756:35;52746:46;;;;41772:40;52719:73;;52568:230;-1:-1:-1;;;52568:230:20:o;6001:2377:19:-;6118:10;;6114:1540;;6271:2;6261:6;:12;6257:122;;6334:2;6325:6;:11;6307:29;;;;6358:2;6348:12;;;;;;:::i;:::-;;;;6257:122;6469:10;;6465:1183;;6677:2;:11;;;6551:21;6735:22;;;6731:133;;;-1:-1:-1;;;537:1:30;1116:25:31;;1094:48;1092:51;6731:133:19;;;-1:-1:-1;;;537:1:30;1116:25:31;;1094:48;1092:51;6731:133:19;7058:14;7052:21;7037:12;7029:6;7025:25;7021:53;7297:4;7293:9;7277:13;7271:20;7267:36;7204:4;7192:10;7188:21;7133:184;7106:13;7086:243;;7388:13;7378:6;:23;7374:36;;7403:7;;;;7374:36;-1:-1:-1;7551:1:19;7533:19;;;;;7606:23;;;;;7564:30;6465:1183;7683:253;7700:2;7690:6;:12;7683:253;;7794:21;;7772:44;;7869:1;7851:19;;;;-1:-1:-1;;7909:12:19;;;;7897:2;7880:19;7683:253;;;8004:10;;8000:374;;8024:12;-1:-1:-1;;537:1:30;1116:25:31;;1094:48;1092:51;8306:20:19;;8221:21;;8217:32;;8328:9;;8302:36;8166:184;8123:237;;-1:-1:-1;6001:2377:19;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:681:203;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:203;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:203;;14:681;-1:-1:-1;;;;;;14:681:203:o;700:1697::-;904:4;933:2;973;962:9;958:18;1003:2;992:9;985:21;1026:6;1061;1055:13;1092:6;1084;1077:22;1118:2;1108:12;;1151:2;1140:9;1136:18;1129:25;;1213:2;1203:6;1200:1;1196:14;1185:9;1181:30;1177:39;1251:2;1243:6;1239:15;1272:1;1293;1303:1065;1319:6;1314:3;1311:15;1303:1065;;;1388:22;;;1412:66;1384:95;1372:108;;1503:13;;1590:9;;-1:-1:-1;;;;;1586:58:203;1571:74;;1684:11;;1678:18;1716:15;;;1709:27;;;1797:19;;1543:15;;;1829:24;;;1919:21;;;;1964:1;;1887:2;1875:15;;;1978:282;1994:8;1989:3;1986:17;1978:282;;;2075:15;;2092:66;2071:88;2057:103;;2229:17;;;;2022:1;2013:11;;;;;2186:14;;;;1978:282;;;-1:-1:-1;2346:12:203;;;;2283:5;-1:-1:-1;;;2311:15:203;;;;1345:1;1336:11;1303:1065;;;-1:-1:-1;2385:6:203;;700:1697;-1:-1:-1;;;;;;;;;700:1697:203:o;2402:180::-;2461:6;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;-1:-1:-1;2553:23:203;;2402:180;-1:-1:-1;2402:180:203:o;2587:250::-;2672:1;2682:113;2696:6;2693:1;2690:13;2682:113;;;2772:11;;;2766:18;2753:11;;;2746:39;2718:2;2711:10;2682:113;;;-1:-1:-1;;2829:1:203;2811:16;;2804:27;2587:250::o;2842:330::-;2884:3;2922:5;2916:12;2949:6;2944:3;2937:19;2965:76;3034:6;3027:4;3022:3;3018:14;3011:4;3004:5;3000:16;2965:76;:::i;:::-;3086:2;3074:15;-1:-1:-1;;3070:88:203;3061:98;;;;3161:4;3057:109;;2842:330;-1:-1:-1;;2842:330:203:o;3177:616::-;3229:3;3267:5;3261:12;3294:6;3289:3;3282:19;3320:4;3361:2;3356:3;3352:12;3386:11;3413;3406:18;;3463:6;3460:1;3456:14;3449:5;3445:26;3433:38;;3505:2;3498:5;3494:14;3526:1;3536:231;3550:6;3547:1;3544:13;3536:231;;;3621:5;3615:4;3611:16;3606:3;3599:29;3649:38;3682:4;3673:6;3667:13;3649:38;:::i;:::-;3745:12;;;;3641:46;-1:-1:-1;3710:15:203;;;;3572:1;3565:9;3536:231;;;-1:-1:-1;3783:4:203;;3177:616;-1:-1:-1;;;;;;;3177:616:203:o;3798:280::-;3997:2;3986:9;3979:21;3960:4;4017:55;4068:2;4057:9;4053:18;4045:6;4017:55;:::i;4526:184::-;-1:-1:-1;;;4575:1:203;4568:88;4675:4;4672:1;4665:15;4699:4;4696:1;4689:15;4715:184;-1:-1:-1;;;4764:1:203;4757:88;4864:4;4861:1;4854:15;4888:4;4885:1;4878:15;5228:469;5289:3;5327:5;5321:12;5354:6;5349:3;5342:19;5380:4;5409:2;5404:3;5400:12;5393:19;;5431:5;5428:1;5421:16;5473:2;5470:1;5460:16;5494:1;5504:168;5518:6;5515:1;5512:13;5504:168;;;5579:13;;5567:26;;5613:12;;;;5660:1;5648:14;;;;5533:9;5504:168;;;-1:-1:-1;5688:3:203;;5228:469;-1:-1:-1;;;;;5228:469:203:o;5702:798::-;6091:6;6080:9;6073:25;6134:3;6129:2;6118:9;6114:18;6107:31;6054:4;6161:65;6221:3;6210:9;6206:19;6198:6;6161:65;:::i;:::-;6274:9;6266:6;6262:22;6257:2;6246:9;6242:18;6235:50;6308:33;6334:6;6326;6308:33;:::i;:::-;6294:47;;6377:6;6372:2;6361:9;6357:18;6350:34;6433:9;6425:6;6421:22;6415:3;6404:9;6400:19;6393:51;6461:33;6487:6;6479;6461:33;:::i;6505:368::-;6740:6;6729:9;6722:25;6783:2;6778;6767:9;6763:18;6756:30;6703:4;6803:64;6863:2;6852:9;6848:18;6840:6;6803:64;:::i;6878:722::-;7252:6;7241:9;7234:25;7295:3;7290:2;7279:9;7275:18;7268:31;7215:4;7322:65;7382:3;7371:9;7367:19;7359:6;7322:65;:::i;:::-;7435:4;7427:6;7423:17;7418:2;7407:9;7403:18;7396:45;7489:9;7481:6;7477:22;7472:2;7461:9;7457:18;7450:50;7517:33;7543:6;7535;7517:33;:::i;:::-;7509:41;;;7587:6;7581:3;7570:9;7566:19;7559:35;6878:722;;;;;;;;:::o;8000:368::-;-1:-1:-1;;;;;8209:6:203;8205:55;8194:9;8187:74;8297:2;8292;8281:9;8277:18;8270:30;8168:4;8317:45;8358:2;8347:9;8343:18;8335:6;8317:45;:::i;8626:184::-;-1:-1:-1;;;8675:1:203;8668:88;8775:4;8772:1;8765:15;8799:4;8796:1;8789:15;8815:125;8880:9;;;8901:10;;;8898:36;;;8914:18;;:::i;8945:437::-;9024:1;9020:12;;;;9067;;;9088:61;;9142:4;9134:6;9130:17;9120:27;;9088:61;9195:2;9187:6;9184:14;9164:18;9161:38;9158:218;;-1:-1:-1;;;9229:1:203;9222:88;9333:4;9330:1;9323:15;9361:4;9358:1;9351:15;9689:430;9886:66;9878:6;9874:79;9869:3;9862:92;9844:3;9983:6;9977:13;9999:74;10066:6;10062:1;10057:3;10053:11;10046:4;10038:6;10034:17;9999:74;:::i;:::-;10093:16;;;;10111:1;10089:24;;9689:430;-1:-1:-1;;;9689:430:203:o;10124:287::-;10253:3;10291:6;10285:13;10307:66;10366:6;10361:3;10354:4;10346:6;10342:17;10307:66;:::i;:::-;10389:16;;;;;10124:287;-1:-1:-1;;10124:287:203:o;10416:277::-;10483:6;10536:2;10524:9;10515:7;10511:23;10507:32;10504:52;;;10552:1;10549;10542:12;10504:52;10584:9;10578:16;10637:5;10630:13;10623:21;10616:5;10613:32;10603:60;;10659:1;10656;10649:12;10698:184;-1:-1:-1;;;10747:1:203;10740:88;10847:4;10844:1;10837:15;10871:4;10868:1;10861:15;11500:907;12025:6;12014:9;12007:25;12068:6;12063:2;12052:9;12048:18;12041:34;12111:6;12106:2;12095:9;12091:18;12084:34;12154:6;12149:2;12138:9;12134:18;12127:34;12198:3;12192;12181:9;12177:19;12170:32;11988:4;12225:56;12276:3;12265:9;12261:19;12253:6;12225:56;:::i;:::-;12330:9;12322:6;12318:22;12312:3;12301:9;12297:19;12290:51;12358:43;12394:6;12386;12358:43;:::i;:::-;12350:51;11500:907;-1:-1:-1;;;;;;;;;11500:907:203:o;12412:446::-;12662:2;12651:9;12644:21;12701:1;12696:2;12685:9;12681:18;12674:29;12739:7;12734:2;12723:9;12719:18;12712:35;12785:3;12778:4;12767:9;12763:20;12756:33;12625:4;12806:46;12847:3;12836:9;12832:19;12824:6;12806:46;:::i;13430:348::-;13660:2;13649:9;13642:21;13623:4;13680:49;13725:2;13714:9;13710:18;13343:2;13331:15;;13378:12;13371:4;13362:14;;13355:36;13416:2;13407:12;;13266:159;13680:49;13672:57;;13765:6;13760:2;13749:9;13745:18;13738:34;13430:348;;;;:::o;13947:::-;14177:2;14166:9;14159:21;14140:4;14197:49;14242:2;14231:9;14227:18;13860:2;13848:15;;13895:12;13888:4;13879:14;;13872:36;13933:2;13924:12;;13783:159;14733:780;14783:3;14824:5;14818:12;14853:36;14879:9;14853:36;:::i;:::-;14908:1;14925:18;;;14952:191;;;;15157:1;15152:355;;;;14918:589;;14952:191;15000:66;14989:9;14985:82;14980:3;14973:95;15123:6;15116:14;15109:22;15101:6;15097:35;15092:3;15088:45;15081:52;;14952:191;;15152:355;15183:5;15180:1;15173:16;15212:4;15257:2;15254:1;15244:16;15282:1;15296:165;15310:6;15307:1;15304:13;15296:165;;;15388:14;;15375:11;;;15368:35;15431:16;;;;15325:10;;15296:165;;;15300:3;;;15490:6;15485:3;15481:16;15474:23;;14918:589;;;;;14733:780;;;;:::o;15518:664::-;15868:66;15863:3;15856:79;15838:3;15954:47;15997:2;15992:3;15988:12;15980:6;15954:47;:::i;:::-;16021:66;16010:78;;16117:31;16112:2;16104:11;;16097:52;16173:2;16165:11;;15518:664;-1:-1:-1;;;15518:664:203:o;16187:220::-;16336:2;16325:9;16318:21;16299:4;16356:45;16397:2;16386:9;16382:18;16374:6;16356:45;:::i;16706:694::-;17049:66;17044:3;17037:79;17019:3;17145:6;17139:13;17161:75;17229:6;17224:2;17219:3;17215:12;17208:4;17200:6;17196:17;17161:75;:::i;:::-;17300:66;17295:2;17255:16;;;;17287:11;;;17280:87;-1:-1:-1;17391:2:203;17383:11;;16706:694;-1:-1:-1;16706:694:203:o;17405:545::-;17507:2;17502:3;17499:11;17496:448;;;17543:1;17568:5;17564:2;17557:17;17613:4;17609:2;17599:19;17683:2;17671:10;17667:19;17664:1;17660:27;17654:4;17650:38;17719:4;17707:10;17704:20;17701:47;;;-1:-1:-1;17742:4:203;17701:47;17797:2;17792:3;17788:12;17785:1;17781:20;17775:4;17771:31;17761:41;;17852:82;17870:2;17863:5;17860:13;17852:82;;;17915:17;;;17896:1;17885:13;17852:82;;;17856:3;;;17405:545;;;:::o;18186:1482::-;18312:3;18306:10;18339:18;18331:6;18328:30;18325:56;;;18361:18;;:::i;:::-;18390:97;18480:6;18440:38;18472:4;18466:11;18440:38;:::i;:::-;18434:4;18390:97;:::i;:::-;18542:4;;18606:2;18595:14;;18623:1;18618:793;;;;19455:1;19472:6;19469:89;;;-1:-1:-1;19524:19:203;;;19518:26;19469:89;-1:-1:-1;;18083:1:203;18079:11;;;18075:84;18071:89;18061:100;18167:1;18163:11;;;18058:117;19571:81;;18588:1074;;18618:793;5175:1;5168:14;;;5212:4;5199:18;;-1:-1:-1;;18654:79:203;;;18842:236;18856:7;18853:1;18850:14;18842:236;;;18945:19;;;18939:26;18924:42;;19037:27;;;;19005:1;18993:14;;;;18872:19;;18842:236;;;18846:3;19106:6;19097:7;19094:19;19091:261;;;19167:19;;;19161:26;-1:-1:-1;;19250:1:203;19246:14;;;19262:3;19242:24;19238:97;19234:102;19219:118;19204:134;;19091:261;-1:-1:-1;;;;;19398:1:203;19382:14;;;19378:22;19365:36;;-1:-1:-1;18186:1482:203:o;19673:128::-;19740:9;;;19761:11;;;19758:37;;;19775:18;;:::i;20160:197::-;20288:3;20313:38;20347:3;20339:6;20313:38;:::i;20362:1576::-;20481:3;20475:4;20472:13;20469:26;;20488:5;;20362:1576::o;20469:26::-;20518:37;20550:3;20544:10;20518:37;:::i;:::-;20578:18;20570:6;20567:30;20564:56;;;20600:18;;:::i;:::-;20629:97;20719:6;20679:38;20711:4;20705:11;20679:38;:::i;20629:97::-;20752:1;20780:2;20772:6;20769:14;20797:1;20792:889;;;;21725:1;21742:6;21739:89;;;-1:-1:-1;21794:19:203;;;21788:26;21739:89;-1:-1:-1;;18083:1:203;18079:11;;;18075:84;18071:89;18061:100;18167:1;18163:11;;;18058:117;21841:81;;20762:1170;;20792:889;5175:1;5168:14;;;5212:4;5199:18;;-1:-1:-1;;20828:79:203;;;5175:1;5168:14;;;5212:4;5199:18;;21073:9;21095:251;21109:7;21106:1;21103:14;21095:251;;;21191:21;;;21185:28;21170:44;;21241:1;21314:18;;;;21269:15;;;;21132:4;21125:12;21095:251;;;21099:3;21374:6;21365:7;21362:19;21359:263;;;21435:21;;21429:28;-1:-1:-1;;21532:3:203;21520:1;21516:14;;;21512:24;21508:97;21504:102;21489:118;21474:134;;;-1:-1:-1;;21668:1:203;21652:14;;;21648:22;21635:36;;-1:-1:-1;20362:1576:203:o;23055:606::-;23292:3;23330:6;23324:13;23346:66;23405:6;23400:3;23393:4;23385:6;23381:17;23346:66;:::i;:::-;23434:16;;23459:21;;;23505:13;;23527:81;23505:13;23592:4;23581:16;;;;23562:17;;23527:81;:::i;:::-;23628:20;23650:4;23624:31;;23055:606;-1:-1:-1;;;;;23055:606:203:o;23919:168::-;23992:9;;;24023;;24040:15;;;24034:22;;24020:37;24010:71;;24061:18;;:::i;24092:435::-;24145:3;24183:5;24177:12;24210:6;24205:3;24198:19;24236:4;24265:2;24260:3;24256:12;24249:19;;24302:2;24295:5;24291:14;24323:1;24333:169;24347:6;24344:1;24341:13;24333:169;;;24408:13;;24396:26;;24442:12;;;;24477:15;;;;24369:1;24362:9;24333:169;;24532:441;24794:6;24783:9;24776:25;24837:2;24832;24821:9;24817:18;24810:30;24757:4;24857:56;24909:2;24898:9;24894:18;24886:6;24857:56;:::i;:::-;24849:64;;24961:4;24953:6;24949:17;24944:2;24933:9;24929:18;24922:45;24532:441;;;;;;:::o;24978:673::-;25053:5;25083:18;25124:2;25116:6;25113:14;25110:40;;;25130:18;;:::i;:::-;25264:2;25258:9;25330:2;25318:15;;-1:-1:-1;;25314:24:203;;;25340:2;25310:33;25306:42;25294:55;;;25364:18;;;25384:22;;;25361:46;25358:72;;;25410:18;;:::i;:::-;25450:10;25446:2;25439:22;25479:6;25470:15;;25509:6;25501;25494:22;25549:3;25540:6;25535:3;25531:16;25528:25;25525:45;;;25566:1;25563;25556:12;25525:45;25579:66;25638:6;25631:4;25623:6;25619:17;25614:3;25579:66;:::i;:::-;;;;24978:673;;;;;:::o;25656:457::-;25735:6;25788:2;25776:9;25767:7;25763:23;25759:32;25756:52;;;25804:1;25801;25794:12;25756:52;25837:9;25831:16;25870:18;25862:6;25859:30;25856:50;;;25902:1;25899;25892:12;25856:50;25925:22;;25978:4;25970:13;;25966:27;-1:-1:-1;25956:55:203;;26007:1;26004;25997:12;25956:55;26030:77;26099:7;26094:2;26088:9;26083:2;26079;26075:11;26030:77;:::i;26118:360::-;26321:2;26310:9;26303:21;26284:4;26341:45;26382:2;26371:9;26367:18;26359:6;26341:45;:::i;:::-;26417:2;26402:18;;26395:34;;;;-1:-1:-1;26460:2:203;26445:18;26438:34;26333:53;26118:360;-1:-1:-1;26118:360:203:o;27319:764::-;27709:14;27704:3;27697:27;27679:3;27753:6;27747:13;27769:75;27837:6;27832:2;27827:3;27823:12;27816:4;27808:6;27804:17;27769:75;:::i;:::-;27908:3;27903:2;27863:16;;;27895:11;;;27888:24;27937:13;;27959:76;27937:13;28021:2;28013:11;;28006:4;27994:17;;27959:76;:::i;:::-;28055:17;28074:2;28051:26;;27319:764;-1:-1:-1;;;;27319:764:203:o;28544:184::-;-1:-1:-1;;;28593:1:203;28586:88;28693:4;28690:1;28683:15;28717:4;28714:1;28707:15;28733:639;28983:6;28978:3;28971:19;28953:3;29009:2;29042;29037:3;29033:12;29074:6;29068:13;29139:2;29131:6;29127:15;29160:1;29170:175;29184:6;29181:1;29178:13;29170:175;;;29247:13;;29233:28;;29283:14;;;;29320:15;;;;29206:1;29199:9;29170:175;","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","testGetKeysWithValue(uint256)":"76270d01","testGetKeysWithValueGas()":"39e2edb9","testGetTargetTableId()":"e004c9e9","testInstall()":"786bd7bc","testInstallTwice()":"78cdebf9","testMatchingByteSizes()":"79fe553d","testSetAndDeleteRecordHook()":"4a8cf93d","testSetField()":"615295ee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_TooManyFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"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\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"testGetKeysWithValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetKeysWithValueGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTargetTableId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testInstall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testInstallTwice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testMatchingByteSizes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSetAndDeleteRecordHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSetField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/KeysWithValueModule.t.sol\":\"KeysWithValueModuleTest\"},\"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\":\"0xf0b03a19a92cd2e9950c25b6d307e5aeca4a64be8932194431197d0570e9bf3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef2a14f0fb6e5bcab0c70d3648d247c3919c63eabc8b226be4d1f359d8af860f\",\"dweb:/ipfs/QmXi1HgeUNmS9GwSFMDJa8QVT7KiENG9VjgBB78hpHrHV6\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xe0bc789337c31551a3ad42fd63aba2489a3aa8567d9f3140b3abc9abdc0d2f1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d5313aaa217e563083d9e4ded9479d673b17ba71a189b6a0315839812a5c57a\",\"dweb:/ipfs/QmQJfHFMSPrS6p6q3rzKX6HDNCVsQQAWxGdd383FSfKChd\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x7335db1982f43f867f90c3e151e3cc6d6ad40ee76401e2e06b8fdff257d6526f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a49d381ef0a0defc90f41166bc7f45cf31e8d82d1517e6a323a90e79b4e45d1f\",\"dweb:/ipfs/QmP46aGM8cYPkn6C4rGnrumcg24g7aUzCAez41zPs2rqhx\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xbe6448092b2d0c77a7cb282e8a452732587a6e04802ad21f4da27a9d6ef1496a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d098409f9352637599b897d046ad23e20894ea3a8460687df2a13d2d960966d\",\"dweb:/ipfs/Qmd3w6dSq3kQVQQtH94wcKRzkaNEDWcE2m9bgbWWDqNE3w\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x9c3ba4c889db2cc2155ddfc966f5df45cf73739cacc358e0ed71ee9d34d9cef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bc8e8abc3d5ce2af06c3a9f37ebe69cb287514c4572327b09d26121133646e5\",\"dweb:/ipfs/QmY7BmHTiGAJabiLZXLx2zsRs9HfZzK97kwmnwfCidcHZ5\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0xf2ac4fe9b94aba49819b8bfd9952a73e21bd30aa956aa3a0ba4333d0e4891e91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41b0bb60c662aab1287d0ec92cdd7ce07e6a732ed8d5e6045e14c7ba49d4ce8\",\"dweb:/ipfs/QmYMHVsvJpDrpFW24uHmJFjA8tbr7WjyP4KAFnroApP7Br\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0xd886462cb60be5929d17bed2740225effa8149ef6358378e9e1f385d58673be9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f66f49397097f9445159417fb61bd362de7849b1e572a3a9b5cb0536636a3d9\",\"dweb:/ipfs/QmPYEREcaUyoqykx4hjJG4k3P9HYmAM4gAxvGsJT6yWqvn\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x08f813a47c9b17e647c4051b310fb7b04e2af87c5440f4c916e4e6b5bfb29710\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a7966452656a25e3555e39f10121a69690b0ecf23524c073f61f9ea31a922f3\",\"dweb:/ipfs/QmQiEsLYyZFBZbcAbzwSK2dKxpj7xbs7CPLt3py3uGZSSN\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x5a32d464b56d13b9cf93f15c366e1ba8c4e2242bbad3990829c7f674e49ac2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adf1460050534fbdf4b2615c9dee03aed9d84bc0198cb082b10e579ab01d568e\",\"dweb:/ipfs/Qma2zugjeP748bkmbYhqVrzrKcdn18KLH3TZMfVuhHq2M4\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x6f21b3b6e6c202a1f9a5ba3ce7a656d38b51e1f1755a7ba3d1bc4c083a94aa94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5499fa030ff8dee5db70851dc678a9f0eb7c2a548f27fd5a3ecd0b44038642a\",\"dweb:/ipfs/Qme3ZGKP1YYMt98rFJ8uRRZ2jgWaqNdKAS9HaEP4HYPrB6\"]},\"node_modules/@latticexyz/store/src/StoreData.sol\":{\"keccak256\":\"0x4e451128c33a01d520c1944b3db42a62c158aea8fa11e786a58a0f719a189526\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2f98f30a7b2c9ef020e274b87ae0fa66d1380343a00ecf6bd796ae31cd9b279\",\"dweb:/ipfs/QmYXHSBn4Hp7cimDLKy86ep23v2VRUS6dLPevcVMs3dJrw\"]},\"node_modules/@latticexyz/store/src/StoreHook.sol\":{\"keccak256\":\"0xd267686b3961da4d9a39e2cd39b89d7074ed27a516a03085bb69a6efea0a424e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8c96a99b6c8dab12799165b888ed5c647638a1114bec138dd65ad46c6d1cf34\",\"dweb:/ipfs/QmaMAkfEmRivfHts72hfYiiQiVc15QSRsXkPHM3d2AbFjf\"]},\"node_modules/@latticexyz/store/src/StoreRead.sol\":{\"keccak256\":\"0xd918972009bd009dbad7032b8ff076928cec18c0891bb12493a1799df83e9cfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://966bb2090623b9a6aae0e5df9ae4c9c21bbde97867a239303c934c765eebf738\",\"dweb:/ipfs/QmRui6vJ8UfNHAueDyRuSXfW7wwuxRxAHgGjB7wVJEB6cJ\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x6ba24d7c79f616a40a5a28466a113c3b491196ed43a236124ae9f52f940ebae6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c055a11a1a52d820e5f71c1434b94b2083304d94655d7dbcefb7c7b4e42a095f\",\"dweb:/ipfs/QmUU119ZHn9S3ExK8ZhNyHbdxWMu3RasLDZco9vR9KDQJw\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0x0d5cb177f2e3f968b5d8962727ee95f6ec12f2f02635bd3388e8ba658a513782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1f989b97f782ba8a7b7aa85c79564a4eeca21e8c0c255d287d5a2fb42700e9\",\"dweb:/ipfs/QmXVeQ9p6b8GRMYE8QWPR89xRsMWRQsxPMgQHsUvMWbLeb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x92e5306a8572903c6ed2ede4713de8356221511aaa9043a115010d8dc504d95d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c36a58e47472e86c8b995c33eef1be95c7073d30e8e4b59b4c65413cbe34f695\",\"dweb:/ipfs/QmaHP8apm4XnMSQkMT4Wysu8LxVSnH5JcPne5PV8YPyJNv\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xc1ce9530a25c9e1ebc6a4d1789f26b9607f09b38132a64ced9cfcf34e3011e91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d67414de99946c6c199fce2700a2765e279d4fa9c0ff665035193883221979ee\",\"dweb:/ipfs/QmViGZuPahjSGa18UtAjSXbAao9wuMK4m6hxjtX6pDqqU7\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xe050786c52cfb1da012bba86744d2a89f8aa6507342e498c96fbe013b0d6302f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a62d2f8eb85ddc6de911a0b415bbcf666001ecfd15e681f718cb9ae053a3a793\",\"dweb:/ipfs/QmXZHfKXZNQRJMqLpS15kgZgMfMUkoB8FhypDWDaYaqtJG\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0xca2e2218bccd60ed690f29152b234a553f3021cad4903c0cfb5cf757fa41d650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65f3bf5b851072ba1367ec74b3c66cab6185f3c8c8d6ada007cdc8c513465d25\",\"dweb:/ipfs/QmdHsBNc7ccvTK7VDB9yAktdbRNBrEsUdBNFZTqdq8Vao2\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol\":{\"keccak256\":\"0xfe4f71b7fb06de6ba0913882bd26144aefe4a66574f5e9aac12b998b3354fb06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c68240bf15eeb39641d347ea918607175265965e688bfdf8d87855143c67d47\",\"dweb:/ipfs/QmX1ZSNs8KhqwozScUGCXcQd1g2UqHfpe7XjQotrpef6GC\"]},\"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol\":{\"keccak256\":\"0xf3e2bd87ad4e739859c154c04273b00570d42f4bc7baf811686f55d500131bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1c595200d3c743daa570303bc53a567fa496f58250d40730e49c1ff5d592c07\",\"dweb:/ipfs/Qmd8rfJ2YvqCmPgAm4tuhqzyz9UQ3s6p7ozvqfakwvg86b\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0x963a4fc3983bf92a473e67f49b62b8f52d94360bb904664b24bbff844e6a4a41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cf0ea9f68a1a9738b116259dc2cb06e98cc591d82b2c271b0e70e8daa742952\",\"dweb:/ipfs/QmRVxuBtGgw49v3KGm3HTBNS5ZJ9wEvENwipJEFEtoiaZ4\"]},\"node_modules/@latticexyz/world/src/Delegation.sol\":{\"keccak256\":\"0x09324c2d43eac847a312e1879de1019d1b6eb333d9c9e0d42c449d76f5d9fc89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6f751c31f1305ffb328b1cd4bcc3999439f63f2b8ad9a33bbebdccdf60e716\",\"dweb:/ipfs/QmRfj5xWwC3wzFr9iAQBr1pAQmLYPJhDRXyRcJpYfhDdoE\"]},\"node_modules/@latticexyz/world/src/ERC165Checker.sol\":{\"keccak256\":\"0x26204bcfddbc272eae391f4512a629f53697867d582ea8cabcd6a8e04a255270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46944bac8253250ba3f645a6164df8e996738bc76a544867677e54ede57619a1\",\"dweb:/ipfs/QmY1XSxQY9MuQSEvGaeQT6kqmeJ3VhYyRRTfzCkRmdsWsX\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x9ace961d4e283e0974762fddb14bb15e256d1d1086c813957fa0a0c9abeca900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ce3e6875d5ae61e12f3a36b8cdd2aa42e137f4d356109f89101fc7ea2d38f35\",\"dweb:/ipfs/QmbCarvuyKZhaEKebPnzwxCrXPGZvZB5AnJxfXgCgex9py\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x96b32546011ad67c3d03815dfd9375e9f8a255f98aaf89880afa1c8548d372b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58294560e554b8d8c6e3e870768523aa034631d4908ce25e730bb372ce7795c\",\"dweb:/ipfs/QmU9KfaZRNmQdoZE5bNrMN6QJCm7HGfsCBPvBGbMLLq9E5\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xc7da95c29b6dc76d21ea866139e4cefeceeec094326811a4e5afafe494d6a881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3048f85d42046b460ff285e38091a18ff848a489670e278b233669baecc2d6ef\",\"dweb:/ipfs/QmPbeYVnPefPmtpaXXAGAjEGXjducZf9sF8fKqgfENCpwj\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0xd0060c58956a1fe0855bcd9099e8764922f0d3b96f9683bd9622b8da05524f19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6098c318c6b2606aa0a31554c6dd5923b6c106c24daa2f1119311cd4f4e47bce\",\"dweb:/ipfs/QmZTSSpfmNWakCYvFFZhd7zjmnkNPuSeYKhfCQwZ2gjRWL\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x2ec34d896ea59d4bd47b99c1c1476c9c8f94f21d8af5f35ceebfeced4dd48ec2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97dc97678b209c5e69d8b45adb3fe8c8d8b8fffbd725a8deb462c790a6a58a01\",\"dweb:/ipfs/QmbUntQJj9n55PDjXcdJtmsWSPdWzyhbe6UCK9iHJuq3XM\"]},\"node_modules/@latticexyz/world/src/World.sol\":{\"keccak256\":\"0x2fa1e13f367a2110bce824ed5fc8b3d74cf60b0075492a7831dc887fc47de54b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7afd2c5fddf3d635a25a03aeb34991036ec8a9a59f44ea323f8c1f3f17bbf14\",\"dweb:/ipfs/QmbYiNvJmD8mCjeAY83Jebb54dTcgYd4Knr9jbKnMcDwf6\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0x7daa706e844ddc2ffa9ff2197139fa73faee614030c5d541e339c219129005ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62da4413068810e6fa32ef87b2a83386a0084ec2bb26722515127e5893281cbc\",\"dweb:/ipfs/Qma5SLsHRq3igdXfKz24XSGfMd3dXyNxv52WSTsrcLRWPV\"]},\"node_modules/@latticexyz/world/src/codegen/index.sol\":{\"keccak256\":\"0x01fd0a07213a3f79997c859ae5f8c19fc3f1cc3a0fe7201b50c3e32082538610\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://902a6bc854a9b0134a97e47dea61a330c0e24d5eb315615c21c879b57c5da7c8\",\"dweb:/ipfs/Qmcx9Zr24GbnrRvEFMGgyzZcwmeXxbyz87Lb8BonKRW6PX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf103db760a912d42dac0c409feb2d1929864ae81f89a7186047ea6f98b9db2ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ee556bbf7f7aa2f221e1f5a9d80caca8d4e5bc9282f59d5611a7c9ea7c06024\",\"dweb:/ipfs/QmQouopBhk5VuzdUSVc9MC3C5nhbm1MgHmQhemf6w66WxE\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreRegistrationSystem.sol\":{\"keccak256\":\"0xb5e41596b245dbb0f4317174ae08c963a55df07cfd1a2e65bd082628bc446350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://007f0e50c7f40d3932c5db51f729148f7d67573ef2f429043d901c7b017d7f43\",\"dweb:/ipfs/QmdmnY9RFyGjhmjSif3wZYHSMhtkTNhxi74dzVzsQBgi2N\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x2fd9727c04a06dacd957c320e5c91844e389df164a02f6c35e169852d974a1f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfab99486f9011db6590d75947a8510540bc5d6160866cfd1fafe16daa024961\",\"dweb:/ipfs/QmPAyaKJwhawWcyegfHv1QkJYzdAMpySok2gDKVPpw1rvD\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x8bcbbd417bc83b92c1d40444cf2e617d8a5c7e4d7486dcc3467fef2470338bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedd3d896ccc900aa9a4f53ec7a9245e5630f51e847a0e2356e12e4492084a8e\",\"dweb:/ipfs/QmRQJwy5XYHGXT973hYdPUR6cG8fSDPi8kPgprYJXUfuVf\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSignatures.sol\":{\"keccak256\":\"0xed3112d1dfeb8afa9be21cc3bf70f7af31b0443e9579f080e7ac2640664b8426\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571277bf66022fb97fb43948379b560c6d6904dc0272f91b30d3ab16a5b76c91\",\"dweb:/ipfs/QmNhb9rrrW8KXzLfg3eiUR86hnRhaD2kzN5mAcWuWQ4pu5\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0x334f30cf5cac3f795cd63f15582a6a50c91c91644000a1a5c3005a4c17b075ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79369df71ea24d4eb6579f9edc5ac3f8c8d4fe2563db7438c957f7cd8fd696d4\",\"dweb:/ipfs/QmZBQv6xBpXWocxy4nX5o8XJYuvi88y69YmHJYUGgGFRN9\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceDelegationControl.sol\":{\"keccak256\":\"0x760eec42bbfbdb497a80fa704956c82bca38d21ee220a1671ac7fc1364ddc0ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://313982b1791750271b460fa94c3ea54eeb2d88b3093ab2cace6014a6c9ee387b\",\"dweb:/ipfs/QmVagcNagZkFZeVieECp53rjZEYBB6LU8HP4BjKzfiC4Qr\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb59422d88ec4d7ea5870bfbcd26cce216808aca2524d78be044e6246c2e0c8cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://690489521124436a18dd3b2efc1c28636488414b82c6dabf743bde1c8f9ab70b\",\"dweb:/ipfs/Qma89LxYq3aBdNZnsiH2qKuq47gmSn9QpeoFe23pahus5Z\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xa6dd49d8d3bc8ce68d45ebc01f087ef83b1d758e9967322fd15cf641331c2527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a80f0382a7bad47b1b947bc9b447eafb35599b0e11a9bdcb45c7cddb3bc1375a\",\"dweb:/ipfs/QmRBWAsqUya6uxXn5fqJPgnkytDfp8HXixcymwTmYKuoPc\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0x43cb675401e3e464a93ae0ddaefdb6ac03b734b7226ba89b8727d6421e50e2e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a37a9d6881779113b1b78b0e9175b64089da881be1176fc764ceaee9fc65436\",\"dweb:/ipfs/QmXgCyyJUAAn99Czgv51nkr6qi9hFduhJpybkn95ipJHJL\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xd0128bfb43b2afdc0c0410b6a642ce7b5ae4e5c90c367e542ea0b3e8d02eba22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59fd7075792470f625e15e7c7a5d377b6657b26ce22a82c705888c2773840330\",\"dweb:/ipfs/QmdPygA9VW1Zdds4FTejEDSEKzaPWDFvXP1VqsaJB6KF8q\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x20ad3ee26ef118cb8b055803c4a5ef2aac4791ce9e8720fc6a549120c53ab37a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c1a2e3abb381a36696aeb3588a2604706e88b8505caddbdb696f96249e6231\",\"dweb:/ipfs/QmQvPVUFGBRpbaK9et2L7rVVmCByD1gDhaFvtJNL7cM7d2\"]},\"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol\":{\"keccak256\":\"0xa9a5ebaa93ce6fe8b1f2cef5fd1350ea755d2ab0ff7ae2a5c369e493c2d205d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba46cddd36f4a69e120e11edb0cbb8cd8d8363636544fe21e9712e41786f231\",\"dweb:/ipfs/Qmc87CiTYDULyEwTZmbfHcrqx2gNRrkSakYdS6wRXi7LQN\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/CoreModule.sol\":{\"keccak256\":\"0x1854f68cb404adb13910c7cb5dc91b4db83b33705a92717485df16742acfac43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1119dea8f6a76977e6327b789fae9023eedd63df9a50b6a7b4c6190f02de10a9\",\"dweb:/ipfs/QmXJ6YthgxX5ybpCgcECBHC2uPnycnC7mzh3KTbF9vZWDz\"]},\"node_modules/@latticexyz/world/src/modules/core/CoreRegistrationSystem.sol\":{\"keccak256\":\"0x4969fab8e65df062b3ee1d5c55c5dc980b4c8d531a90977e5f318500eafe2125\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ca575dec2084e8ec0558c6866af383fea4f5111079f06db8c78b1a7dc78417\",\"dweb:/ipfs/QmZCHfyhMQ4Z4sJvW9uzYhuTNTThoRwH8Usqx6q95AbNSb\"]},\"node_modules/@latticexyz/world/src/modules/core/constants.sol\":{\"keccak256\":\"0xbe6408440b758884cfff869ae6c8aefa476ab97b07855dd51571bb358e9ecae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854427618d6d700c2dbba45cc475bd341b14612d4dc05af687371dc725e0a11e\",\"dweb:/ipfs/QmXueKPv6WDyAwjwej5XHnBTMQeUYEbtgNryqt4Tnsj3sK\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/AccessManagementSystem.sol\":{\"keccak256\":\"0x29cd0f1a2ec749bc25774682977cad4dd238602a3b4e926cc08bb7781fabf2bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d1f0b23e9ed303b543e943abcb5641d0744e2c1ae003df6dea877a070f96e0\",\"dweb:/ipfs/QmfQj5P8Lw6DfMfVnhsAaDCtN6iYfKp8V4uxX5LQQnzxLo\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/BalanceTransferSystem.sol\":{\"keccak256\":\"0x8170eb46e9716b8040b9a95d8740e1e897538afb1da95a1994cba7907522b4fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b19dbd9f3ca1f541883879985589095f851bdd201d9cdde2d6742dda9ad01a2e\",\"dweb:/ipfs/QmTgSMvsVFAEMK72D7myoJtEykDxAMweueJNEagSChyA1Y\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/BatchCallSystem.sol\":{\"keccak256\":\"0xf24b9cc96cccb8ef98c9aa8585e4a5c003b3b8a00c5a9c6db5c750460960a7d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa918bcba66835a0866a11c5b43b5da11d68fb68c697f89a273d5dd3a5f1f5c\",\"dweb:/ipfs/QmZyyVdNoUiyLMimmNkZkQv5o86k4sGyo1CGEMrt794eC2\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/ModuleInstallationSystem.sol\":{\"keccak256\":\"0xc9b0efce92d9be51ff564fa18efc13365a64cde8dd2e2ef88bac4abe7d432a3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86d2a49cc96ad7e783490c6e44aa2d078444505edc49d1061711200a607441a6\",\"dweb:/ipfs/QmbKkJnRkUE47uWwmhqqmaVozRXLt45ebSZbZnpJpnJfvj\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/StoreRegistrationSystem.sol\":{\"keccak256\":\"0xf7edf07894b8c6938b77491d36944d22b37b9e9e8105a689120f66e76450d3dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55be67cb294109fbb9a323c5f788aa7d1b844f7bc57f5bed6b758d2d80447a24\",\"dweb:/ipfs/QmUv8FwmcV6mP2o7aZiZkRxrnQdnaRLYiFWs8ifaEadKJr\"]},\"node_modules/@latticexyz/world/src/modules/core/implementations/WorldRegistrationSystem.sol\":{\"keccak256\":\"0xbae6190d740add0ee986f82b1143f8f160d232e0f3c2eb4d7908040f07b45427\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://022b092b8757770e5799d22de9b09b774f6ecae9820e91847f794785fbdf7198\",\"dweb:/ipfs/QmaSUvvjFYZT2NmNUQJer7L9qAz4P1KJVQ8Z2Giro9Cpxm\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/requireInterface.sol\":{\"keccak256\":\"0x229777eeaac1099104e10832f59bc02f3494a5b6de8225810a3b175643d97039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bf7e4df65be1808418d8dbb1decb346ec2a3b7a11b895818ae90f319522f795\",\"dweb:/ipfs/Qmco2UnqR9oop9ppY2Zbv1LWCQKGM99A7j6iWGsMCrwSmy\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0xdd201aa30700e70c35c1d4e50c375e511d798961183c8531f947c2d15969debb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9c165b1beb7c1d3f75107407c34a5b3424ec8cb322d494892bceed23323ffb9\",\"dweb:/ipfs/QmdH8rtgJaENsMc6HodAbahKg7PiZUJwoZufnHCw3TwrBx\"]},\"node_modules/@latticexyz/world/src/version.sol\":{\"keccak256\":\"0x5db84611779a814a582b5559f636640e3599dba1f36b99c529a19ce73b2d2d44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b06ae2f3b888ba3dc719b2d19f60deb7c3398324f636c9dad0b92706dfc08f5a\",\"dweb:/ipfs/QmaLgppohesJhF3ZdMWwM8NHcLiv8SRSCArS4QssfG2dC1\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xc7e0aa6e4746b2d0e2eace7e462adf2f03dbc7f0c880794a577bfdbce426fcc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7538caf090fc69fff272049cfc00d0f35ae63ee700c2091b9cc4ed5709a3b45\",\"dweb:/ipfs/QmYriK2VpsVAePPLTP6mDZkTYMT9AkgmC2C93ktjVMDaP4\"]},\"node_modules/@latticexyz/world/test/createCoreModule.sol\":{\"keccak256\":\"0xb0baab0e9c67c1b945a95291aed4e16cf73ed7b95bc671076fd1a7d960e043d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b603f7c656fed7e592cd598ca94ac46fab6ed31a6d951cf4661bc7f3f24166f2\",\"dweb:/ipfs/QmeNDUPYh3yuUj6oQ19VgKYruY1kDWenNhywzWYXeuxy39\"]},\"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/modules/keyswithvalue/KeysWithValueHook.sol\":{\"keccak256\":\"0xee64527269e80d32ca25db99c417f582a0b134c9fb878cf14489baa2aaec40e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37714f1fa7cf984130a08a0e9f320817cbe0053eae44d432676951f3b90653f\",\"dweb:/ipfs/QmZjWVwJPrsscv9zJU8jBfMn39yDquYePcACRYQW6qiaFx\"]},\"src/modules/keyswithvalue/KeysWithValueModule.sol\":{\"keccak256\":\"0x7d1be4afa4605e30f6381dd7a600d149652ca34c38f0bc11cbdb471e332f2101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f31e9c2d2c014abec416191b92aaf6a73e0cf96f5b8ef2ac9352d5c33fc7d06\",\"dweb:/ipfs/QmVHBiNqQCNuycj6vEEfCtD2JScDBr3RHTUo31jrXRg5MK\"]},\"src/modules/keyswithvalue/constants.sol\":{\"keccak256\":\"0xf8745d975bd2f321e676d083a215513b114c70f7d5a105244dfe444a78e74de5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7fc161f890a9ee2edf731f57fcfee2ab4e3b4bebb9470df7850a138c08fc2c8\",\"dweb:/ipfs/QmVyyFaR1tzTYgmiGHnumdXQKsjb5qRVPMS3uTRX1ik3XL\"]},\"src/modules/keyswithvalue/getKeysWithValue.sol\":{\"keccak256\":\"0xe3257d260cd8265b4de124487be15fb57afd665ddf82c4ef23abbfc82a112fb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c467264fe3e4cb0d67e9290bbcf82b5519a8b55930a7f9dd40f97abf8fc14ef4\",\"dweb:/ipfs/Qmd7E7mv2UeWnaMFEcCkwvDGxnrogS4voPkskvpZZg25Gv\"]},\"src/modules/keyswithvalue/getTargetTableId.sol\":{\"keccak256\":\"0xa7d235a9c96925a340aeaa166c8b67d289b4450ca59f0645052207d318030d78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dce50e51faa63a75e051d8ccf463271674f588088fca6ab168e06a5fe8cc16b\",\"dweb:/ipfs/QmP2eZFJPMiazcEhdv9Q5SJYRNna7CHoV6o8bxURzRtCHh\"]},\"src/modules/keyswithvalue/tables/KeysWithValue.sol\":{\"keccak256\":\"0x299bc2f1d01b60296358eeab8f45246dcde05f33fa90491bcb75369179295722\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a8b2191c6de0ba782759c15b1ba35bbb769a0b77f3ba4f1f0c6b56249abfb47\",\"dweb:/ipfs/QmRaYb73HShtmrkmrjSWkkUfgbFvwzK4VroACQT2LSGkqM\"]},\"src/modules/utils/ArrayLib.sol\":{\"keccak256\":\"0x5063027c39c927b80c84ac3bb36d20e19fbbddb746380c1efaf2f33f6fec30b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c49eab76687709db420cbe52737610563f44344ef13608e0809e38c43179cb43\",\"dweb:/ipfs/QmRdQ7iW5j51AVJWin8aaKmj6Xj97ZV5vjfVjG5RqYG5xB\"]},\"test/KeysWithValueModule.t.sol\":{\"keccak256\":\"0xd699ce5d6b8f8eb941e1db4d31f6cd31100a733ae7bd26f669f49028504f94cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb132276a416734f1644c391457910fac374babea6937ea9d9ed2726d3db3591\",\"dweb:/ipfs/QmUpw56k1b2tmrF2imGQoAWg3ETH9xf3VTQinrAgCmF5gw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayoutLib_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayoutLib_TooManyFields"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"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":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testGetKeysWithValue"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetKeysWithValueGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTargetTableId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testInstall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testInstallTwice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testMatchingByteSizes"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSetAndDeleteRecordHook"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSetField"}],"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/KeysWithValueModule.t.sol":"KeysWithValueModuleTest"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/gas-report/src/GasReporter.sol":{"keccak256":"0xf0b03a19a92cd2e9950c25b6d307e5aeca4a64be8932194431197d0570e9bf3b","urls":["bzz-raw://ef2a14f0fb6e5bcab0c70d3648d247c3919c63eabc8b226be4d1f359d8af860f","dweb:/ipfs/QmXi1HgeUNmS9GwSFMDJa8QVT7KiENG9VjgBB78hpHrHV6"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xe0bc789337c31551a3ad42fd63aba2489a3aa8567d9f3140b3abc9abdc0d2f1b","urls":["bzz-raw://6d5313aaa217e563083d9e4ded9479d673b17ba71a189b6a0315839812a5c57a","dweb:/ipfs/QmQJfHFMSPrS6p6q3rzKX6HDNCVsQQAWxGdd383FSfKChd"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x7335db1982f43f867f90c3e151e3cc6d6ad40ee76401e2e06b8fdff257d6526f","urls":["bzz-raw://a49d381ef0a0defc90f41166bc7f45cf31e8d82d1517e6a323a90e79b4e45d1f","dweb:/ipfs/QmP46aGM8cYPkn6C4rGnrumcg24g7aUzCAez41zPs2rqhx"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xbe6448092b2d0c77a7cb282e8a452732587a6e04802ad21f4da27a9d6ef1496a","urls":["bzz-raw://1d098409f9352637599b897d046ad23e20894ea3a8460687df2a13d2d960966d","dweb:/ipfs/Qmd3w6dSq3kQVQQtH94wcKRzkaNEDWcE2m9bgbWWDqNE3w"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x9c3ba4c889db2cc2155ddfc966f5df45cf73739cacc358e0ed71ee9d34d9cef9","urls":["bzz-raw://0bc8e8abc3d5ce2af06c3a9f37ebe69cb287514c4572327b09d26121133646e5","dweb:/ipfs/QmY7BmHTiGAJabiLZXLx2zsRs9HfZzK97kwmnwfCidcHZ5"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0xf2ac4fe9b94aba49819b8bfd9952a73e21bd30aa956aa3a0ba4333d0e4891e91","urls":["bzz-raw://c41b0bb60c662aab1287d0ec92cdd7ce07e6a732ed8d5e6045e14c7ba49d4ce8","dweb:/ipfs/QmYMHVsvJpDrpFW24uHmJFjA8tbr7WjyP4KAFnroApP7Br"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0xd886462cb60be5929d17bed2740225effa8149ef6358378e9e1f385d58673be9","urls":["bzz-raw://6f66f49397097f9445159417fb61bd362de7849b1e572a3a9b5cb0536636a3d9","dweb:/ipfs/QmPYEREcaUyoqykx4hjJG4k3P9HYmAM4gAxvGsJT6yWqvn"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0x08f813a47c9b17e647c4051b310fb7b04e2af87c5440f4c916e4e6b5bfb29710","urls":["bzz-raw://0a7966452656a25e3555e39f10121a69690b0ecf23524c073f61f9ea31a922f3","dweb:/ipfs/QmQiEsLYyZFBZbcAbzwSK2dKxpj7xbs7CPLt3py3uGZSSN"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x5a32d464b56d13b9cf93f15c366e1ba8c4e2242bbad3990829c7f674e49ac2f7","urls":["bzz-raw://adf1460050534fbdf4b2615c9dee03aed9d84bc0198cb082b10e579ab01d568e","dweb:/ipfs/Qma2zugjeP748bkmbYhqVrzrKcdn18KLH3TZMfVuhHq2M4"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x6f21b3b6e6c202a1f9a5ba3ce7a656d38b51e1f1755a7ba3d1bc4c083a94aa94","urls":["bzz-raw://e5499fa030ff8dee5db70851dc678a9f0eb7c2a548f27fd5a3ecd0b44038642a","dweb:/ipfs/Qme3ZGKP1YYMt98rFJ8uRRZ2jgWaqNdKAS9HaEP4HYPrB6"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreData.sol":{"keccak256":"0x4e451128c33a01d520c1944b3db42a62c158aea8fa11e786a58a0f719a189526","urls":["bzz-raw://c2f98f30a7b2c9ef020e274b87ae0fa66d1380343a00ecf6bd796ae31cd9b279","dweb:/ipfs/QmYXHSBn4Hp7cimDLKy86ep23v2VRUS6dLPevcVMs3dJrw"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreHook.sol":{"keccak256":"0xd267686b3961da4d9a39e2cd39b89d7074ed27a516a03085bb69a6efea0a424e","urls":["bzz-raw://c8c96a99b6c8dab12799165b888ed5c647638a1114bec138dd65ad46c6d1cf34","dweb:/ipfs/QmaMAkfEmRivfHts72hfYiiQiVc15QSRsXkPHM3d2AbFjf"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreRead.sol":{"keccak256":"0xd918972009bd009dbad7032b8ff076928cec18c0891bb12493a1799df83e9cfa","urls":["bzz-raw://966bb2090623b9a6aae0e5df9ae4c9c21bbde97867a239303c934c765eebf738","dweb:/ipfs/QmRui6vJ8UfNHAueDyRuSXfW7wwuxRxAHgGjB7wVJEB6cJ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0x6ba24d7c79f616a40a5a28466a113c3b491196ed43a236124ae9f52f940ebae6","urls":["bzz-raw://c055a11a1a52d820e5f71c1434b94b2083304d94655d7dbcefb7c7b4e42a095f","dweb:/ipfs/QmUU119ZHn9S3ExK8ZhNyHbdxWMu3RasLDZco9vR9KDQJw"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0x0d5cb177f2e3f968b5d8962727ee95f6ec12f2f02635bd3388e8ba658a513782","urls":["bzz-raw://6c1f989b97f782ba8a7b7aa85c79564a4eeca21e8c0c255d287d5a2fb42700e9","dweb:/ipfs/QmXVeQ9p6b8GRMYE8QWPR89xRsMWRQsxPMgQHsUvMWbLeb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0x92e5306a8572903c6ed2ede4713de8356221511aaa9043a115010d8dc504d95d","urls":["bzz-raw://c36a58e47472e86c8b995c33eef1be95c7073d30e8e4b59b4c65413cbe34f695","dweb:/ipfs/QmaHP8apm4XnMSQkMT4Wysu8LxVSnH5JcPne5PV8YPyJNv"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xc1ce9530a25c9e1ebc6a4d1789f26b9607f09b38132a64ced9cfcf34e3011e91","urls":["bzz-raw://d67414de99946c6c199fce2700a2765e279d4fa9c0ff665035193883221979ee","dweb:/ipfs/QmViGZuPahjSGa18UtAjSXbAao9wuMK4m6hxjtX6pDqqU7"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xe050786c52cfb1da012bba86744d2a89f8aa6507342e498c96fbe013b0d6302f","urls":["bzz-raw://a62d2f8eb85ddc6de911a0b415bbcf666001ecfd15e681f718cb9ae053a3a793","dweb:/ipfs/QmXZHfKXZNQRJMqLpS15kgZgMfMUkoB8FhypDWDaYaqtJG"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0xca2e2218bccd60ed690f29152b234a553f3021cad4903c0cfb5cf757fa41d650","urls":["bzz-raw://65f3bf5b851072ba1367ec74b3c66cab6185f3c8c8d6ada007cdc8c513465d25","dweb:/ipfs/QmdHsBNc7ccvTK7VDB9yAktdbRNBrEsUdBNFZTqdq8Vao2"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol":{"keccak256":"0xfe4f71b7fb06de6ba0913882bd26144aefe4a66574f5e9aac12b998b3354fb06","urls":["bzz-raw://3c68240bf15eeb39641d347ea918607175265965e688bfdf8d87855143c67d47","dweb:/ipfs/QmX1ZSNs8KhqwozScUGCXcQd1g2UqHfpe7XjQotrpef6GC"],"license":"MIT"},"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol":{"keccak256":"0xf3e2bd87ad4e739859c154c04273b00570d42f4bc7baf811686f55d500131bbf","urls":["bzz-raw://a1c595200d3c743daa570303bc53a567fa496f58250d40730e49c1ff5d592c07","dweb:/ipfs/Qmd8rfJ2YvqCmPgAm4tuhqzyz9UQ3s6p7ozvqfakwvg86b"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0x963a4fc3983bf92a473e67f49b62b8f52d94360bb904664b24bbff844e6a4a41","urls":["bzz-raw://2cf0ea9f68a1a9738b116259dc2cb06e98cc591d82b2c271b0e70e8daa742952","dweb:/ipfs/QmRVxuBtGgw49v3KGm3HTBNS5ZJ9wEvENwipJEFEtoiaZ4"],"license":"MIT"},"node_modules/@latticexyz/world/src/Delegation.sol":{"keccak256":"0x09324c2d43eac847a312e1879de1019d1b6eb333d9c9e0d42c449d76f5d9fc89","urls":["bzz-raw://bd6f751c31f1305ffb328b1cd4bcc3999439f63f2b8ad9a33bbebdccdf60e716","dweb:/ipfs/QmRfj5xWwC3wzFr9iAQBr1pAQmLYPJhDRXyRcJpYfhDdoE"],"license":"MIT"},"node_modules/@latticexyz/world/src/ERC165Checker.sol":{"keccak256":"0x26204bcfddbc272eae391f4512a629f53697867d582ea8cabcd6a8e04a255270","urls":["bzz-raw://46944bac8253250ba3f645a6164df8e996738bc76a544867677e54ede57619a1","dweb:/ipfs/QmY1XSxQY9MuQSEvGaeQT6kqmeJ3VhYyRRTfzCkRmdsWsX"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x9ace961d4e283e0974762fddb14bb15e256d1d1086c813957fa0a0c9abeca900","urls":["bzz-raw://3ce3e6875d5ae61e12f3a36b8cdd2aa42e137f4d356109f89101fc7ea2d38f35","dweb:/ipfs/QmbCarvuyKZhaEKebPnzwxCrXPGZvZB5AnJxfXgCgex9py"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x96b32546011ad67c3d03815dfd9375e9f8a255f98aaf89880afa1c8548d372b9","urls":["bzz-raw://c58294560e554b8d8c6e3e870768523aa034631d4908ce25e730bb372ce7795c","dweb:/ipfs/QmU9KfaZRNmQdoZE5bNrMN6QJCm7HGfsCBPvBGbMLLq9E5"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xc7da95c29b6dc76d21ea866139e4cefeceeec094326811a4e5afafe494d6a881","urls":["bzz-raw://3048f85d42046b460ff285e38091a18ff848a489670e278b233669baecc2d6ef","dweb:/ipfs/QmPbeYVnPefPmtpaXXAGAjEGXjducZf9sF8fKqgfENCpwj"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0xd0060c58956a1fe0855bcd9099e8764922f0d3b96f9683bd9622b8da05524f19","urls":["bzz-raw://6098c318c6b2606aa0a31554c6dd5923b6c106c24daa2f1119311cd4f4e47bce","dweb:/ipfs/QmZTSSpfmNWakCYvFFZhd7zjmnkNPuSeYKhfCQwZ2gjRWL"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x2ec34d896ea59d4bd47b99c1c1476c9c8f94f21d8af5f35ceebfeced4dd48ec2","urls":["bzz-raw://97dc97678b209c5e69d8b45adb3fe8c8d8b8fffbd725a8deb462c790a6a58a01","dweb:/ipfs/QmbUntQJj9n55PDjXcdJtmsWSPdWzyhbe6UCK9iHJuq3XM"],"license":"MIT"},"node_modules/@latticexyz/world/src/World.sol":{"keccak256":"0x2fa1e13f367a2110bce824ed5fc8b3d74cf60b0075492a7831dc887fc47de54b","urls":["bzz-raw://a7afd2c5fddf3d635a25a03aeb34991036ec8a9a59f44ea323f8c1f3f17bbf14","dweb:/ipfs/QmbYiNvJmD8mCjeAY83Jebb54dTcgYd4Knr9jbKnMcDwf6"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0x7daa706e844ddc2ffa9ff2197139fa73faee614030c5d541e339c219129005ff","urls":["bzz-raw://62da4413068810e6fa32ef87b2a83386a0084ec2bb26722515127e5893281cbc","dweb:/ipfs/Qma5SLsHRq3igdXfKz24XSGfMd3dXyNxv52WSTsrcLRWPV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/index.sol":{"keccak256":"0x01fd0a07213a3f79997c859ae5f8c19fc3f1cc3a0fe7201b50c3e32082538610","urls":["bzz-raw://902a6bc854a9b0134a97e47dea61a330c0e24d5eb315615c21c879b57c5da7c8","dweb:/ipfs/Qmcx9Zr24GbnrRvEFMGgyzZcwmeXxbyz87Lb8BonKRW6PX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf103db760a912d42dac0c409feb2d1929864ae81f89a7186047ea6f98b9db2ed","urls":["bzz-raw://9ee556bbf7f7aa2f221e1f5a9d80caca8d4e5bc9282f59d5611a7c9ea7c06024","dweb:/ipfs/QmQouopBhk5VuzdUSVc9MC3C5nhbm1MgHmQhemf6w66WxE"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreRegistrationSystem.sol":{"keccak256":"0xb5e41596b245dbb0f4317174ae08c963a55df07cfd1a2e65bd082628bc446350","urls":["bzz-raw://007f0e50c7f40d3932c5db51f729148f7d67573ef2f429043d901c7b017d7f43","dweb:/ipfs/QmdmnY9RFyGjhmjSif3wZYHSMhtkTNhxi74dzVzsQBgi2N"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x2fd9727c04a06dacd957c320e5c91844e389df164a02f6c35e169852d974a1f8","urls":["bzz-raw://cfab99486f9011db6590d75947a8510540bc5d6160866cfd1fafe16daa024961","dweb:/ipfs/QmPAyaKJwhawWcyegfHv1QkJYzdAMpySok2gDKVPpw1rvD"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x8bcbbd417bc83b92c1d40444cf2e617d8a5c7e4d7486dcc3467fef2470338bcb","urls":["bzz-raw://aedd3d896ccc900aa9a4f53ec7a9245e5630f51e847a0e2356e12e4492084a8e","dweb:/ipfs/QmRQJwy5XYHGXT973hYdPUR6cG8fSDPi8kPgprYJXUfuVf"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSignatures.sol":{"keccak256":"0xed3112d1dfeb8afa9be21cc3bf70f7af31b0443e9579f080e7ac2640664b8426","urls":["bzz-raw://571277bf66022fb97fb43948379b560c6d6904dc0272f91b30d3ab16a5b76c91","dweb:/ipfs/QmNhb9rrrW8KXzLfg3eiUR86hnRhaD2kzN5mAcWuWQ4pu5"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0x334f30cf5cac3f795cd63f15582a6a50c91c91644000a1a5c3005a4c17b075ac","urls":["bzz-raw://79369df71ea24d4eb6579f9edc5ac3f8c8d4fe2563db7438c957f7cd8fd696d4","dweb:/ipfs/QmZBQv6xBpXWocxy4nX5o8XJYuvi88y69YmHJYUGgGFRN9"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceDelegationControl.sol":{"keccak256":"0x760eec42bbfbdb497a80fa704956c82bca38d21ee220a1671ac7fc1364ddc0ed","urls":["bzz-raw://313982b1791750271b460fa94c3ea54eeb2d88b3093ab2cace6014a6c9ee387b","dweb:/ipfs/QmVagcNagZkFZeVieECp53rjZEYBB6LU8HP4BjKzfiC4Qr"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb59422d88ec4d7ea5870bfbcd26cce216808aca2524d78be044e6246c2e0c8cd","urls":["bzz-raw://690489521124436a18dd3b2efc1c28636488414b82c6dabf743bde1c8f9ab70b","dweb:/ipfs/Qma89LxYq3aBdNZnsiH2qKuq47gmSn9QpeoFe23pahus5Z"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xa6dd49d8d3bc8ce68d45ebc01f087ef83b1d758e9967322fd15cf641331c2527","urls":["bzz-raw://a80f0382a7bad47b1b947bc9b447eafb35599b0e11a9bdcb45c7cddb3bc1375a","dweb:/ipfs/QmRBWAsqUya6uxXn5fqJPgnkytDfp8HXixcymwTmYKuoPc"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0x43cb675401e3e464a93ae0ddaefdb6ac03b734b7226ba89b8727d6421e50e2e8","urls":["bzz-raw://6a37a9d6881779113b1b78b0e9175b64089da881be1176fc764ceaee9fc65436","dweb:/ipfs/QmXgCyyJUAAn99Czgv51nkr6qi9hFduhJpybkn95ipJHJL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xd0128bfb43b2afdc0c0410b6a642ce7b5ae4e5c90c367e542ea0b3e8d02eba22","urls":["bzz-raw://59fd7075792470f625e15e7c7a5d377b6657b26ce22a82c705888c2773840330","dweb:/ipfs/QmdPygA9VW1Zdds4FTejEDSEKzaPWDFvXP1VqsaJB6KF8q"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x20ad3ee26ef118cb8b055803c4a5ef2aac4791ce9e8720fc6a549120c53ab37a","urls":["bzz-raw://58c1a2e3abb381a36696aeb3588a2604706e88b8505caddbdb696f96249e6231","dweb:/ipfs/QmQvPVUFGBRpbaK9et2L7rVVmCByD1gDhaFvtJNL7cM7d2"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol":{"keccak256":"0xa9a5ebaa93ce6fe8b1f2cef5fd1350ea755d2ab0ff7ae2a5c369e493c2d205d5","urls":["bzz-raw://5ba46cddd36f4a69e120e11edb0cbb8cd8d8363636544fe21e9712e41786f231","dweb:/ipfs/Qmc87CiTYDULyEwTZmbfHcrqx2gNRrkSakYdS6wRXi7LQN"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/CoreModule.sol":{"keccak256":"0x1854f68cb404adb13910c7cb5dc91b4db83b33705a92717485df16742acfac43","urls":["bzz-raw://1119dea8f6a76977e6327b789fae9023eedd63df9a50b6a7b4c6190f02de10a9","dweb:/ipfs/QmXJ6YthgxX5ybpCgcECBHC2uPnycnC7mzh3KTbF9vZWDz"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/CoreRegistrationSystem.sol":{"keccak256":"0x4969fab8e65df062b3ee1d5c55c5dc980b4c8d531a90977e5f318500eafe2125","urls":["bzz-raw://94ca575dec2084e8ec0558c6866af383fea4f5111079f06db8c78b1a7dc78417","dweb:/ipfs/QmZCHfyhMQ4Z4sJvW9uzYhuTNTThoRwH8Usqx6q95AbNSb"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/constants.sol":{"keccak256":"0xbe6408440b758884cfff869ae6c8aefa476ab97b07855dd51571bb358e9ecae0","urls":["bzz-raw://854427618d6d700c2dbba45cc475bd341b14612d4dc05af687371dc725e0a11e","dweb:/ipfs/QmXueKPv6WDyAwjwej5XHnBTMQeUYEbtgNryqt4Tnsj3sK"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/AccessManagementSystem.sol":{"keccak256":"0x29cd0f1a2ec749bc25774682977cad4dd238602a3b4e926cc08bb7781fabf2bc","urls":["bzz-raw://98d1f0b23e9ed303b543e943abcb5641d0744e2c1ae003df6dea877a070f96e0","dweb:/ipfs/QmfQj5P8Lw6DfMfVnhsAaDCtN6iYfKp8V4uxX5LQQnzxLo"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/BalanceTransferSystem.sol":{"keccak256":"0x8170eb46e9716b8040b9a95d8740e1e897538afb1da95a1994cba7907522b4fc","urls":["bzz-raw://b19dbd9f3ca1f541883879985589095f851bdd201d9cdde2d6742dda9ad01a2e","dweb:/ipfs/QmTgSMvsVFAEMK72D7myoJtEykDxAMweueJNEagSChyA1Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/BatchCallSystem.sol":{"keccak256":"0xf24b9cc96cccb8ef98c9aa8585e4a5c003b3b8a00c5a9c6db5c750460960a7d1","urls":["bzz-raw://afa918bcba66835a0866a11c5b43b5da11d68fb68c697f89a273d5dd3a5f1f5c","dweb:/ipfs/QmZyyVdNoUiyLMimmNkZkQv5o86k4sGyo1CGEMrt794eC2"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/ModuleInstallationSystem.sol":{"keccak256":"0xc9b0efce92d9be51ff564fa18efc13365a64cde8dd2e2ef88bac4abe7d432a3d","urls":["bzz-raw://86d2a49cc96ad7e783490c6e44aa2d078444505edc49d1061711200a607441a6","dweb:/ipfs/QmbKkJnRkUE47uWwmhqqmaVozRXLt45ebSZbZnpJpnJfvj"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/StoreRegistrationSystem.sol":{"keccak256":"0xf7edf07894b8c6938b77491d36944d22b37b9e9e8105a689120f66e76450d3dc","urls":["bzz-raw://55be67cb294109fbb9a323c5f788aa7d1b844f7bc57f5bed6b758d2d80447a24","dweb:/ipfs/QmUv8FwmcV6mP2o7aZiZkRxrnQdnaRLYiFWs8ifaEadKJr"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/implementations/WorldRegistrationSystem.sol":{"keccak256":"0xbae6190d740add0ee986f82b1143f8f160d232e0f3c2eb4d7908040f07b45427","urls":["bzz-raw://022b092b8757770e5799d22de9b09b774f6ecae9820e91847f794785fbdf7198","dweb:/ipfs/QmaSUvvjFYZT2NmNUQJer7L9qAz4P1KJVQ8Z2Giro9Cpxm"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/requireInterface.sol":{"keccak256":"0x229777eeaac1099104e10832f59bc02f3494a5b6de8225810a3b175643d97039","urls":["bzz-raw://0bf7e4df65be1808418d8dbb1decb346ec2a3b7a11b895818ae90f319522f795","dweb:/ipfs/Qmco2UnqR9oop9ppY2Zbv1LWCQKGM99A7j6iWGsMCrwSmy"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0xdd201aa30700e70c35c1d4e50c375e511d798961183c8531f947c2d15969debb","urls":["bzz-raw://d9c165b1beb7c1d3f75107407c34a5b3424ec8cb322d494892bceed23323ffb9","dweb:/ipfs/QmdH8rtgJaENsMc6HodAbahKg7PiZUJwoZufnHCw3TwrBx"],"license":"MIT"},"node_modules/@latticexyz/world/src/version.sol":{"keccak256":"0x5db84611779a814a582b5559f636640e3599dba1f36b99c529a19ce73b2d2d44","urls":["bzz-raw://b06ae2f3b888ba3dc719b2d19f60deb7c3398324f636c9dad0b92706dfc08f5a","dweb:/ipfs/QmaLgppohesJhF3ZdMWwM8NHcLiv8SRSCArS4QssfG2dC1"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xc7e0aa6e4746b2d0e2eace7e462adf2f03dbc7f0c880794a577bfdbce426fcc3","urls":["bzz-raw://d7538caf090fc69fff272049cfc00d0f35ae63ee700c2091b9cc4ed5709a3b45","dweb:/ipfs/QmYriK2VpsVAePPLTP6mDZkTYMT9AkgmC2C93ktjVMDaP4"],"license":"MIT"},"node_modules/@latticexyz/world/test/createCoreModule.sol":{"keccak256":"0xb0baab0e9c67c1b945a95291aed4e16cf73ed7b95bc671076fd1a7d960e043d8","urls":["bzz-raw://b603f7c656fed7e592cd598ca94ac46fab6ed31a6d951cf4661bc7f3f24166f2","dweb:/ipfs/QmeNDUPYh3yuUj6oQ19VgKYruY1kDWenNhywzWYXeuxy39"],"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/modules/keyswithvalue/KeysWithValueHook.sol":{"keccak256":"0xee64527269e80d32ca25db99c417f582a0b134c9fb878cf14489baa2aaec40e5","urls":["bzz-raw://a37714f1fa7cf984130a08a0e9f320817cbe0053eae44d432676951f3b90653f","dweb:/ipfs/QmZjWVwJPrsscv9zJU8jBfMn39yDquYePcACRYQW6qiaFx"],"license":"MIT"},"src/modules/keyswithvalue/KeysWithValueModule.sol":{"keccak256":"0x7d1be4afa4605e30f6381dd7a600d149652ca34c38f0bc11cbdb471e332f2101","urls":["bzz-raw://8f31e9c2d2c014abec416191b92aaf6a73e0cf96f5b8ef2ac9352d5c33fc7d06","dweb:/ipfs/QmVHBiNqQCNuycj6vEEfCtD2JScDBr3RHTUo31jrXRg5MK"],"license":"MIT"},"src/modules/keyswithvalue/constants.sol":{"keccak256":"0xf8745d975bd2f321e676d083a215513b114c70f7d5a105244dfe444a78e74de5","urls":["bzz-raw://a7fc161f890a9ee2edf731f57fcfee2ab4e3b4bebb9470df7850a138c08fc2c8","dweb:/ipfs/QmVyyFaR1tzTYgmiGHnumdXQKsjb5qRVPMS3uTRX1ik3XL"],"license":"MIT"},"src/modules/keyswithvalue/getKeysWithValue.sol":{"keccak256":"0xe3257d260cd8265b4de124487be15fb57afd665ddf82c4ef23abbfc82a112fb6","urls":["bzz-raw://c467264fe3e4cb0d67e9290bbcf82b5519a8b55930a7f9dd40f97abf8fc14ef4","dweb:/ipfs/Qmd7E7mv2UeWnaMFEcCkwvDGxnrogS4voPkskvpZZg25Gv"],"license":"MIT"},"src/modules/keyswithvalue/getTargetTableId.sol":{"keccak256":"0xa7d235a9c96925a340aeaa166c8b67d289b4450ca59f0645052207d318030d78","urls":["bzz-raw://2dce50e51faa63a75e051d8ccf463271674f588088fca6ab168e06a5fe8cc16b","dweb:/ipfs/QmP2eZFJPMiazcEhdv9Q5SJYRNna7CHoV6o8bxURzRtCHh"],"license":"MIT"},"src/modules/keyswithvalue/tables/KeysWithValue.sol":{"keccak256":"0x299bc2f1d01b60296358eeab8f45246dcde05f33fa90491bcb75369179295722","urls":["bzz-raw://7a8b2191c6de0ba782759c15b1ba35bbb769a0b77f3ba4f1f0c6b56249abfb47","dweb:/ipfs/QmRaYb73HShtmrkmrjSWkkUfgbFvwzK4VroACQT2LSGkqM"],"license":"MIT"},"src/modules/utils/ArrayLib.sol":{"keccak256":"0x5063027c39c927b80c84ac3bb36d20e19fbbddb746380c1efaf2f33f6fec30b8","urls":["bzz-raw://c49eab76687709db420cbe52737610563f44344ef13608e0809e38c43179cb43","dweb:/ipfs/QmRdQ7iW5j51AVJWin8aaKmj6Xj97ZV5vjfVjG5RqYG5xB"],"license":"MIT"},"test/KeysWithValueModule.t.sol":{"keccak256":"0xd699ce5d6b8f8eb941e1db4d31f6cd31100a733ae7bd26f669f49028504f94cd","urls":["bzz-raw://bb132276a416734f1644c391457910fac374babea6937ea9d9ed2726d3db3591","dweb:/ipfs/QmUpw56k1b2tmrF2imGQoAWg3ETH9xf3VTQinrAgCmF5gw"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/KeysWithValueModule.t.sol","id":133929,"exportedSymbols":{"FieldLayout":[691],"FieldLayoutEncodeHelper":[21124],"GasReporter":[226],"IBaseWorld":[24400],"IModule":[22254],"KeysWithValue":[118909],"KeysWithValueModule":[116209],"KeysWithValueModuleTest":[133928],"MODULE_NAMESPACE":[116214],"MODULE_NAMESPACE_BITS":[116365],"NAME_BITS":[24018],"PackedCounter":[2155],"RESOURCE_TABLE":[15721],"ROOT_NAMESPACE":[34848],"ResourceId":[2782],"ResourceIdInstance":[2838],"Schema":[2850],"SchemaEncodeHelper":[21655],"SchemaType":[431],"StoreSwitch":[8203],"TABLE_NAMESPACE_BITS":[116370],"TYPE_BITS":[2788],"Test":[58812],"World":[23730],"WorldResourceIdInstance":[24272],"WorldResourceIdLib":[24145],"console":[68403],"createCoreModule":[46913],"getKeysWithValue":[116287,116350],"getTargetTableId":[116445]},"nodeType":"SourceUnit","src":"32:10908:197","nodes":[{"id":132967,"nodeType":"PragmaDirective","src":"32:25:197","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":132970,"nodeType":"ImportDirective","src":"59:51:197","nodes":[],"absolutePath":"node_modules/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":58813,"symbolAliases":[{"foreign":{"id":132968,"name":"Test","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58812,"src":"68:4:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132969,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68403,"src":"74:7:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132972,"nodeType":"ImportDirective","src":"111:73:197","nodes":[],"absolutePath":"node_modules/@latticexyz/gas-report/src/GasReporter.sol","file":"@latticexyz/gas-report/src/GasReporter.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":227,"symbolAliases":[{"foreign":{"id":132971,"name":"GasReporter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"120:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132974,"nodeType":"ImportDirective","src":"186:81:197","nodes":[],"absolutePath":"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol","file":"@latticexyz/schema-type/src/solidity/SchemaType.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":473,"symbolAliases":[{"foreign":{"id":132973,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"195:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132976,"nodeType":"ImportDirective","src":"269:68:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/StoreSwitch.sol","file":"@latticexyz/store/src/StoreSwitch.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":8204,"symbolAliases":[{"foreign":{"id":132975,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"278:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132978,"nodeType":"ImportDirective","src":"338:58:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/Schema.sol","file":"@latticexyz/store/src/Schema.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":3319,"symbolAliases":[{"foreign":{"id":132977,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"347:6:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132980,"nodeType":"ImportDirective","src":"397:72:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/PackedCounter.sol","file":"@latticexyz/store/src/PackedCounter.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":2779,"symbolAliases":[{"foreign":{"id":132979,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"406:13:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132983,"nodeType":"ImportDirective","src":"470:86:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":2839,"symbolAliases":[{"foreign":{"id":132981,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"479:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132982,"name":"ResourceIdInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"491:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132985,"nodeType":"ImportDirective","src":"557:83:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol","file":"@latticexyz/store/test/SchemaEncodeHelper.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":21656,"symbolAliases":[{"foreign":{"id":132984,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"566:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132987,"nodeType":"ImportDirective","src":"641:68:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/FieldLayout.sol","file":"@latticexyz/store/src/FieldLayout.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":1122,"symbolAliases":[{"foreign":{"id":132986,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"650:11:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132989,"nodeType":"ImportDirective","src":"710:93:197","nodes":[],"absolutePath":"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol","file":"@latticexyz/store/test/FieldLayoutEncodeHelper.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":21125,"symbolAliases":[{"foreign":{"id":132988,"name":"FieldLayoutEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21124,"src":"719:23:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132991,"nodeType":"ImportDirective","src":"805:56:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/World.sol","file":"@latticexyz/world/src/World.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":23731,"symbolAliases":[{"foreign":{"id":132990,"name":"World","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23730,"src":"814:5:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132993,"nodeType":"ImportDirective","src":"862:60:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/IModule.sol","file":"@latticexyz/world/src/IModule.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":22255,"symbolAliases":[{"foreign":{"id":132992,"name":"IModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22254,"src":"871:7:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":132995,"nodeType":"ImportDirective","src":"923:85:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":24401,"symbolAliases":[{"foreign":{"id":132994,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24400,"src":"932:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133000,"nodeType":"ImportDirective","src":"1009:126:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":24273,"symbolAliases":[{"foreign":{"id":132996,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24145,"src":"1018:18:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132997,"name":"WorldResourceIdInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24272,"src":"1038:23:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132998,"name":"NAME_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24018,"src":"1063:9:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":132999,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"1074:9:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133002,"nodeType":"ImportDirective","src":"1136:69:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/constants.sol","file":"@latticexyz/world/src/constants.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":34921,"symbolAliases":[{"foreign":{"id":133001,"name":"ROOT_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"1145:14:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133004,"nodeType":"ImportDirective","src":"1206:78:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/worldResourceTypes.sol","file":"@latticexyz/world/src/worldResourceTypes.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":37059,"symbolAliases":[{"foreign":{"id":133003,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"1215:14:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133006,"nodeType":"ImportDirective","src":"1286:79:197","nodes":[],"absolutePath":"node_modules/@latticexyz/world/test/createCoreModule.sol","file":"@latticexyz/world/test/createCoreModule.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":46914,"symbolAliases":[{"foreign":{"id":133005,"name":"createCoreModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46913,"src":"1295:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133008,"nodeType":"ImportDirective","src":"1366:91:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/KeysWithValueModule.sol","file":"../src/modules/keyswithvalue/KeysWithValueModule.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":116210,"symbolAliases":[{"foreign":{"id":133007,"name":"KeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116209,"src":"1375:19:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133010,"nodeType":"ImportDirective","src":"1458:78:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/constants.sol","file":"../src/modules/keyswithvalue/constants.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":116215,"symbolAliases":[{"foreign":{"id":133009,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"1467:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133012,"nodeType":"ImportDirective","src":"1537:86:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/tables/KeysWithValue.sol","file":"../src/modules/keyswithvalue/tables/KeysWithValue.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":118910,"symbolAliases":[{"foreign":{"id":133011,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"1546:13:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133014,"nodeType":"ImportDirective","src":"1624:85:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/getKeysWithValue.sol","file":"../src/modules/keyswithvalue/getKeysWithValue.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":116351,"symbolAliases":[{"foreign":{"id":133013,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"src":"1633:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133018,"nodeType":"ImportDirective","src":"1710:130:197","nodes":[],"absolutePath":"src/modules/keyswithvalue/getTargetTableId.sol","file":"../src/modules/keyswithvalue/getTargetTableId.sol","nameLocation":"-1:-1:-1","scope":133929,"sourceUnit":116446,"symbolAliases":[{"foreign":{"id":133015,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"1719:16:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":133016,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"1737:21:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":133017,"name":"TABLE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116370,"src":"1760:20:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":133928,"nodeType":"ContractDefinition","src":"1842:9097:197","nodes":[{"id":133026,"nodeType":"UsingForDirective","src":"1900:40:197","nodes":[],"global":false,"libraryName":{"id":133023,"name":"ResourceIdInstance","nameLocations":["1906:18:197"],"nodeType":"IdentifierPath","referencedDeclaration":2838,"src":"1906:18:197"},"typeName":{"id":133025,"nodeType":"UserDefinedTypeName","pathNode":{"id":133024,"name":"ResourceId","nameLocations":["1929:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"1929:10:197"},"referencedDeclaration":2782,"src":"1929:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}},{"id":133030,"nodeType":"UsingForDirective","src":"1943:45:197","nodes":[],"global":false,"libraryName":{"id":133027,"name":"WorldResourceIdInstance","nameLocations":["1949:23:197"],"nodeType":"IdentifierPath","referencedDeclaration":24272,"src":"1949:23:197"},"typeName":{"id":133029,"nodeType":"UserDefinedTypeName","pathNode":{"id":133028,"name":"ResourceId","nameLocations":["1977:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"1977:10:197"},"referencedDeclaration":2782,"src":"1977:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}},{"id":133033,"nodeType":"VariableDeclaration","src":"1992:16:197","nodes":[],"constant":false,"mutability":"mutable","name":"world","nameLocation":"2003:5:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},"typeName":{"id":133032,"nodeType":"UserDefinedTypeName","pathNode":{"id":133031,"name":"IBaseWorld","nameLocations":["1992:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":24400,"src":"1992:10:197"},"referencedDeclaration":24400,"src":"1992:10:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"id":133040,"nodeType":"VariableDeclaration","src":"2012:75:197","nodes":[],"constant":false,"mutability":"mutable","name":"keysWithValueModule","nameLocation":"2040:19:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},"typeName":{"id":133035,"nodeType":"UserDefinedTypeName","pathNode":{"id":133034,"name":"KeysWithValueModule","nameLocations":["2012:19:197"],"nodeType":"IdentifierPath","referencedDeclaration":116209,"src":"2012:19:197"},"referencedDeclaration":116209,"src":"2012:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},"value":{"arguments":[],"expression":{"argumentTypes":[],"id":133038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2062:23:197","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_KeysWithValueModule_$116209_$","typeString":"function () returns (contract KeysWithValueModule)"},"typeName":{"id":133037,"nodeType":"UserDefinedTypeName","pathNode":{"id":133036,"name":"KeysWithValueModule","nameLocations":["2066:19:197"],"nodeType":"IdentifierPath","referencedDeclaration":116209,"src":"2066:19:197"},"referencedDeclaration":116209,"src":"2066:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}}},"id":133039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},"visibility":"private"},{"id":133043,"nodeType":"VariableDeclaration","src":"2153:42:197","nodes":[],"constant":false,"mutability":"mutable","name":"namespace","nameLocation":"2169:9:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":133041,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2153:7:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"value":{"id":133042,"name":"ROOT_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"2181:14:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"private"},{"id":133049,"nodeType":"VariableDeclaration","src":"2199:46:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceName","nameLocation":"2215:10:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":133044,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2199:7:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"arguments":[{"hexValue":"736f75726365","id":133047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2236:8:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69","typeString":"literal_string \"source\""},"value":"source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69","typeString":"literal_string \"source\""}],"id":133046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2228:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":133045,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2228:7:197","typeDescriptions":{}}},"id":133048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"private"},{"id":133054,"nodeType":"VariableDeclaration","src":"2249:40:197","nodes":[],"constant":false,"mutability":"mutable","name":"key1","nameLocation":"2265:4:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2249:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"74657374","id":133052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2282:6:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658","typeString":"literal_string \"test\""},"value":"test"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658","typeString":"literal_string \"test\""}],"id":133051,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2272:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2272:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":133057,"nodeType":"VariableDeclaration","src":"2293:27:197","nodes":[],"constant":false,"mutability":"mutable","name":"keyTuple1","nameLocation":"2311:9:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2293:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133056,"nodeType":"ArrayTypeName","src":"2293:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"id":133062,"nodeType":"VariableDeclaration","src":"2324:41:197","nodes":[],"constant":false,"mutability":"mutable","name":"key2","nameLocation":"2340:4:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7465737432","id":133060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2357:7:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d","typeString":"literal_string \"test2\""},"value":"test2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4da432f1ecd4c0ac028ebde3a3f78510a21d54087b161590a63080d33b702b8d","typeString":"literal_string \"test2\""}],"id":133059,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2347:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":133065,"nodeType":"VariableDeclaration","src":"2369:27:197","nodes":[],"constant":false,"mutability":"mutable","name":"keyTuple2","nameLocation":"2387:9:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2369:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133064,"nodeType":"ArrayTypeName","src":"2369:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"id":133068,"nodeType":"VariableDeclaration","src":"2401:42:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableFieldLayout","nameLocation":"2421:22:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"},"typeName":{"id":133067,"nodeType":"UserDefinedTypeName","pathNode":{"id":133066,"name":"FieldLayout","nameLocations":["2401:11:197"],"nodeType":"IdentifierPath","referencedDeclaration":691,"src":"2401:11:197"},"referencedDeclaration":691,"src":"2401:11:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"visibility":"private"},{"id":133071,"nodeType":"VariableDeclaration","src":"2447:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableSchema","nameLocation":"2462:17:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},"typeName":{"id":133070,"nodeType":"UserDefinedTypeName","pathNode":{"id":133069,"name":"Schema","nameLocations":["2447:6:197"],"nodeType":"IdentifierPath","referencedDeclaration":2850,"src":"2447:6:197"},"referencedDeclaration":2850,"src":"2447:6:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"visibility":"private"},{"id":133074,"nodeType":"VariableDeclaration","src":"2483:35:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableKeySchema","nameLocation":"2498:20:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},"typeName":{"id":133073,"nodeType":"UserDefinedTypeName","pathNode":{"id":133072,"name":"Schema","nameLocations":["2483:6:197"],"nodeType":"IdentifierPath","referencedDeclaration":2850,"src":"2483:6:197"},"referencedDeclaration":2850,"src":"2483:6:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"visibility":"private"},{"id":133077,"nodeType":"VariableDeclaration","src":"2522:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"sourceTableId","nameLocation":"2541:13:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133076,"nodeType":"UserDefinedTypeName","pathNode":{"id":133075,"name":"ResourceId","nameLocations":["2522:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"2522:10:197"},"referencedDeclaration":2782,"src":"2522:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"private"},{"id":133080,"nodeType":"VariableDeclaration","src":"2558:32:197","nodes":[],"constant":false,"mutability":"mutable","name":"targetTableId","nameLocation":"2577:13:197","scope":133928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133079,"nodeType":"UserDefinedTypeName","pathNode":{"id":133078,"name":"ResourceId","nameLocations":["2558:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"2558:10:197"},"referencedDeclaration":2782,"src":"2558:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"private"},{"id":133180,"nodeType":"FunctionDefinition","src":"2595:685:197","nodes":[],"body":{"id":133179,"nodeType":"Block","src":"2619:661:197","nodes":[],"statements":[{"expression":{"id":133089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133083,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133068,"src":"2625:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3332","id":133086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2681:2:197","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"hexValue":"30","id":133087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2685:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":133084,"name":"FieldLayoutEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21124,"src":"2650:23:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FieldLayoutEncodeHelper_$21124_$","typeString":"type(library FieldLayoutEncodeHelper)"}},"id":133085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2674:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":20833,"src":"2650:30:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_FieldLayout_$691_$","typeString":"function (uint256,uint256) pure returns (FieldLayout)"}},"id":133088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"src":"2625:62:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},"id":133090,"nodeType":"ExpressionStatement","src":"2625:62:197"},{"expression":{"id":133097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133091,"name":"sourceTableSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133071,"src":"2693:17:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":133094,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"2739:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SchemaType_$431_$","typeString":"type(enum SchemaType)"}},"id":133095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2750:7:197","memberName":"UINT256","nodeType":"MemberAccess","referencedDeclaration":264,"src":"2739:18:197","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}],"expression":{"id":133092,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"2713:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SchemaEncodeHelper_$21655_$","typeString":"type(library SchemaEncodeHelper)"}},"id":133093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2732:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":21354,"src":"2713:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$431_$returns$_t_userDefinedValueType$_Schema_$2850_$","typeString":"function (enum SchemaType) pure returns (Schema)"}},"id":133096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:45:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"src":"2693:65:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"id":133098,"nodeType":"ExpressionStatement","src":"2693:65:197"},{"expression":{"id":133105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133099,"name":"sourceTableKeySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133074,"src":"2764:20:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":133102,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"2813:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SchemaType_$431_$","typeString":"type(enum SchemaType)"}},"id":133103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2824:7:197","memberName":"BYTES32","nodeType":"MemberAccess","referencedDeclaration":328,"src":"2813:18:197","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SchemaType_$431","typeString":"enum SchemaType"}],"expression":{"id":133100,"name":"SchemaEncodeHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"2787:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SchemaEncodeHelper_$21655_$","typeString":"type(library SchemaEncodeHelper)"}},"id":133101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":21354,"src":"2787:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$431_$returns$_t_userDefinedValueType$_Schema_$2850_$","typeString":"function (enum SchemaType) pure returns (Schema)"}},"id":133104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2787:45:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"src":"2764:68:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},"id":133106,"nodeType":"ExpressionStatement","src":"2764:68:197"},{"expression":{"id":133114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133107,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"2838:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133110,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"2890:14:197","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"id":133111,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133043,"src":"2917:9:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},{"id":133112,"name":"sourceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133049,"src":"2934:10:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_bytes14","typeString":"bytes14"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":133108,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24145,"src":"2854:18:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$24145_$","typeString":"type(library WorldResourceIdLib)"}},"id":133109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:6:197","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":24073,"src":"2854:25:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes2_$_t_bytes14_$_t_bytes16_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes2,bytes14,bytes16) pure returns (ResourceId)"}},"id":133113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2882:6:197","2906:9:197","2928:4:197"],"names":["typeId","namespace","name"],"nodeType":"FunctionCall","src":"2854:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"src":"2838:109:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133115,"nodeType":"ExpressionStatement","src":"2838:109:197"},{"expression":{"id":133121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133116,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"2953:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133118,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"2986:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133119,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"3004:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"id":133117,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"2969:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes7_$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes7,ResourceId) pure returns (ResourceId)"}},"id":133120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2969:49:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"src":"2953:65:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133122,"nodeType":"ExpressionStatement","src":"2953:65:197"},{"expression":{"id":133133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133123,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"3025:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":133129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3052:9:197","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_World_$23730_$","typeString":"function () returns (contract World)"},"typeName":{"id":133128,"nodeType":"UserDefinedTypeName","pathNode":{"id":133127,"name":"World","nameLocations":["3056:5:197"],"nodeType":"IdentifierPath","referencedDeclaration":23730,"src":"3056:5:197"},"referencedDeclaration":23730,"src":"3056:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}}},"id":133130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:11:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_World_$23730","typeString":"contract World"}],"id":133126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3044:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":133125,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:197","typeDescriptions":{}}},"id":133131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:20:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":133124,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24400,"src":"3033:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$24400_$","typeString":"type(contract IBaseWorld)"}},"id":133132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"src":"3025:40:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133134,"nodeType":"ExpressionStatement","src":"3025:40:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":133138,"name":"createCoreModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46913,"src":"3088:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_contract$_CoreModule_$35431_$","typeString":"function () returns (contract CoreModule)"}},"id":133139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoreModule_$35431","typeString":"contract CoreModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoreModule_$35431","typeString":"contract CoreModule"}],"expression":{"id":133135,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"3071:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3077:10:197","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":22506,"src":"3071:16:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$returns$__$","typeString":"function (contract IModule) external"}},"id":133140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:36:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133141,"nodeType":"ExpressionStatement","src":"3071:36:197"},{"expression":{"arguments":[{"arguments":[{"id":133147,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"3149:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}],"id":133146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3141:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":133145,"name":"address","nodeType":"ElementaryTypeName","src":"3141:7:197","typeDescriptions":{}}},"id":133148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3141:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":133142,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"3113:11:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreSwitch_$8203_$","typeString":"type(library StoreSwitch)"}},"id":133144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:15:197","memberName":"setStoreAddress","nodeType":"MemberAccess","referencedDeclaration":6960,"src":"3113:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":133149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:43:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133150,"nodeType":"ExpressionStatement","src":"3113:43:197"},{"expression":{"id":133157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133151,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"3163:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":133155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3189:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3175:13:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":133152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3179:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133153,"nodeType":"ArrayTypeName","src":"3179:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":133156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3175:16:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3163:28:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133158,"nodeType":"ExpressionStatement","src":"3163:28:197"},{"expression":{"id":133163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":133159,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"3197:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133161,"indexExpression":{"hexValue":"30","id":133160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3207:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3197:12:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":133162,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"3212:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3197:19:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133164,"nodeType":"ExpressionStatement","src":"3197:19:197"},{"expression":{"id":133171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133165,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133065,"src":"3222:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":133169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3248:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3234:13:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":133166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3238:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133167,"nodeType":"ArrayTypeName","src":"3238:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":133170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3234:16:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3222:28:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133172,"nodeType":"ExpressionStatement","src":"3222:28:197"},{"expression":{"id":133177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":133173,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133065,"src":"3256:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":133175,"indexExpression":{"hexValue":"30","id":133174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3266:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3256:12:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":133176,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133062,"src":"3271:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3256:19:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133178,"nodeType":"ExpressionStatement","src":"3256:19:197"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"2604:5:197","parameters":{"id":133081,"nodeType":"ParameterList","parameters":[],"src":"2609:2:197"},"returnParameters":{"id":133082,"nodeType":"ParameterList","parameters":[],"src":"2619:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133220,"nodeType":"FunctionDefinition","src":"3284:620:197","nodes":[],"body":{"id":133219,"nodeType":"Block","src":"3332:572:197","nodes":[],"statements":[{"expression":{"arguments":[{"id":133186,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"3394:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133187,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133068,"src":"3415:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}},{"id":133188,"name":"sourceTableKeySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133074,"src":"3445:20:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},{"id":133189,"name":"sourceTableSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133071,"src":"3473:17:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"}},{"arguments":[{"hexValue":"31","id":133193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3511:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3498:12:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":133190,"name":"string","nodeType":"ElementaryTypeName","src":"3502:6:197","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":133191,"nodeType":"ArrayTypeName","src":"3502:8:197","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":133194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3498:15:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"arguments":[{"hexValue":"31","id":133198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3534:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3521:12:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":133195,"name":"string","nodeType":"ElementaryTypeName","src":"3525:6:197","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":133196,"nodeType":"ArrayTypeName","src":"3525:8:197","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":133199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3521:15:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$2850","typeString":"Schema"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":133183,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"3367:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3373:13:197","memberName":"registerTable","nodeType":"MemberAccess","referencedDeclaration":1918,"src":"3367:19:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_userDefinedValueType$_FieldLayout_$691_$_t_userDefinedValueType$_Schema_$2850_$_t_userDefinedValueType$_Schema_$2850_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,FieldLayout,Schema,Schema,string memory[] memory,string memory[] memory) external"}},"id":133200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3367:175:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133201,"nodeType":"ExpressionStatement","src":"3367:175:197"},{"expression":{"arguments":[{"hexValue":"696e7374616c6c206b65797320776974682076616c7565206d6f64756c65","id":133203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3769:32:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0fe9d03bdb9259dbaf981f3298ed7402a0b26b8940ec13ce5ea0e58335c1446","typeString":"literal_string \"install keys with value module\""},"value":"install keys with value module"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d0fe9d03bdb9259dbaf981f3298ed7402a0b26b8940ec13ce5ea0e58335c1446","typeString":"literal_string \"install keys with value module\""}],"id":133202,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"3754:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3754:48:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133205,"nodeType":"ExpressionStatement","src":"3754:48:197"},{"expression":{"arguments":[{"id":133209,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133040,"src":"3832:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133212,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"3864:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3853:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3857:6:197","memberName":"encode","nodeType":"MemberAccess","src":"3853:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133206,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"3808:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"3808:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3808:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133215,"nodeType":"ExpressionStatement","src":"3808:71:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133216,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"3885:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3885:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133218,"nodeType":"ExpressionStatement","src":"3885:14:197"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_installKeysWithValueModule","nameLocation":"3293:27:197","parameters":{"id":133181,"nodeType":"ParameterList","parameters":[],"src":"3320:2:197"},"returnParameters":{"id":133182,"nodeType":"ParameterList","parameters":[],"src":"3332:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":133235,"nodeType":"FunctionDefinition","src":"3908:134:197","nodes":[],"body":{"id":133234,"nodeType":"Block","src":"3948:94:197","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":133224,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"3963:21:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133225,"name":"TABLE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116370,"src":"3987:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:44:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133227,"name":"NAME_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24018,"src":"4010:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:56:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133229,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"4022:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3963:68:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":133231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4033:3:197","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}],"id":133223,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"3954:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:83:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133233,"nodeType":"ExpressionStatement","src":"3954:83:197"}]},"functionSelector":"79fe553d","implemented":true,"kind":"function","modifiers":[],"name":"testMatchingByteSizes","nameLocation":"3917:21:197","parameters":{"id":133221,"nodeType":"ParameterList","parameters":[],"src":"3938:2:197"},"returnParameters":{"id":133222,"nodeType":"ParameterList","parameters":[],"src":"3948:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133304,"nodeType":"FunctionDefinition","src":"4046:648:197","nodes":[],"body":{"id":133303,"nodeType":"Block","src":"4076:618:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133238,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133220,"src":"4082:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4082:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133240,"nodeType":"ExpressionStatement","src":"4082:29:197"},{"assignments":[133242],"declarations":[{"constant":false,"id":133242,"mutability":"mutable","name":"value","nameLocation":"4164:5:197","nodeType":"VariableDeclaration","scope":133303,"src":"4156:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133241,"name":"uint256","nodeType":"ElementaryTypeName","src":"4156:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133244,"initialValue":{"hexValue":"31","id":133243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4172:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4156:17:197"},{"expression":{"arguments":[{"hexValue":"7365742061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4195:60:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2c0c325f496d40c70f7a8644e6cfc5c9af361eb5df919151f38c9678efa722b","typeString":"literal_string \"set a record on a table with KeysWithValueModule installed\""},"value":"set a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2c0c325f496d40c70f7a8644e6cfc5c9af361eb5df919151f38c9678efa722b","typeString":"literal_string \"set a record on a table with KeysWithValueModule installed\""}],"id":133245,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"4180:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:76:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133248,"nodeType":"ExpressionStatement","src":"4180:76:197"},{"expression":{"arguments":[{"id":133252,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"4278:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133253,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"4293:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133242,"src":"4321:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4304:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4308:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"4304:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4356:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4348:7:197","typeDescriptions":{}}},"id":133263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133258,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"4329:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4343:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"4329:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4329:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4371:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4361:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133265,"name":"bytes","nodeType":"ElementaryTypeName","src":"4365:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4361:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133249,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"4262:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4268:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"4262:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133270,"nodeType":"ExpressionStatement","src":"4262:112:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133271,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"4380:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133273,"nodeType":"ExpressionStatement","src":"4380:14:197"},{"assignments":[133278],"declarations":[{"constant":false,"id":133278,"mutability":"mutable","name":"keysWithValue","nameLocation":"4488:13:197","nodeType":"VariableDeclaration","scope":133303,"src":"4471:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4471:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133277,"nodeType":"ArrayTypeName","src":"4471:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133289,"initialValue":{"arguments":[{"id":133281,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"4522:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133285,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133242,"src":"4564:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4547:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"4547:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133282,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4537:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4537:34:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133279,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"4504:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4518:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"4504:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:68:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4471:101:197"},{"expression":{"arguments":[{"expression":{"id":133291,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133278,"src":"4627:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4641:6:197","memberName":"length","nodeType":"MemberAccess","src":"4627:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4649:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133290,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"4618:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4618:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133295,"nodeType":"ExpressionStatement","src":"4618:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133297,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133278,"src":"4666:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133299,"indexExpression":{"hexValue":"30","id":133298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4680:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4666:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133300,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"4684:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133296,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"4657:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133302,"nodeType":"ExpressionStatement","src":"4657:32:197"}]},"functionSelector":"786bd7bc","implemented":true,"kind":"function","modifiers":[],"name":"testInstall","nameLocation":"4055:11:197","parameters":{"id":133236,"nodeType":"ParameterList","parameters":[],"src":"4066:2:197"},"returnParameters":{"id":133237,"nodeType":"ParameterList","parameters":[],"src":"4076:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133336,"nodeType":"FunctionDefinition","src":"4698:257:197","nodes":[],"body":{"id":133335,"nodeType":"Block","src":"4733:222:197","nodes":[],"statements":[{"expression":{"arguments":[{"id":133310,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133040,"src":"4763:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133313,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"4795:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4784:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4788:6:197","memberName":"encode","nodeType":"MemberAccess","src":"4784:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4784:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133307,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"4739:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4745:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"4739:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4739:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133316,"nodeType":"ExpressionStatement","src":"4739:71:197"},{"expression":{"arguments":[{"expression":{"expression":{"id":133320,"name":"IModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22254,"src":"4832:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IModule_$22254_$","typeString":"type(contract IModule)"}},"id":133321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:23:197","memberName":"Module_AlreadyInstalled","nodeType":"MemberAccess","referencedDeclaration":22231,"src":"4832:31:197","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":133322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4864:8:197","memberName":"selector","nodeType":"MemberAccess","src":"4832:40:197","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":133317,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49264,"src":"4816:2:197","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$60339","typeString":"contract Vm"}},"id":133319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:12:197","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":59998,"src":"4816:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":133323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4816:57:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133324,"nodeType":"ExpressionStatement","src":"4816:57:197"},{"expression":{"arguments":[{"id":133328,"name":"keysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133040,"src":"4903:19:197","typeDescriptions":{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"}},{"arguments":[{"id":133331,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"4935:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4924:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4928:6:197","memberName":"encode","nodeType":"MemberAccess","src":"4924:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4924:25:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KeysWithValueModule_$116209","typeString":"contract KeysWithValueModule"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133325,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"4879:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4885:17:197","memberName":"installRootModule","nodeType":"MemberAccess","referencedDeclaration":22448,"src":"4879:23:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IModule_$22254_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IModule,bytes memory) external"}},"id":133333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4879:71:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133334,"nodeType":"ExpressionStatement","src":"4879:71:197"}]},"functionSelector":"78cdebf9","implemented":true,"kind":"function","modifiers":[],"name":"testInstallTwice","nameLocation":"4707:16:197","parameters":{"id":133305,"nodeType":"ParameterList","parameters":[],"src":"4723:2:197"},"returnParameters":{"id":133306,"nodeType":"ParameterList","parameters":[],"src":"4733:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133580,"nodeType":"FunctionDefinition","src":"4959:2346:197","nodes":[],"body":{"id":133579,"nodeType":"Block","src":"5004:2301:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133339,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133220,"src":"5010:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5010:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133341,"nodeType":"ExpressionStatement","src":"5010:29:197"},{"assignments":[133343],"declarations":[{"constant":false,"id":133343,"mutability":"mutable","name":"value1","nameLocation":"5093:6:197","nodeType":"VariableDeclaration","scope":133579,"src":"5085:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133342,"name":"uint256","nodeType":"ElementaryTypeName","src":"5085:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133345,"initialValue":{"hexValue":"31","id":133344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5102:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5085:18:197"},{"expression":{"arguments":[{"id":133349,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"5126:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133350,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"5141:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133353,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133343,"src":"5169:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133351,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5152:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5156:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5152:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5152:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5205:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5197:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5197:7:197","typeDescriptions":{}}},"id":133360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5197:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133355,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"5178:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5192:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"5178:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5220:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5210:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133362,"name":"bytes","nodeType":"ElementaryTypeName","src":"5214:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133346,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"5110:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5116:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"5110:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133367,"nodeType":"ExpressionStatement","src":"5110:113:197"},{"assignments":[133372],"declarations":[{"constant":false,"id":133372,"mutability":"mutable","name":"keysWithValue","nameLocation":"5313:13:197","nodeType":"VariableDeclaration","scope":133579,"src":"5296:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5296:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133371,"nodeType":"ArrayTypeName","src":"5296:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133383,"initialValue":{"arguments":[{"id":133375,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"5347:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133379,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133343,"src":"5389:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5372:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5376:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5372:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133376,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5362:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133373,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"5329:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5343:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"5329:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5329:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5296:102:197"},{"expression":{"arguments":[{"expression":{"id":133385,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5453:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5467:6:197","memberName":"length","nodeType":"MemberAccess","src":"5453:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5475:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"31","id":133388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5478:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":133384,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"5444:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5444:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133390,"nodeType":"ExpressionStatement","src":"5444:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133392,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5497:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133394,"indexExpression":{"hexValue":"30","id":133393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5511:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5497:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133395,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"5515:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"32","id":133396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5521:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"id":133391,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5488:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133398,"nodeType":"ExpressionStatement","src":"5488:37:197"},{"expression":{"arguments":[{"id":133402,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"5593:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133403,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133065,"src":"5608:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133406,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133343,"src":"5636:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5619:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5623:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5619:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5619:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5672:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5664:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5664:7:197","typeDescriptions":{}}},"id":133413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5664:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133408,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"5645:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5659:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"5645:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5645:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5687:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5677:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133415,"name":"bytes","nodeType":"ElementaryTypeName","src":"5681:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133399,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"5577:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5583:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"5577:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5577:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133420,"nodeType":"ExpressionStatement","src":"5577:113:197"},{"expression":{"id":133432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133421,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5763:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133424,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"5797:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133428,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133343,"src":"5839:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133426,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5822:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5826:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"5822:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133425,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5812:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5812:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133422,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"5779:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5793:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"5779:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"5763:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133433,"nodeType":"ExpressionStatement","src":"5763:85:197"},{"expression":{"arguments":[{"expression":{"id":133435,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5903:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5917:6:197","memberName":"length","nodeType":"MemberAccess","src":"5903:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":133437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5925:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":133434,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"5894:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5894:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133439,"nodeType":"ExpressionStatement","src":"5894:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133441,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5942:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133443,"indexExpression":{"hexValue":"30","id":133442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5956:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5942:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133444,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"5960:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"33","id":133445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5966:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de","typeString":"literal_string \"3\""},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de","typeString":"literal_string \"3\""}],"id":133440,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5933:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133447,"nodeType":"ExpressionStatement","src":"5933:37:197"},{"expression":{"arguments":[{"baseExpression":{"id":133449,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"5985:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133451,"indexExpression":{"hexValue":"31","id":133450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5999:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133452,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133062,"src":"6003:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"34","id":133453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6009:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_13600b294191fc92924bb3ce4b969c1e7e2bab8f4c93c3fc6d0a51733df3c060","typeString":"literal_string \"4\""},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_13600b294191fc92924bb3ce4b969c1e7e2bab8f4c93c3fc6d0a51733df3c060","typeString":"literal_string \"4\""}],"id":133448,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"5976:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133455,"nodeType":"ExpressionStatement","src":"5976:37:197"},{"assignments":[133457],"declarations":[{"constant":false,"id":133457,"mutability":"mutable","name":"value2","nameLocation":"6069:6:197","nodeType":"VariableDeclaration","scope":133579,"src":"6061:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133456,"name":"uint256","nodeType":"ElementaryTypeName","src":"6061:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133459,"initialValue":{"hexValue":"32","id":133458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6078:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"6061:18:197"},{"expression":{"arguments":[{"hexValue":"6368616e67652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6101:63:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b9c422ee0e2dbe8018a19c9cb3aae68930b6241eb6b0e8370a479b1b31973ed","typeString":"literal_string \"change a record on a table with KeysWithValueModule installed\""},"value":"change a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b9c422ee0e2dbe8018a19c9cb3aae68930b6241eb6b0e8370a479b1b31973ed","typeString":"literal_string \"change a record on a table with KeysWithValueModule installed\""}],"id":133460,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"6086:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6086:79:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133463,"nodeType":"ExpressionStatement","src":"6086:79:197"},{"expression":{"arguments":[{"id":133467,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"6187:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133468,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"6202:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133471,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133457,"src":"6230:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6213:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6217:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6213:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6213:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6266:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6258:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6258:7:197","typeDescriptions":{}}},"id":133478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6258:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133473,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"6239:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6253:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"6239:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6281:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6271:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133480,"name":"bytes","nodeType":"ElementaryTypeName","src":"6275:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6271:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133464,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"6171:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6177:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"6171:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6171:113:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133485,"nodeType":"ExpressionStatement","src":"6171:113:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133486,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"6290:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6290:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133488,"nodeType":"ExpressionStatement","src":"6290:14:197"},{"expression":{"id":133500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133489,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6377:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133492,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"6411:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133496,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133343,"src":"6453:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6436:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6440:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6436:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6436:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133493,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6426:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6426:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133490,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"6393:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6407:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"6393:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"6377:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133501,"nodeType":"ExpressionStatement","src":"6377:85:197"},{"expression":{"arguments":[{"expression":{"id":133503,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6517:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6531:6:197","memberName":"length","nodeType":"MemberAccess","src":"6517:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6539:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"35","id":133506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6542:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1","typeString":"literal_string \"5\""},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_ceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1","typeString":"literal_string \"5\""}],"id":133502,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"6508:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6508:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133508,"nodeType":"ExpressionStatement","src":"6508:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133510,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6561:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133512,"indexExpression":{"hexValue":"30","id":133511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6575:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6561:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133513,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133062,"src":"6579:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"36","id":133514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6585:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_e455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d","typeString":"literal_string \"6\""},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_e455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d","typeString":"literal_string \"6\""}],"id":133509,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"6552:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6552:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133516,"nodeType":"ExpressionStatement","src":"6552:37:197"},{"expression":{"id":133528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133517,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6662:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133520,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"6696:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133524,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133457,"src":"6738:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133522,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6721:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6725:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"6721:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133521,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6711:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6711:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133518,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"6678:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6692:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"6678:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6678:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"6662:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133529,"nodeType":"ExpressionStatement","src":"6662:85:197"},{"expression":{"arguments":[{"expression":{"id":133531,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6802:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6816:6:197","memberName":"length","nodeType":"MemberAccess","src":"6802:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6824:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"37","id":133534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6827:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021","typeString":"literal_string \"7\""},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021","typeString":"literal_string \"7\""}],"id":133530,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"6793:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6793:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133536,"nodeType":"ExpressionStatement","src":"6793:38:197"},{"expression":{"arguments":[{"baseExpression":{"id":133538,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"6846:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133540,"indexExpression":{"hexValue":"30","id":133539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6860:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6846:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133541,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"6864:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"38","id":133542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6870:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""}],"id":133537,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"6837:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6837:37:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133544,"nodeType":"ExpressionStatement","src":"6837:37:197"},{"expression":{"arguments":[{"hexValue":"64656c6574652061207265636f7264206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6924:63:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_086138016c09e33a58a850dcdde475e4be4fd20038678f4ef60ca09b271fdb73","typeString":"literal_string \"delete a record on a table with KeysWithValueModule installed\""},"value":"delete a record on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_086138016c09e33a58a850dcdde475e4be4fd20038678f4ef60ca09b271fdb73","typeString":"literal_string \"delete a record on a table with KeysWithValueModule installed\""}],"id":133545,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"6909:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6909:79:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133548,"nodeType":"ExpressionStatement","src":"6909:79:197"},{"expression":{"arguments":[{"id":133552,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"7013:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133553,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"7028:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}],"expression":{"id":133549,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"6994:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7000:12:197","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":2090,"src":"6994:18:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory) external"}},"id":133554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6994:44:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133555,"nodeType":"ExpressionStatement","src":"6994:44:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133556,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"7044:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7044:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133558,"nodeType":"ExpressionStatement","src":"7044:14:197"},{"expression":{"id":133570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133559,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"7131:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133562,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"7165:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133566,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133457,"src":"7207:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7190:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7194:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"7190:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7190:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133563,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7180:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7180:35:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133560,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"7147:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7161:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"7147:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7147:69:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"7131:85:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133571,"nodeType":"ExpressionStatement","src":"7131:85:197"},{"expression":{"arguments":[{"expression":{"id":133573,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133372,"src":"7271:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7285:6:197","memberName":"length","nodeType":"MemberAccess","src":"7271:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":133575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"39","id":133576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7296:3:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb","typeString":"literal_string \"9\""},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_d2f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb","typeString":"literal_string \"9\""}],"id":133572,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47453,"src":"7262:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":133577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:38:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133578,"nodeType":"ExpressionStatement","src":"7262:38:197"}]},"functionSelector":"4a8cf93d","implemented":true,"kind":"function","modifiers":[],"name":"testSetAndDeleteRecordHook","nameLocation":"4968:26:197","parameters":{"id":133337,"nodeType":"ParameterList","parameters":[],"src":"4994:2:197"},"returnParameters":{"id":133338,"nodeType":"ParameterList","parameters":[],"src":"5004:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133709,"nodeType":"FunctionDefinition","src":"7309:1390:197","nodes":[],"body":{"id":133708,"nodeType":"Block","src":"7340:1359:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133583,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133220,"src":"7346:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7346:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133585,"nodeType":"ExpressionStatement","src":"7346:29:197"},{"assignments":[133587],"declarations":[{"constant":false,"id":133587,"mutability":"mutable","name":"value1","nameLocation":"7429:6:197","nodeType":"VariableDeclaration","scope":133708,"src":"7421:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133586,"name":"uint256","nodeType":"ElementaryTypeName","src":"7421:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133589,"initialValue":{"hexValue":"31","id":133588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7438:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"7421:18:197"},{"expression":{"arguments":[{"hexValue":"7365742061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7461:59:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_6013cc84467b08f419efa8591874929c486151236056110c02e28b7148a66b87","typeString":"literal_string \"set a field on a table with KeysWithValueModule installed\""},"value":"set a field on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6013cc84467b08f419efa8591874929c486151236056110c02e28b7148a66b87","typeString":"literal_string \"set a field on a table with KeysWithValueModule installed\""}],"id":133590,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"7446:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7446:75:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133593,"nodeType":"ExpressionStatement","src":"7446:75:197"},{"expression":{"arguments":[{"id":133597,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"7542:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133598,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"7557:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"hexValue":"30","id":133599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":133602,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133587,"src":"7588:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133600,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7571:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7575:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"7571:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7571:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":133604,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133068,"src":"7597:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}],"expression":{"id":133594,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"7527:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:8:197","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":2026,"src":"7527:14:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$691_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":133605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7527:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133606,"nodeType":"ExpressionStatement","src":"7527:93:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133607,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"7626:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7626:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133609,"nodeType":"ExpressionStatement","src":"7626:14:197"},{"assignments":[133614],"declarations":[{"constant":false,"id":133614,"mutability":"mutable","name":"keysWithValue","nameLocation":"7730:13:197","nodeType":"VariableDeclaration","scope":133708,"src":"7713:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7713:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133613,"nodeType":"ArrayTypeName","src":"7713:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133625,"initialValue":{"arguments":[{"id":133617,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"7764:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133621,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133587,"src":"7800:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7789:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7793:6:197","memberName":"encode","nodeType":"MemberAccess","src":"7789:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7789:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133618,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7779:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7779:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133615,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"7746:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7760:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"7746:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7713:96:197"},{"expression":{"arguments":[{"expression":{"id":133627,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"7864:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7878:6:197","memberName":"length","nodeType":"MemberAccess","src":"7864:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7886:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133626,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"7855:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7855:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133631,"nodeType":"ExpressionStatement","src":"7855:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133633,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"7903:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133635,"indexExpression":{"hexValue":"30","id":133634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7917:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7903:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133636,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"7921:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133632,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"7894:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7894:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133638,"nodeType":"ExpressionStatement","src":"7894:32:197"},{"assignments":[133640],"declarations":[{"constant":false,"id":133640,"mutability":"mutable","name":"value2","nameLocation":"7941:6:197","nodeType":"VariableDeclaration","scope":133708,"src":"7933:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133639,"name":"uint256","nodeType":"ElementaryTypeName","src":"7933:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":133642,"initialValue":{"hexValue":"32","id":133641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7950:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"7933:18:197"},{"expression":{"arguments":[{"hexValue":"6368616e67652061206669656c64206f6e2061207461626c652077697468204b6579735769746856616c75654d6f64756c6520696e7374616c6c6564","id":133644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8012:62:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_366525fcc078b1415665cadbdfff44d1c1283f38acc7842fe4df5bbbb14f25e5","typeString":"literal_string \"change a field on a table with KeysWithValueModule installed\""},"value":"change a field on a table with KeysWithValueModule installed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_366525fcc078b1415665cadbdfff44d1c1283f38acc7842fe4df5bbbb14f25e5","typeString":"literal_string \"change a field on a table with KeysWithValueModule installed\""}],"id":133643,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"7997:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7997:78:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133646,"nodeType":"ExpressionStatement","src":"7997:78:197"},{"expression":{"arguments":[{"id":133650,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"8096:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133651,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"8111:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"hexValue":"30","id":133652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8122:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":133655,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133640,"src":"8142:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8125:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8129:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"8125:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8125:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":133657,"name":"sourceTableFieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133068,"src":"8151:22:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$691","typeString":"FieldLayout"}],"expression":{"id":133647,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"8081:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8087:8:197","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":2026,"src":"8081:14:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$691_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":133658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8081:93:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133659,"nodeType":"ExpressionStatement","src":"8081:93:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133660,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"8180:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8180:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133662,"nodeType":"ExpressionStatement","src":"8180:14:197"},{"expression":{"id":133674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133663,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"8267:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133666,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"8301:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133670,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133587,"src":"8337:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133668,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8326:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8330:6:197","memberName":"encode","nodeType":"MemberAccess","src":"8326:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8326:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133667,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8316:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133664,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"8283:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8297:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"8283:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8283:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"8267:79:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133675,"nodeType":"ExpressionStatement","src":"8267:79:197"},{"expression":{"arguments":[{"expression":{"id":133677,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"8401:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:197","memberName":"length","nodeType":"MemberAccess","src":"8401:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":133679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8423:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133676,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"8392:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8392:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133681,"nodeType":"ExpressionStatement","src":"8392:33:197"},{"expression":{"id":133693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133682,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"8498:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133685,"name":"targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133080,"src":"8532:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"arguments":[{"id":133689,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133640,"src":"8568:6:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8557:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8561:6:197","memberName":"encode","nodeType":"MemberAccess","src":"8557:10:197","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8557:18:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133686,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8547:9:197","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":133691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8547:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133683,"name":"KeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118909,"src":"8514:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KeysWithValue_$118909_$","typeString":"type(library KeysWithValue)"}},"id":133684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8528:3:197","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":116877,"src":"8514:17:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (ResourceId,bytes32) view returns (bytes32[] memory)"}},"id":133692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8514:63:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"8498:79:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133694,"nodeType":"ExpressionStatement","src":"8498:79:197"},{"expression":{"arguments":[{"expression":{"id":133696,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"8632:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8646:6:197","memberName":"length","nodeType":"MemberAccess","src":"8632:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8654:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133695,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"8623:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8623:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133700,"nodeType":"ExpressionStatement","src":"8623:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133702,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133614,"src":"8671:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133704,"indexExpression":{"hexValue":"30","id":133703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8685:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8671:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133705,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"8689:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133701,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"8662:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8662:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133707,"nodeType":"ExpressionStatement","src":"8662:32:197"}]},"functionSelector":"615295ee","implemented":true,"kind":"function","modifiers":[],"name":"testSetField","nameLocation":"7318:12:197","parameters":{"id":133581,"nodeType":"ParameterList","parameters":[],"src":"7330:2:197"},"returnParameters":{"id":133582,"nodeType":"ParameterList","parameters":[],"src":"7340:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133779,"nodeType":"FunctionDefinition","src":"8703:920:197","nodes":[],"body":{"id":133778,"nodeType":"Block","src":"8742:881:197","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574652074686520746172676574207461626c652073656c6563746f72","id":133713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8763:35:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_feb992d526920093e2e8de59623dd29bd995022f280713006d9dcae1d7225b68","typeString":"literal_string \"compute the target table selector\""},"value":"compute the target table selector"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_feb992d526920093e2e8de59623dd29bd995022f280713006d9dcae1d7225b68","typeString":"literal_string \"compute the target table selector\""}],"id":133712,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"8748:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8748:51:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133715,"nodeType":"ExpressionStatement","src":"8748:51:197"},{"assignments":[133718],"declarations":[{"constant":false,"id":133718,"mutability":"mutable","name":"_targetTableId","nameLocation":"8816:14:197","nodeType":"VariableDeclaration","scope":133778,"src":"8805:25:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},"typeName":{"id":133717,"nodeType":"UserDefinedTypeName","pathNode":{"id":133716,"name":"ResourceId","nameLocations":["8805:10:197"],"nodeType":"IdentifierPath","referencedDeclaration":2782,"src":"8805:10:197"},"referencedDeclaration":2782,"src":"8805:10:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"visibility":"internal"}],"id":133723,"initialValue":{"arguments":[{"id":133720,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"8850:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133721,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"8868:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"id":133719,"name":"getTargetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116445,"src":"8833:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes7_$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (bytes7,ResourceId) pure returns (ResourceId)"}},"id":133722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:49:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"8805:77:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133724,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"8888:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8888:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133726,"nodeType":"ExpressionStatement","src":"8888:14:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":133728,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133718,"src":"8965:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8980:7:197","memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2837,"src":"8965:22:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes2_$attached_to$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (ResourceId) pure returns (bytes2)"}},"id":133730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8965:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"id":133731,"name":"RESOURCE_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8991:14:197","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},{"hexValue":"746172676574207461626c65207265736f75726365207479706520646f6573206e6f74206d61746368","id":133732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9007:43:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f6a29f10ee1c19764057fda4a678b5e87f240ecc31630595590aa936f69889","typeString":"literal_string \"target table resource type does not match\""},"value":"target table resource type does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_bytes2","typeString":"bytes2"},{"typeIdentifier":"t_stringliteral_66f6a29f10ee1c19764057fda4a678b5e87f240ecc31630595590aa936f69889","typeString":"literal_string \"target table resource type does not match\""}],"id":133727,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"8956:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8956:95:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133734,"nodeType":"ExpressionStatement","src":"8956:95:197"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":133744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":133740,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133718,"src":"9148:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133738,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"9130:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"type(ResourceId)"}},"id":133739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9141:6:197","memberName":"unwrap","nodeType":"MemberAccess","src":"9130:17:197","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes32_$","typeString":"function (ResourceId) pure returns (bytes32)"}},"id":133741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9130:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"id":133742,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"9168:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":133743,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9167:11:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9130:48:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9123:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133736,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9123:6:197","typeDescriptions":{}}},"id":133745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9123:56:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"id":133746,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116214,"src":"9187:16:197","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"hexValue":"6d6f64756c65206e616d65737061636520646f6573206e6f74206d61746368","id":133747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9211:33:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6d0ce39e02ea2028c57b1ef050b77d03dbb6221d4b9f4594d945342866628b1","typeString":"literal_string \"module namespace does not match\""},"value":"module namespace does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_stringliteral_d6d0ce39e02ea2028c57b1ef050b77d03dbb6221d4b9f4594d945342866628b1","typeString":"literal_string \"module namespace does not match\""}],"id":133735,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9107:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9107:143:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133749,"nodeType":"ExpressionStatement","src":"9107:143:197"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":133761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":133755,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133718,"src":"9365:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}],"expression":{"id":133753,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"9347:10:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"type(ResourceId)"}},"id":133754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9358:6:197","memberName":"unwrap","nodeType":"MemberAccess","src":"9347:17:197","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes32_$","typeString":"function (ResourceId) pure returns (bytes32)"}},"id":133756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":133757,"name":"TYPE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2788,"src":"9385:9:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":133758,"name":"MODULE_NAMESPACE_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116365,"src":"9397:21:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:33:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":133760,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9384:35:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9347:72:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9340:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133751,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9340:6:197","typeDescriptions":{}}},"id":133762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9340:80:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"arguments":[{"id":133765,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133043,"src":"9435:9:197","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":133764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9428:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes7_$","typeString":"type(bytes7)"},"typeName":{"id":133763,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9428:6:197","typeDescriptions":{}}},"id":133766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9428:17:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},{"hexValue":"7461626c65206e616d65737061636520646f6573206e6f74206d61746368","id":133767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9453:32:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3d5937108d10722a44247e1829dc0a71f3df77502a7e75813fad01efccb3b8e","typeString":"literal_string \"table namespace does not match\""},"value":"table namespace does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_bytes7","typeString":"bytes7"},{"typeIdentifier":"t_stringliteral_b3d5937108d10722a44247e1829dc0a71f3df77502a7e75813fad01efccb3b8e","typeString":"literal_string \"table namespace does not match\""}],"id":133750,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9324:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:167:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133769,"nodeType":"ExpressionStatement","src":"9324:167:197"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":133771,"name":"_targetTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133718,"src":"9552:14:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},"id":133772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9567:7:197","memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":24214,"src":"9552:22:197","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ResourceId_$2782_$returns$_t_bytes16_$attached_to$_t_userDefinedValueType$_ResourceId_$2782_$","typeString":"function (ResourceId) pure returns (bytes16)"}},"id":133773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9552:24:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":133774,"name":"sourceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133049,"src":"9578:10:197","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"hexValue":"7461626c65206e616d6520646f6573206e6f74206d61746368","id":133775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9590:27:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_c959376aa0e0922a8ef71e6c511efde5771d3641fad6290e8ea94ce819d45c5d","typeString":"literal_string \"table name does not match\""},"value":"table name does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_stringliteral_c959376aa0e0922a8ef71e6c511efde5771d3641fad6290e8ea94ce819d45c5d","typeString":"literal_string \"table name does not match\""}],"id":133770,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47314,"src":"9543:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":133776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:75:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133777,"nodeType":"ExpressionStatement","src":"9543:75:197"}]},"functionSelector":"e004c9e9","implemented":true,"kind":"function","modifiers":[],"name":"testGetTargetTableId","nameLocation":"8712:20:197","parameters":{"id":133710,"nodeType":"ParameterList","parameters":[],"src":"8732:2:197"},"returnParameters":{"id":133711,"nodeType":"ParameterList","parameters":[],"src":"8742:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133787,"nodeType":"FunctionDefinition","src":"9627:127:197","nodes":[],"body":{"id":133786,"nodeType":"Block","src":"9669:85:197","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"31","id":133783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9747:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133782,"name":"testGetKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133927,"src":"9726:20:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":133784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9726:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133785,"nodeType":"ExpressionStatement","src":"9726:23:197"}]},"functionSelector":"39e2edb9","implemented":true,"kind":"function","modifiers":[],"name":"testGetKeysWithValueGas","nameLocation":"9636:23:197","parameters":{"id":133780,"nodeType":"ParameterList","parameters":[],"src":"9659:2:197"},"returnParameters":{"id":133781,"nodeType":"ParameterList","parameters":[],"src":"9669:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":133927,"nodeType":"FunctionDefinition","src":"9758:1179:197","nodes":[],"body":{"id":133926,"nodeType":"Block","src":"9810:1127:197","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133792,"name":"_installKeysWithValueModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133220,"src":"9816:27:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9816:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133794,"nodeType":"ExpressionStatement","src":"9816:29:197"},{"expression":{"arguments":[{"id":133798,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"9907:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133799,"name":"keyTuple1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133057,"src":"9922:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133789,"src":"9950:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9933:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9937:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"9933:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9933:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9985:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9977:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9977:7:197","typeDescriptions":{}}},"id":133809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9977:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133804,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"9958:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9972:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"9958:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9958:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10000:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9990:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133811,"name":"bytes","nodeType":"ElementaryTypeName","src":"9994:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9990:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133795,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"9891:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9897:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"9891:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9891:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133816,"nodeType":"ExpressionStatement","src":"9891:112:197"},{"expression":{"arguments":[{"hexValue":"476574206c697374206f66206b6579732077697468206120676976656e2076616c7565","id":133818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10025:37:197","typeDescriptions":{"typeIdentifier":"t_stringliteral_abbde85d93c52a30ddcd47dbe3ddaa4d25f9a99670687a497cb2a9c9058c7fe1","typeString":"literal_string \"Get list of keys with a given value\""},"value":"Get list of keys with a given value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abbde85d93c52a30ddcd47dbe3ddaa4d25f9a99670687a497cb2a9c9058c7fe1","typeString":"literal_string \"Get list of keys with a given value\""}],"id":133817,"name":"startGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"10010:14:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":133819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10010:53:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133820,"nodeType":"ExpressionStatement","src":"10010:53:197"},{"assignments":[133825],"declarations":[{"constant":false,"id":133825,"mutability":"mutable","name":"keysWithValue","nameLocation":"10086:13:197","nodeType":"VariableDeclaration","scope":133926,"src":"10069:30:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":133823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10069:7:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":133824,"nodeType":"ArrayTypeName","src":"10069:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":133845,"initialValue":{"arguments":[{"id":133827,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"10126:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},{"id":133828,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"10139:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"id":133831,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133789,"src":"10177:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10160:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10164:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10160:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10160:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10210:7:197","typeDescriptions":{}}},"id":133838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133833,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10191:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10205:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10191:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10191:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10239:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10229:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133840,"name":"bytes","nodeType":"ElementaryTypeName","src":"10233:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10229:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133826,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[116287,116350],"referencedDeclaration":116350,"src":"10102:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IStore_$1349_$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (contract IStore,ResourceId,bytes memory,PackedCounter,bytes memory) view returns (bytes32[] memory)"}},"id":133844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:145:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10069:178:197"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":133846,"name":"endGasReport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"10253:12:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":133847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10253:14:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133848,"nodeType":"ExpressionStatement","src":"10253:14:197"},{"expression":{"arguments":[{"expression":{"id":133850,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10322:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10336:6:197","memberName":"length","nodeType":"MemberAccess","src":"10322:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":133852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10344:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":133849,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"10313:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10313:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133854,"nodeType":"ExpressionStatement","src":"10313:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133856,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10361:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133858,"indexExpression":{"hexValue":"30","id":133857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10375:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10361:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133859,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"10379:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133855,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10352:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133861,"nodeType":"ExpressionStatement","src":"10352:32:197"},{"expression":{"arguments":[{"id":133865,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"10452:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"id":133866,"name":"keyTuple2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133065,"src":"10467:9:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"arguments":[{"id":133869,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133789,"src":"10495:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133867,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10478:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10482:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10478:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10478:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10530:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10522:7:197","typeDescriptions":{}}},"id":133876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133871,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10503:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10517:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10503:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10503:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10535:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133878,"name":"bytes","nodeType":"ElementaryTypeName","src":"10539:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10535:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":133862,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"10436:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},"id":133864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10442:9:197","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":1967,"src":"10436:15:197","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$2782_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,PackedCounter,bytes memory) external"}},"id":133882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10436:112:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133883,"nodeType":"ExpressionStatement","src":"10436:112:197"},{"expression":{"id":133904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":133884,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10616:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":133886,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133033,"src":"10656:5:197","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"}},{"id":133887,"name":"sourceTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133077,"src":"10669:13:197","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"}},{"arguments":[{"id":133890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133789,"src":"10707:5:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":133888,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10690:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":133889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10694:12:197","memberName":"encodePacked","nodeType":"MemberAccess","src":"10690:16:197","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10690:23:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"hexValue":"30","id":133896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10748:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10740:7:197","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":133894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10740:7:197","typeDescriptions":{}}},"id":133897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10740:10:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":133892,"name":"PackedCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"10721:13:197","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"type(PackedCounter)"}},"id":133893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10735:4:197","memberName":"wrap","nodeType":"MemberAccess","src":"10721:18:197","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_PackedCounter_$2155_$","typeString":"function (bytes32) pure returns (PackedCounter)"}},"id":133898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10721:30:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"}},{"arguments":[{"hexValue":"30","id":133901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":133900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10759:9:197","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":133899,"name":"bytes","nodeType":"ElementaryTypeName","src":"10763:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":133902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10759:12:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$24400","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$2782","typeString":"ResourceId"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_PackedCounter_$2155","typeString":"PackedCounter"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":133885,"name":"getKeysWithValue","nodeType":"Identifier","overloadedDeclarations":[116287,116350],"referencedDeclaration":116350,"src":"10632:16:197","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IStore_$1349_$_t_userDefinedValueType$_ResourceId_$2782_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_PackedCounter_$2155_$_t_bytes_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (contract IStore,ResourceId,bytes memory,PackedCounter,bytes memory) view returns (bytes32[] memory)"}},"id":133903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10632:145:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"10616:161:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133905,"nodeType":"ExpressionStatement","src":"10616:161:197"},{"expression":{"arguments":[{"expression":{"id":133907,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10832:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:6:197","memberName":"length","nodeType":"MemberAccess","src":"10832:20:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":133909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10854:1:197","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":133906,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47428,"src":"10823:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":133910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10823:33:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133911,"nodeType":"ExpressionStatement","src":"10823:33:197"},{"expression":{"arguments":[{"baseExpression":{"id":133913,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10871:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133915,"indexExpression":{"hexValue":"30","id":133914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10885:1:197","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10871:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133916,"name":"key1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133054,"src":"10889:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133912,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10862:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10862:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133918,"nodeType":"ExpressionStatement","src":"10862:32:197"},{"expression":{"arguments":[{"baseExpression":{"id":133920,"name":"keysWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133825,"src":"10909:13:197","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":133922,"indexExpression":{"hexValue":"31","id":133921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10923:1:197","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10909:16:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":133923,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133062,"src":"10927:4:197","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":133919,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[49399,49424,49437,49453,49495,49537,49579,49616,49653,49690,47234,47259,47289,47314,47373,47398,47428,47453,48926,48961],"referencedDeclaration":47289,"src":"10900:8:197","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":133924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10900:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133925,"nodeType":"ExpressionStatement","src":"10900:32:197"}]},"functionSelector":"76270d01","implemented":true,"kind":"function","modifiers":[],"name":"testGetKeysWithValue","nameLocation":"9767:20:197","parameters":{"id":133790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":133789,"mutability":"mutable","name":"value","nameLocation":"9796:5:197","nodeType":"VariableDeclaration","scope":133927,"src":"9788:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133788,"name":"uint256","nodeType":"ElementaryTypeName","src":"9788:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9787:15:197"},"returnParameters":{"id":133791,"nodeType":"ParameterList","parameters":[],"src":"9810:0:197"},"scope":133928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":133019,"name":"Test","nameLocations":["1878:4:197"],"nodeType":"IdentifierPath","referencedDeclaration":58812,"src":"1878:4:197"},"id":133020,"nodeType":"InheritanceSpecifier","src":"1878:4:197"},{"baseName":{"id":133021,"name":"GasReporter","nameLocations":["1884:11:197"],"nodeType":"IdentifierPath","referencedDeclaration":226,"src":"1884:11:197"},"id":133022,"nodeType":"InheritanceSpecifier","src":"1884:11:197"}],"canonicalName":"KeysWithValueModuleTest","contractDependencies":[23730,35431,35451,35650,35830,36019,116209],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[133928,226,58812,49271,49268,58761,54499,54209,53445,51391,50698,49205],"name":"KeysWithValueModuleTest","nameLocation":"1851:23:197","scope":133929,"usedErrors":[702,708,712,714,2860,2863,3343],"usedEvents":[46919,46923,46927,46931,46935,46939,46943,46947,46953,46959,46967,46975,46981,46987,46993,46999,49293,49298,49303,49310,49317,49324]}],"license":"MIT"},"id":197}
|