@hyperlane-xyz/core 5.4.0 → 5.4.1

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.
Files changed (188) hide show
  1. package/contracts/PackageVersioned.sol +1 -1
  2. package/contracts/middleware/InterchainAccountRouter.sol +1 -1
  3. package/contracts/middleware/libs/OwnableMulticall.sol +3 -1
  4. package/contracts/mock/MockHyperlaneEnvironment.sol +4 -2
  5. package/contracts/mock/MockMailbox.sol +2 -2
  6. package/dist/buildArtifact.js +1 -1
  7. package/dist/buildArtifact.json +1 -1
  8. package/dist/contracts/middleware/libs/OwnableMulticall.d.ts +9 -9
  9. package/dist/contracts/middleware/libs/OwnableMulticall.d.ts.map +1 -1
  10. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +9 -9
  11. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  12. package/dist/contracts/mock/MockMailbox.d.ts +8 -8
  13. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  14. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  15. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  16. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  17. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  18. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  19. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  20. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
  21. package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
  22. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
  23. package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
  24. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  25. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  26. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  27. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  28. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
  29. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
  30. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  31. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  32. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  33. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  34. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  35. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  36. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  37. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  38. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  39. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  40. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  41. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  42. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  43. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  44. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  45. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  46. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
  47. package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
  48. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  49. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  50. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  51. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  52. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  53. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  54. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  55. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  56. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  57. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  58. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  59. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  60. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  61. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  62. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  63. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  64. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  65. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  66. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  67. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  68. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  69. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  70. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  71. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  72. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  73. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  74. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
  75. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
  76. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  77. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  78. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  79. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  80. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  81. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  82. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  83. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  84. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  85. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  86. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  87. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  88. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  89. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  90. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  91. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  92. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  93. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  94. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  95. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  96. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  97. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  98. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  99. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  100. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  101. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  102. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  103. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  104. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  105. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  106. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  107. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  108. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  109. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  110. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  111. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  112. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  113. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  114. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  115. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  116. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts +2 -2
  117. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts.map +1 -1
  118. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js +2 -2
  119. package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js.map +1 -1
  120. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  121. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  122. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  123. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  124. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  125. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  126. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +2 -2
  127. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  128. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +2 -2
  129. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  130. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +2 -2
  131. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  132. package/dist/factories/contracts/mock/MockMailbox__factory.js +2 -2
  133. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  134. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  135. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  136. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  137. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  138. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  139. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  140. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  141. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  142. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  143. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  144. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  145. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  146. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  147. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  148. package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
  149. package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
  150. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  151. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  152. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  153. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  154. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
  155. package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
  156. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  157. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  158. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  159. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  160. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  161. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  162. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  163. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  164. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  165. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  166. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  167. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  168. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  169. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  170. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +1 -1
  171. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +1 -1
  172. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +1 -1
  173. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +1 -1
  174. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +1 -1
  175. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +1 -1
  176. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  177. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  178. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  179. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  180. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  181. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  182. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  183. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  184. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  185. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  186. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  187. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  188. package/package.json +2 -2
@@ -12,7 +12,7 @@ export declare class HypERC4626Collateral__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): HypERC4626Collateral;
14
14
  connect(signer: Signer): HypERC4626Collateral__factory;
15
- static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620031553803806200315583398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612e326200032360003960008181610628015281816110c701528181611156015281816116eb015281816117c20152611ab901526000818161048501528181610b0201528181611672015261171d015260006103bb0152600081816105320152818161095e015281816118ba0152611c4a0152612e326000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063d5438eae11610095578063f098111911610064578063f0981119146105c1578063f2ed8c53146105d6578063f2fde38b146105f6578063fbfa77cf1461061657600080fd5b8063d5438eae14610520578063de523cf314610554578063e9198bf914610581578063efae508a146105a157600080fd5b8063aaf5eb68116100d1578063aaf5eb68146104a7578063b1bd6436146104c0578063b49c53a7146104e0578063c0c53b8b1461050057600080fd5b80638da5cb5b146103f257806393c448471461041d578063996c6cc31461047357600080fd5b806356d5d4751161016f578063775313a11161013e578063775313a1146103175780637f5a7c7b1461034457806381b4e8b4146103965780638d3638f4146103a957600080fd5b806356d5d475146102af57806370a08231146102c2578063715018a6146102e257806371a15b38146102f757600080fd5b806342904642116101ab5780634290464214610247578063440df4f41461025a57806349d462ef1461027c57806351debffc1461029c57600080fd5b80630e72cc06146101d25780632ead72f6146101f45780633dfd387314610227575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461264c565b61064a565b005b34801561020057600080fd5b5061021461020f36600461267b565b610765565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506101f261024236600461264c565b610784565b6101f261025536600461267b565b61089a565b34801561026657600080fd5b5061026f6108c1565b60405161021e9190612696565b34801561028857600080fd5b506101f26102973660046126e0565b6108d2565b6102146102aa36600461274c565b6108f4565b6101f26102bd3660046127c3565b610946565b3480156102ce57600080fd5b506102146102dd36600461264c565b610aba565b3480156102ee57600080fd5b506101f2610b75565b34801561030357600080fd5b506101f2610312366004612862565b610b89565b34801561032357600080fd5b5061021461033236600461267b565b60ca6020526000908152604090205481565b34801561035057600080fd5b506065546103719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b6102146103a43660046128a4565b610be4565b3480156103b557600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b3480156103fe57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610371565b34801561042957600080fd5b506104666040518060400160405280600581526020017f352e342e3000000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612945565b34801561047f57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b357600080fd5b506102146402540be40081565b3480156104cc57600080fd5b506101f26104db366004612958565b610bfc565b3480156104ec57600080fd5b506101f26104fb3660046126e0565b610c86565b34801561050c57600080fd5b506101f261051b3660046129cd565b610c98565b34801561052c57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b34801561056057600080fd5b506066546103719073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058d57600080fd5b506101f261059c366004612a10565b610e2f565b3480156105ad57600080fd5b506101f26105bc36600461267b565b610f0e565b3480156105cd57600080fd5b50610214600181565b3480156105e257600080fd5b506102146105f136600461267b565b610f22565b34801561060257600080fd5b506101f261061136600461264c565b610f59565b34801561062257600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610684575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61071d61100d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077c609763ffffffff8086169061108e16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107be575073ffffffffffffffffffffffffffffffffffffffff8116155b61084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161070c565b61085261100d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108bd81600160001b6000346040518060200160405280600081525060006110a7565b5050565b60606108cd6097611287565b905090565b6108da61100d565b63ffffffff91909116600090815260ca6020526040902055565b600061093b8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506110a7915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161070c565b6000610a1685611342565b9050838114610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161070c565b610ab3858585856113a7565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6f9190612a70565b92915050565b610b7d61100d565b610b876000611431565b565b610b9161100d565b8060005b81811015610bde57610bcc848483818110610bb257610bb2612a89565b9050602002016020810190610bc7919061267b565b6114a8565b610bd7600182612ae7565b9050610b95565b50505050565b6000610bf2848484346114fd565b90505b9392505050565b610c0461100d565b60005b81811015610c8157610c6f838383818110610c2457610c24612a89565b610c3a926020604090920201908101915061267b565b848484818110610c4c57610c4c612a89565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c7a600182612ae7565b9050610c07565b505050565b610c8e61100d565b6108bd8282611536565b600054610100900460ff1615808015610cb85750600054600160ff909116105b80610cd25750303b158015610cd2575060005460ff166001145b610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161070c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dbc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610dc784848461154c565b8015610bde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610e3761100d565b828114610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161070c565b8260005b81811015610f0657610ef4868683818110610ec157610ec1612a89565b9050602002016020810190610ed6919061267b565b858584818110610ee857610ee8612a89565b90506020020135611536565b610eff600182612ae7565b9050610ea4565b505050505050565b610f1661100d565b610f1f816114a8565b50565b604080516020810190915260008082526065549091610b6f9184919073ffffffffffffffffffffffffffffffffffffffff16611606565b610f6161100d565b73ffffffffffffffffffffffffffffffffffffffff8116611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161070c565b610f1f81611431565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161070c565b60008061109b848461161c565b915091505b9250929050565b60006110b285611656565b5060006110be866116ae565b905060006111f27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111549190612a70565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612a70565b6402540be40091906000611820565b905060008160405160200161120991815260200190565b604051602081830303815290604052905060006112278a858461187b565b90506112368b89838a8a6118aa565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161127191815260200190565b60405180910390a3505050509695505050505050565b606060006112948361195d565b9050805167ffffffffffffffff8111156112b0576112b0612afa565b6040519080825280602002602001820160405280156112d9578160200160208202803683370190505b50915060005b815181101561133b578181815181106112fa576112fa612a89565b602002602001015183828151811061131457611314612a89565b63ffffffff909216602092830291909101909101528061133381612b29565b9150506112df565b5050919050565b6000808061135a609763ffffffff8087169061108e16565b91509150811561136b579392505050565b611374846119f8565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b60006113b38383611a2f565b905060006113c18484611a47565b90503660006113d08686611a57565b915091506113e66113de8590565b848484611a67565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161141f91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6114bc609763ffffffff80841690611b2616565b6114c5826119f8565b906108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b600061152d8585858561150f8a611b32565b60655473ffffffffffffffffffffffffffffffffffffffff166110a7565b95945050505050565b6108bd609763ffffffff808516908490611b5416565b600054610100900460ff166115e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b6115eb611b5f565b6115f483610784565b6115fd8261064a565b610c8181611431565b6000610bf2848461161687611b32565b85611bfe565b600081815260028301602052604081205481908061164b5761163e8585611cc8565b9250600091506110a09050565b6001925090506110a0565b606061169a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611cd4565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190612b61565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610b4b573d6000803e3d6000fd5b60008061182e868686611d69565b9050600183600281111561184457611844612b83565b14801561186157506000848061185c5761185c612bb2565b868809115b1561152d57611871600182612ae7565b9695505050505050565b606083838360405160200161189293929190612be1565b60405160208183030381529060405290509392505050565b6000806118b687611342565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b815260040161191a959493929190612c0e565b60206040518083038185885af1158015611938573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093b9190612a70565b6060600061196a83611e93565b90508067ffffffffffffffff81111561198557611985612afa565b6040519080825280602002602001820160405280156119ae578160200160208202803683370190505b50915060005b8181101561133b576119c68482611e9e565b60001c8382815181106119db576119db612a89565b6020908102919091010152806119f081612b29565b9150506119b4565b6060611a098263ffffffff16611eaa565b604051602001611a199190612c6e565b6040516020818303038152906040529050919050565b6000611a3e6020828486612cb3565b610bf591612cdd565b6000611a3e604060208486612cb3565b36600061109b8360408187612cb3565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190612a70565b6000610bf58383611f68565b63ffffffff8116600090815260ca6020526040902054606090610b6f90611f85565b610bde838383611fa3565b600054610100900460ff16611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b87611fc0565b600080611c0a86611342565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c8790899085908a908a908a90600401612c0e565b602060405180830381865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612a70565b6000610bf58383612060565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610bde908590612078565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611dc157838281611db757611db7612bb2565b0492505050610bf5565b808411611e2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161070c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b6f82612187565b6000610bf58383612191565b60606000611eb7836121bb565b600101905060008167ffffffffffffffff811115611ed757611ed7612afa565b6040519080825280601f01601f191660200182016040528015611f01576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f0b57509392505050565b60008181526002830160205260408120819055610bf5838361229d565b6060610b6f60008333604051806020016040528060008152506122a9565b60008281526002840160205260408120829055610bf284846122de565b600054610100900460ff16612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b8733611431565b60008181526001830160205260408120541515610bf5565b60006120da826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122ea9092919063ffffffff16565b90508051600014806120fb5750808060200190518101906120fb9190612b61565b610c81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161070c565b6000610b6f825490565b60008260000182815481106121a8576121a8612a89565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612204577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612230576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061224e57662386f26fc10000830492506010015b6305f5e1008310612266576305f5e100830492506008015b612710831061227a57612710830492506004015b6064831061228c576064830492506002015b600a8310610b6f5760010192915050565b6000610bf583836122f9565b60606001858585856040516020016122c5959493929190612d19565b6040516020818303038152906040529050949350505050565b6000610bf583836123ec565b6060610bf2848460008561243b565b600081815260018301602052604081205480156123e257600061231d600183612d9e565b855490915060009061233190600190612d9e565b905081811461239657600086600001828154811061235157612351612a89565b906000526020600020015490508087600001848154811061237457612374612a89565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123a7576123a7612db1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b6f565b6000915050610b6f565b600081815260018301602052604081205461243357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b6f565b506000610b6f565b6060824710156124cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161070c565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124f69190612de0565b60006040518083038185875af1925050503d8060008114612533576040519150601f19603f3d011682016040523d82523d6000602084013e612538565b606091505b509150915061093b87838387606083156125da5782516000036125d35773ffffffffffffffffffffffffffffffffffffffff85163b6125d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161070c565b508161077c565b61077c83838151156125ef5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b803573ffffffffffffffffffffffffffffffffffffffff8116811461264757600080fd5b919050565b60006020828403121561265e57600080fd5b610bf582612623565b803563ffffffff8116811461264757600080fd5b60006020828403121561268d57600080fd5b610bf582612667565b6020808252825182820181905260009190848201906040850190845b818110156126d457835163ffffffff16835292840192918401916001016126b2565b50909695505050505050565b600080604083850312156126f357600080fd5b6126fc83612667565b946020939093013593505050565b60008083601f84011261271c57600080fd5b50813567ffffffffffffffff81111561273457600080fd5b6020830191508360208285010111156110a057600080fd5b60008060008060008060a0878903121561276557600080fd5b61276e87612667565b95506020870135945060408701359350606087013567ffffffffffffffff81111561279857600080fd5b6127a489828a0161270a565b90945092506127b7905060808801612623565b90509295509295509295565b600080600080606085870312156127d957600080fd5b6127e285612667565b935060208501359250604085013567ffffffffffffffff81111561280557600080fd5b6128118782880161270a565b95989497509550505050565b60008083601f84011261282f57600080fd5b50813567ffffffffffffffff81111561284757600080fd5b6020830191508360208260051b85010111156110a057600080fd5b6000806020838503121561287557600080fd5b823567ffffffffffffffff81111561288c57600080fd5b6128988582860161281d565b90969095509350505050565b6000806000606084860312156128b957600080fd5b6128c284612667565b95602085013595506040909401359392505050565b60005b838110156128f25781810151838201526020016128da565b50506000910152565b600081518084526129138160208601602086016128d7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bf560208301846128fb565b6000806020838503121561296b57600080fd5b823567ffffffffffffffff8082111561298357600080fd5b818501915085601f83011261299757600080fd5b8135818111156129a657600080fd5b8660208260061b85010111156129bb57600080fd5b60209290920196919550909350505050565b6000806000606084860312156129e257600080fd5b6129eb84612623565b92506129f960208501612623565b9150612a0760408501612623565b90509250925092565b60008060008060408587031215612a2657600080fd5b843567ffffffffffffffff80821115612a3e57600080fd5b612a4a8883890161281d565b90965094506020870135915080821115612a6357600080fd5b506128118782880161281d565b600060208284031215612a8257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5a57612b5a612ab8565b5060010190565b600060208284031215612b7357600080fd5b81518015158114610bf557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612bff8160408501602087016128d7565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612c3360a08301866128fb565b8281036060840152612c4581866128fb565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca681601f8501602087016128d7565b91909101601f0192915050565b60008085851115612cc357600080fd5b83861115612cd057600080fd5b5050820193919092039150565b80356020831015610b6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d8d8160568501602087016128d7565b919091016056019695505050505050565b81810381811115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612df28184602087016128d7565b919091019291505056fea264697066735822122042b61850fb2b313e5930969ceb9beab3b089fbaf7f267329a5453a21db0a686864736f6c63430008130033";
15
+ static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620031553803806200315583398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612e326200032360003960008181610628015281816110c701528181611156015281816116eb015281816117c20152611ab901526000818161048501528181610b0201528181611672015261171d015260006103bb0152600081816105320152818161095e015281816118ba0152611c4a0152612e326000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063d5438eae11610095578063f098111911610064578063f0981119146105c1578063f2ed8c53146105d6578063f2fde38b146105f6578063fbfa77cf1461061657600080fd5b8063d5438eae14610520578063de523cf314610554578063e9198bf914610581578063efae508a146105a157600080fd5b8063aaf5eb68116100d1578063aaf5eb68146104a7578063b1bd6436146104c0578063b49c53a7146104e0578063c0c53b8b1461050057600080fd5b80638da5cb5b146103f257806393c448471461041d578063996c6cc31461047357600080fd5b806356d5d4751161016f578063775313a11161013e578063775313a1146103175780637f5a7c7b1461034457806381b4e8b4146103965780638d3638f4146103a957600080fd5b806356d5d475146102af57806370a08231146102c2578063715018a6146102e257806371a15b38146102f757600080fd5b806342904642116101ab5780634290464214610247578063440df4f41461025a57806349d462ef1461027c57806351debffc1461029c57600080fd5b80630e72cc06146101d25780632ead72f6146101f45780633dfd387314610227575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461264c565b61064a565b005b34801561020057600080fd5b5061021461020f36600461267b565b610765565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506101f261024236600461264c565b610784565b6101f261025536600461267b565b61089a565b34801561026657600080fd5b5061026f6108c1565b60405161021e9190612696565b34801561028857600080fd5b506101f26102973660046126e0565b6108d2565b6102146102aa36600461274c565b6108f4565b6101f26102bd3660046127c3565b610946565b3480156102ce57600080fd5b506102146102dd36600461264c565b610aba565b3480156102ee57600080fd5b506101f2610b75565b34801561030357600080fd5b506101f2610312366004612862565b610b89565b34801561032357600080fd5b5061021461033236600461267b565b60ca6020526000908152604090205481565b34801561035057600080fd5b506065546103719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b6102146103a43660046128a4565b610be4565b3480156103b557600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b3480156103fe57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610371565b34801561042957600080fd5b506104666040518060400160405280600581526020017f352e342e3100000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612945565b34801561047f57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b357600080fd5b506102146402540be40081565b3480156104cc57600080fd5b506101f26104db366004612958565b610bfc565b3480156104ec57600080fd5b506101f26104fb3660046126e0565b610c86565b34801561050c57600080fd5b506101f261051b3660046129cd565b610c98565b34801561052c57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b34801561056057600080fd5b506066546103719073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058d57600080fd5b506101f261059c366004612a10565b610e2f565b3480156105ad57600080fd5b506101f26105bc36600461267b565b610f0e565b3480156105cd57600080fd5b50610214600181565b3480156105e257600080fd5b506102146105f136600461267b565b610f22565b34801561060257600080fd5b506101f261061136600461264c565b610f59565b34801561062257600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610684575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61071d61100d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077c609763ffffffff8086169061108e16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107be575073ffffffffffffffffffffffffffffffffffffffff8116155b61084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161070c565b61085261100d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108bd81600160001b6000346040518060200160405280600081525060006110a7565b5050565b60606108cd6097611287565b905090565b6108da61100d565b63ffffffff91909116600090815260ca6020526040902055565b600061093b8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506110a7915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161070c565b6000610a1685611342565b9050838114610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161070c565b610ab3858585856113a7565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6f9190612a70565b92915050565b610b7d61100d565b610b876000611431565b565b610b9161100d565b8060005b81811015610bde57610bcc848483818110610bb257610bb2612a89565b9050602002016020810190610bc7919061267b565b6114a8565b610bd7600182612ae7565b9050610b95565b50505050565b6000610bf2848484346114fd565b90505b9392505050565b610c0461100d565b60005b81811015610c8157610c6f838383818110610c2457610c24612a89565b610c3a926020604090920201908101915061267b565b848484818110610c4c57610c4c612a89565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c7a600182612ae7565b9050610c07565b505050565b610c8e61100d565b6108bd8282611536565b600054610100900460ff1615808015610cb85750600054600160ff909116105b80610cd25750303b158015610cd2575060005460ff166001145b610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161070c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dbc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610dc784848461154c565b8015610bde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610e3761100d565b828114610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161070c565b8260005b81811015610f0657610ef4868683818110610ec157610ec1612a89565b9050602002016020810190610ed6919061267b565b858584818110610ee857610ee8612a89565b90506020020135611536565b610eff600182612ae7565b9050610ea4565b505050505050565b610f1661100d565b610f1f816114a8565b50565b604080516020810190915260008082526065549091610b6f9184919073ffffffffffffffffffffffffffffffffffffffff16611606565b610f6161100d565b73ffffffffffffffffffffffffffffffffffffffff8116611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161070c565b610f1f81611431565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161070c565b60008061109b848461161c565b915091505b9250929050565b60006110b285611656565b5060006110be866116ae565b905060006111f27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111549190612a70565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612a70565b6402540be40091906000611820565b905060008160405160200161120991815260200190565b604051602081830303815290604052905060006112278a858461187b565b90506112368b89838a8a6118aa565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161127191815260200190565b60405180910390a3505050509695505050505050565b606060006112948361195d565b9050805167ffffffffffffffff8111156112b0576112b0612afa565b6040519080825280602002602001820160405280156112d9578160200160208202803683370190505b50915060005b815181101561133b578181815181106112fa576112fa612a89565b602002602001015183828151811061131457611314612a89565b63ffffffff909216602092830291909101909101528061133381612b29565b9150506112df565b5050919050565b6000808061135a609763ffffffff8087169061108e16565b91509150811561136b579392505050565b611374846119f8565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b60006113b38383611a2f565b905060006113c18484611a47565b90503660006113d08686611a57565b915091506113e66113de8590565b848484611a67565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161141f91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6114bc609763ffffffff80841690611b2616565b6114c5826119f8565b906108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b600061152d8585858561150f8a611b32565b60655473ffffffffffffffffffffffffffffffffffffffff166110a7565b95945050505050565b6108bd609763ffffffff808516908490611b5416565b600054610100900460ff166115e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b6115eb611b5f565b6115f483610784565b6115fd8261064a565b610c8181611431565b6000610bf2848461161687611b32565b85611bfe565b600081815260028301602052604081205481908061164b5761163e8585611cc8565b9250600091506110a09050565b6001925090506110a0565b606061169a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611cd4565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190612b61565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610b4b573d6000803e3d6000fd5b60008061182e868686611d69565b9050600183600281111561184457611844612b83565b14801561186157506000848061185c5761185c612bb2565b868809115b1561152d57611871600182612ae7565b9695505050505050565b606083838360405160200161189293929190612be1565b60405160208183030381529060405290509392505050565b6000806118b687611342565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b815260040161191a959493929190612c0e565b60206040518083038185885af1158015611938573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093b9190612a70565b6060600061196a83611e93565b90508067ffffffffffffffff81111561198557611985612afa565b6040519080825280602002602001820160405280156119ae578160200160208202803683370190505b50915060005b8181101561133b576119c68482611e9e565b60001c8382815181106119db576119db612a89565b6020908102919091010152806119f081612b29565b9150506119b4565b6060611a098263ffffffff16611eaa565b604051602001611a199190612c6e565b6040516020818303038152906040529050919050565b6000611a3e6020828486612cb3565b610bf591612cdd565b6000611a3e604060208486612cb3565b36600061109b8360408187612cb3565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190612a70565b6000610bf58383611f68565b63ffffffff8116600090815260ca6020526040902054606090610b6f90611f85565b610bde838383611fa3565b600054610100900460ff16611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b87611fc0565b600080611c0a86611342565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c8790899085908a908a908a90600401612c0e565b602060405180830381865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612a70565b6000610bf58383612060565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610bde908590612078565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611dc157838281611db757611db7612bb2565b0492505050610bf5565b808411611e2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161070c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b6f82612187565b6000610bf58383612191565b60606000611eb7836121bb565b600101905060008167ffffffffffffffff811115611ed757611ed7612afa565b6040519080825280601f01601f191660200182016040528015611f01576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f0b57509392505050565b60008181526002830160205260408120819055610bf5838361229d565b6060610b6f60008333604051806020016040528060008152506122a9565b60008281526002840160205260408120829055610bf284846122de565b600054610100900460ff16612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b8733611431565b60008181526001830160205260408120541515610bf5565b60006120da826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122ea9092919063ffffffff16565b90508051600014806120fb5750808060200190518101906120fb9190612b61565b610c81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161070c565b6000610b6f825490565b60008260000182815481106121a8576121a8612a89565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612204577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612230576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061224e57662386f26fc10000830492506010015b6305f5e1008310612266576305f5e100830492506008015b612710831061227a57612710830492506004015b6064831061228c576064830492506002015b600a8310610b6f5760010192915050565b6000610bf583836122f9565b60606001858585856040516020016122c5959493929190612d19565b6040516020818303038152906040529050949350505050565b6000610bf583836123ec565b6060610bf2848460008561243b565b600081815260018301602052604081205480156123e257600061231d600183612d9e565b855490915060009061233190600190612d9e565b905081811461239657600086600001828154811061235157612351612a89565b906000526020600020015490508087600001848154811061237457612374612a89565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123a7576123a7612db1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b6f565b6000915050610b6f565b600081815260018301602052604081205461243357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b6f565b506000610b6f565b6060824710156124cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161070c565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124f69190612de0565b60006040518083038185875af1925050503d8060008114612533576040519150601f19603f3d011682016040523d82523d6000602084013e612538565b606091505b509150915061093b87838387606083156125da5782516000036125d35773ffffffffffffffffffffffffffffffffffffffff85163b6125d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161070c565b508161077c565b61077c83838151156125ef5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b803573ffffffffffffffffffffffffffffffffffffffff8116811461264757600080fd5b919050565b60006020828403121561265e57600080fd5b610bf582612623565b803563ffffffff8116811461264757600080fd5b60006020828403121561268d57600080fd5b610bf582612667565b6020808252825182820181905260009190848201906040850190845b818110156126d457835163ffffffff16835292840192918401916001016126b2565b50909695505050505050565b600080604083850312156126f357600080fd5b6126fc83612667565b946020939093013593505050565b60008083601f84011261271c57600080fd5b50813567ffffffffffffffff81111561273457600080fd5b6020830191508360208285010111156110a057600080fd5b60008060008060008060a0878903121561276557600080fd5b61276e87612667565b95506020870135945060408701359350606087013567ffffffffffffffff81111561279857600080fd5b6127a489828a0161270a565b90945092506127b7905060808801612623565b90509295509295509295565b600080600080606085870312156127d957600080fd5b6127e285612667565b935060208501359250604085013567ffffffffffffffff81111561280557600080fd5b6128118782880161270a565b95989497509550505050565b60008083601f84011261282f57600080fd5b50813567ffffffffffffffff81111561284757600080fd5b6020830191508360208260051b85010111156110a057600080fd5b6000806020838503121561287557600080fd5b823567ffffffffffffffff81111561288c57600080fd5b6128988582860161281d565b90969095509350505050565b6000806000606084860312156128b957600080fd5b6128c284612667565b95602085013595506040909401359392505050565b60005b838110156128f25781810151838201526020016128da565b50506000910152565b600081518084526129138160208601602086016128d7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bf560208301846128fb565b6000806020838503121561296b57600080fd5b823567ffffffffffffffff8082111561298357600080fd5b818501915085601f83011261299757600080fd5b8135818111156129a657600080fd5b8660208260061b85010111156129bb57600080fd5b60209290920196919550909350505050565b6000806000606084860312156129e257600080fd5b6129eb84612623565b92506129f960208501612623565b9150612a0760408501612623565b90509250925092565b60008060008060408587031215612a2657600080fd5b843567ffffffffffffffff80821115612a3e57600080fd5b612a4a8883890161281d565b90965094506020870135915080821115612a6357600080fd5b506128118782880161281d565b600060208284031215612a8257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5a57612b5a612ab8565b5060010190565b600060208284031215612b7357600080fd5b81518015158114610bf557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612bff8160408501602087016128d7565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612c3360a08301866128fb565b8281036060840152612c4581866128fb565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca681601f8501602087016128d7565b91909101601f0192915050565b60008085851115612cc357600080fd5b83861115612cd057600080fd5b5050820193919092039150565b80356020831015610b6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d8d8160568501602087016128d7565b919091016056019695505050505050565b81810381811115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612df28184602087016128d7565b919091019291505056fea26469706673582212207da6ab994a747dcf83746d385f28470fa91684d1b6926b41ac03cc710da5350d64736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ERC4626";
@@ -599,7 +599,7 @@ const _abi = [
599
599
  type: "function",
600
600
  },
601
601
  ];
602
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620031553803806200315583398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612e326200032360003960008181610628015281816110c701528181611156015281816116eb015281816117c20152611ab901526000818161048501528181610b0201528181611672015261171d015260006103bb0152600081816105320152818161095e015281816118ba0152611c4a0152612e326000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063d5438eae11610095578063f098111911610064578063f0981119146105c1578063f2ed8c53146105d6578063f2fde38b146105f6578063fbfa77cf1461061657600080fd5b8063d5438eae14610520578063de523cf314610554578063e9198bf914610581578063efae508a146105a157600080fd5b8063aaf5eb68116100d1578063aaf5eb68146104a7578063b1bd6436146104c0578063b49c53a7146104e0578063c0c53b8b1461050057600080fd5b80638da5cb5b146103f257806393c448471461041d578063996c6cc31461047357600080fd5b806356d5d4751161016f578063775313a11161013e578063775313a1146103175780637f5a7c7b1461034457806381b4e8b4146103965780638d3638f4146103a957600080fd5b806356d5d475146102af57806370a08231146102c2578063715018a6146102e257806371a15b38146102f757600080fd5b806342904642116101ab5780634290464214610247578063440df4f41461025a57806349d462ef1461027c57806351debffc1461029c57600080fd5b80630e72cc06146101d25780632ead72f6146101f45780633dfd387314610227575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461264c565b61064a565b005b34801561020057600080fd5b5061021461020f36600461267b565b610765565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506101f261024236600461264c565b610784565b6101f261025536600461267b565b61089a565b34801561026657600080fd5b5061026f6108c1565b60405161021e9190612696565b34801561028857600080fd5b506101f26102973660046126e0565b6108d2565b6102146102aa36600461274c565b6108f4565b6101f26102bd3660046127c3565b610946565b3480156102ce57600080fd5b506102146102dd36600461264c565b610aba565b3480156102ee57600080fd5b506101f2610b75565b34801561030357600080fd5b506101f2610312366004612862565b610b89565b34801561032357600080fd5b5061021461033236600461267b565b60ca6020526000908152604090205481565b34801561035057600080fd5b506065546103719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b6102146103a43660046128a4565b610be4565b3480156103b557600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b3480156103fe57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610371565b34801561042957600080fd5b506104666040518060400160405280600581526020017f352e342e3000000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612945565b34801561047f57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b357600080fd5b506102146402540be40081565b3480156104cc57600080fd5b506101f26104db366004612958565b610bfc565b3480156104ec57600080fd5b506101f26104fb3660046126e0565b610c86565b34801561050c57600080fd5b506101f261051b3660046129cd565b610c98565b34801561052c57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b34801561056057600080fd5b506066546103719073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058d57600080fd5b506101f261059c366004612a10565b610e2f565b3480156105ad57600080fd5b506101f26105bc36600461267b565b610f0e565b3480156105cd57600080fd5b50610214600181565b3480156105e257600080fd5b506102146105f136600461267b565b610f22565b34801561060257600080fd5b506101f261061136600461264c565b610f59565b34801561062257600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610684575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61071d61100d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077c609763ffffffff8086169061108e16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107be575073ffffffffffffffffffffffffffffffffffffffff8116155b61084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161070c565b61085261100d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108bd81600160001b6000346040518060200160405280600081525060006110a7565b5050565b60606108cd6097611287565b905090565b6108da61100d565b63ffffffff91909116600090815260ca6020526040902055565b600061093b8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506110a7915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161070c565b6000610a1685611342565b9050838114610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161070c565b610ab3858585856113a7565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6f9190612a70565b92915050565b610b7d61100d565b610b876000611431565b565b610b9161100d565b8060005b81811015610bde57610bcc848483818110610bb257610bb2612a89565b9050602002016020810190610bc7919061267b565b6114a8565b610bd7600182612ae7565b9050610b95565b50505050565b6000610bf2848484346114fd565b90505b9392505050565b610c0461100d565b60005b81811015610c8157610c6f838383818110610c2457610c24612a89565b610c3a926020604090920201908101915061267b565b848484818110610c4c57610c4c612a89565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c7a600182612ae7565b9050610c07565b505050565b610c8e61100d565b6108bd8282611536565b600054610100900460ff1615808015610cb85750600054600160ff909116105b80610cd25750303b158015610cd2575060005460ff166001145b610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161070c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dbc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610dc784848461154c565b8015610bde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610e3761100d565b828114610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161070c565b8260005b81811015610f0657610ef4868683818110610ec157610ec1612a89565b9050602002016020810190610ed6919061267b565b858584818110610ee857610ee8612a89565b90506020020135611536565b610eff600182612ae7565b9050610ea4565b505050505050565b610f1661100d565b610f1f816114a8565b50565b604080516020810190915260008082526065549091610b6f9184919073ffffffffffffffffffffffffffffffffffffffff16611606565b610f6161100d565b73ffffffffffffffffffffffffffffffffffffffff8116611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161070c565b610f1f81611431565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161070c565b60008061109b848461161c565b915091505b9250929050565b60006110b285611656565b5060006110be866116ae565b905060006111f27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111549190612a70565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612a70565b6402540be40091906000611820565b905060008160405160200161120991815260200190565b604051602081830303815290604052905060006112278a858461187b565b90506112368b89838a8a6118aa565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161127191815260200190565b60405180910390a3505050509695505050505050565b606060006112948361195d565b9050805167ffffffffffffffff8111156112b0576112b0612afa565b6040519080825280602002602001820160405280156112d9578160200160208202803683370190505b50915060005b815181101561133b578181815181106112fa576112fa612a89565b602002602001015183828151811061131457611314612a89565b63ffffffff909216602092830291909101909101528061133381612b29565b9150506112df565b5050919050565b6000808061135a609763ffffffff8087169061108e16565b91509150811561136b579392505050565b611374846119f8565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b60006113b38383611a2f565b905060006113c18484611a47565b90503660006113d08686611a57565b915091506113e66113de8590565b848484611a67565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161141f91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6114bc609763ffffffff80841690611b2616565b6114c5826119f8565b906108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b600061152d8585858561150f8a611b32565b60655473ffffffffffffffffffffffffffffffffffffffff166110a7565b95945050505050565b6108bd609763ffffffff808516908490611b5416565b600054610100900460ff166115e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b6115eb611b5f565b6115f483610784565b6115fd8261064a565b610c8181611431565b6000610bf2848461161687611b32565b85611bfe565b600081815260028301602052604081205481908061164b5761163e8585611cc8565b9250600091506110a09050565b6001925090506110a0565b606061169a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611cd4565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190612b61565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610b4b573d6000803e3d6000fd5b60008061182e868686611d69565b9050600183600281111561184457611844612b83565b14801561186157506000848061185c5761185c612bb2565b868809115b1561152d57611871600182612ae7565b9695505050505050565b606083838360405160200161189293929190612be1565b60405160208183030381529060405290509392505050565b6000806118b687611342565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b815260040161191a959493929190612c0e565b60206040518083038185885af1158015611938573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093b9190612a70565b6060600061196a83611e93565b90508067ffffffffffffffff81111561198557611985612afa565b6040519080825280602002602001820160405280156119ae578160200160208202803683370190505b50915060005b8181101561133b576119c68482611e9e565b60001c8382815181106119db576119db612a89565b6020908102919091010152806119f081612b29565b9150506119b4565b6060611a098263ffffffff16611eaa565b604051602001611a199190612c6e565b6040516020818303038152906040529050919050565b6000611a3e6020828486612cb3565b610bf591612cdd565b6000611a3e604060208486612cb3565b36600061109b8360408187612cb3565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190612a70565b6000610bf58383611f68565b63ffffffff8116600090815260ca6020526040902054606090610b6f90611f85565b610bde838383611fa3565b600054610100900460ff16611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b87611fc0565b600080611c0a86611342565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c8790899085908a908a908a90600401612c0e565b602060405180830381865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612a70565b6000610bf58383612060565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610bde908590612078565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611dc157838281611db757611db7612bb2565b0492505050610bf5565b808411611e2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161070c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b6f82612187565b6000610bf58383612191565b60606000611eb7836121bb565b600101905060008167ffffffffffffffff811115611ed757611ed7612afa565b6040519080825280601f01601f191660200182016040528015611f01576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f0b57509392505050565b60008181526002830160205260408120819055610bf5838361229d565b6060610b6f60008333604051806020016040528060008152506122a9565b60008281526002840160205260408120829055610bf284846122de565b600054610100900460ff16612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b8733611431565b60008181526001830160205260408120541515610bf5565b60006120da826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122ea9092919063ffffffff16565b90508051600014806120fb5750808060200190518101906120fb9190612b61565b610c81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161070c565b6000610b6f825490565b60008260000182815481106121a8576121a8612a89565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612204577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612230576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061224e57662386f26fc10000830492506010015b6305f5e1008310612266576305f5e100830492506008015b612710831061227a57612710830492506004015b6064831061228c576064830492506002015b600a8310610b6f5760010192915050565b6000610bf583836122f9565b60606001858585856040516020016122c5959493929190612d19565b6040516020818303038152906040529050949350505050565b6000610bf583836123ec565b6060610bf2848460008561243b565b600081815260018301602052604081205480156123e257600061231d600183612d9e565b855490915060009061233190600190612d9e565b905081811461239657600086600001828154811061235157612351612a89565b906000526020600020015490508087600001848154811061237457612374612a89565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123a7576123a7612db1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b6f565b6000915050610b6f565b600081815260018301602052604081205461243357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b6f565b506000610b6f565b6060824710156124cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161070c565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124f69190612de0565b60006040518083038185875af1925050503d8060008114612533576040519150601f19603f3d011682016040523d82523d6000602084013e612538565b606091505b509150915061093b87838387606083156125da5782516000036125d35773ffffffffffffffffffffffffffffffffffffffff85163b6125d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161070c565b508161077c565b61077c83838151156125ef5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b803573ffffffffffffffffffffffffffffffffffffffff8116811461264757600080fd5b919050565b60006020828403121561265e57600080fd5b610bf582612623565b803563ffffffff8116811461264757600080fd5b60006020828403121561268d57600080fd5b610bf582612667565b6020808252825182820181905260009190848201906040850190845b818110156126d457835163ffffffff16835292840192918401916001016126b2565b50909695505050505050565b600080604083850312156126f357600080fd5b6126fc83612667565b946020939093013593505050565b60008083601f84011261271c57600080fd5b50813567ffffffffffffffff81111561273457600080fd5b6020830191508360208285010111156110a057600080fd5b60008060008060008060a0878903121561276557600080fd5b61276e87612667565b95506020870135945060408701359350606087013567ffffffffffffffff81111561279857600080fd5b6127a489828a0161270a565b90945092506127b7905060808801612623565b90509295509295509295565b600080600080606085870312156127d957600080fd5b6127e285612667565b935060208501359250604085013567ffffffffffffffff81111561280557600080fd5b6128118782880161270a565b95989497509550505050565b60008083601f84011261282f57600080fd5b50813567ffffffffffffffff81111561284757600080fd5b6020830191508360208260051b85010111156110a057600080fd5b6000806020838503121561287557600080fd5b823567ffffffffffffffff81111561288c57600080fd5b6128988582860161281d565b90969095509350505050565b6000806000606084860312156128b957600080fd5b6128c284612667565b95602085013595506040909401359392505050565b60005b838110156128f25781810151838201526020016128da565b50506000910152565b600081518084526129138160208601602086016128d7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bf560208301846128fb565b6000806020838503121561296b57600080fd5b823567ffffffffffffffff8082111561298357600080fd5b818501915085601f83011261299757600080fd5b8135818111156129a657600080fd5b8660208260061b85010111156129bb57600080fd5b60209290920196919550909350505050565b6000806000606084860312156129e257600080fd5b6129eb84612623565b92506129f960208501612623565b9150612a0760408501612623565b90509250925092565b60008060008060408587031215612a2657600080fd5b843567ffffffffffffffff80821115612a3e57600080fd5b612a4a8883890161281d565b90965094506020870135915080821115612a6357600080fd5b506128118782880161281d565b600060208284031215612a8257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5a57612b5a612ab8565b5060010190565b600060208284031215612b7357600080fd5b81518015158114610bf557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612bff8160408501602087016128d7565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612c3360a08301866128fb565b8281036060840152612c4581866128fb565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca681601f8501602087016128d7565b91909101601f0192915050565b60008085851115612cc357600080fd5b83861115612cd057600080fd5b5050820193919092039150565b80356020831015610b6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d8d8160568501602087016128d7565b919091016056019695505050505050565b81810381811115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612df28184602087016128d7565b919091019291505056fea264697066735822122042b61850fb2b313e5930969ceb9beab3b089fbaf7f267329a5453a21db0a686864736f6c63430008130033";
602
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620031553803806200315583398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612e326200032360003960008181610628015281816110c701528181611156015281816116eb015281816117c20152611ab901526000818161048501528181610b0201528181611672015261171d015260006103bb0152600081816105320152818161095e015281816118ba0152611c4a0152612e326000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063d5438eae11610095578063f098111911610064578063f0981119146105c1578063f2ed8c53146105d6578063f2fde38b146105f6578063fbfa77cf1461061657600080fd5b8063d5438eae14610520578063de523cf314610554578063e9198bf914610581578063efae508a146105a157600080fd5b8063aaf5eb68116100d1578063aaf5eb68146104a7578063b1bd6436146104c0578063b49c53a7146104e0578063c0c53b8b1461050057600080fd5b80638da5cb5b146103f257806393c448471461041d578063996c6cc31461047357600080fd5b806356d5d4751161016f578063775313a11161013e578063775313a1146103175780637f5a7c7b1461034457806381b4e8b4146103965780638d3638f4146103a957600080fd5b806356d5d475146102af57806370a08231146102c2578063715018a6146102e257806371a15b38146102f757600080fd5b806342904642116101ab5780634290464214610247578063440df4f41461025a57806349d462ef1461027c57806351debffc1461029c57600080fd5b80630e72cc06146101d25780632ead72f6146101f45780633dfd387314610227575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461264c565b61064a565b005b34801561020057600080fd5b5061021461020f36600461267b565b610765565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506101f261024236600461264c565b610784565b6101f261025536600461267b565b61089a565b34801561026657600080fd5b5061026f6108c1565b60405161021e9190612696565b34801561028857600080fd5b506101f26102973660046126e0565b6108d2565b6102146102aa36600461274c565b6108f4565b6101f26102bd3660046127c3565b610946565b3480156102ce57600080fd5b506102146102dd36600461264c565b610aba565b3480156102ee57600080fd5b506101f2610b75565b34801561030357600080fd5b506101f2610312366004612862565b610b89565b34801561032357600080fd5b5061021461033236600461267b565b60ca6020526000908152604090205481565b34801561035057600080fd5b506065546103719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b6102146103a43660046128a4565b610be4565b3480156103b557600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b3480156103fe57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610371565b34801561042957600080fd5b506104666040518060400160405280600581526020017f352e342e3100000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612945565b34801561047f57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b357600080fd5b506102146402540be40081565b3480156104cc57600080fd5b506101f26104db366004612958565b610bfc565b3480156104ec57600080fd5b506101f26104fb3660046126e0565b610c86565b34801561050c57600080fd5b506101f261051b3660046129cd565b610c98565b34801561052c57600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b34801561056057600080fd5b506066546103719073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058d57600080fd5b506101f261059c366004612a10565b610e2f565b3480156105ad57600080fd5b506101f26105bc36600461267b565b610f0e565b3480156105cd57600080fd5b50610214600181565b3480156105e257600080fd5b506102146105f136600461267b565b610f22565b34801561060257600080fd5b506101f261061136600461264c565b610f59565b34801561062257600080fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610684575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61071d61100d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077c609763ffffffff8086169061108e16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107be575073ffffffffffffffffffffffffffffffffffffffff8116155b61084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161070c565b61085261100d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108bd81600160001b6000346040518060200160405280600081525060006110a7565b5050565b60606108cd6097611287565b905090565b6108da61100d565b63ffffffff91909116600090815260ca6020526040902055565b600061093b8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506110a7915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161070c565b6000610a1685611342565b9050838114610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161070c565b610ab3858585856113a7565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6f9190612a70565b92915050565b610b7d61100d565b610b876000611431565b565b610b9161100d565b8060005b81811015610bde57610bcc848483818110610bb257610bb2612a89565b9050602002016020810190610bc7919061267b565b6114a8565b610bd7600182612ae7565b9050610b95565b50505050565b6000610bf2848484346114fd565b90505b9392505050565b610c0461100d565b60005b81811015610c8157610c6f838383818110610c2457610c24612a89565b610c3a926020604090920201908101915061267b565b848484818110610c4c57610c4c612a89565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c7a600182612ae7565b9050610c07565b505050565b610c8e61100d565b6108bd8282611536565b600054610100900460ff1615808015610cb85750600054600160ff909116105b80610cd25750303b158015610cd2575060005460ff166001145b610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161070c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dbc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610dc784848461154c565b8015610bde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610e3761100d565b828114610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161070c565b8260005b81811015610f0657610ef4868683818110610ec157610ec1612a89565b9050602002016020810190610ed6919061267b565b858584818110610ee857610ee8612a89565b90506020020135611536565b610eff600182612ae7565b9050610ea4565b505050505050565b610f1661100d565b610f1f816114a8565b50565b604080516020810190915260008082526065549091610b6f9184919073ffffffffffffffffffffffffffffffffffffffff16611606565b610f6161100d565b73ffffffffffffffffffffffffffffffffffffffff8116611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161070c565b610f1f81611431565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161070c565b60008061109b848461161c565b915091505b9250929050565b60006110b285611656565b5060006110be866116ae565b905060006111f27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111549190612a70565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612a70565b6402540be40091906000611820565b905060008160405160200161120991815260200190565b604051602081830303815290604052905060006112278a858461187b565b90506112368b89838a8a6118aa565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161127191815260200190565b60405180910390a3505050509695505050505050565b606060006112948361195d565b9050805167ffffffffffffffff8111156112b0576112b0612afa565b6040519080825280602002602001820160405280156112d9578160200160208202803683370190505b50915060005b815181101561133b578181815181106112fa576112fa612a89565b602002602001015183828151811061131457611314612a89565b63ffffffff909216602092830291909101909101528061133381612b29565b9150506112df565b5050919050565b6000808061135a609763ffffffff8087169061108e16565b91509150811561136b579392505050565b611374846119f8565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b60006113b38383611a2f565b905060006113c18484611a47565b90503660006113d08686611a57565b915091506113e66113de8590565b848484611a67565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161141f91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6114bc609763ffffffff80841690611b2616565b6114c5826119f8565b906108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b600061152d8585858561150f8a611b32565b60655473ffffffffffffffffffffffffffffffffffffffff166110a7565b95945050505050565b6108bd609763ffffffff808516908490611b5416565b600054610100900460ff166115e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b6115eb611b5f565b6115f483610784565b6115fd8261064a565b610c8181611431565b6000610bf2848461161687611b32565b85611bfe565b600081815260028301602052604081205481908061164b5761163e8585611cc8565b9250600091506110a09050565b6001925090506110a0565b606061169a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611cd4565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190612b61565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610b4b573d6000803e3d6000fd5b60008061182e868686611d69565b9050600183600281111561184457611844612b83565b14801561186157506000848061185c5761185c612bb2565b868809115b1561152d57611871600182612ae7565b9695505050505050565b606083838360405160200161189293929190612be1565b60405160208183030381529060405290509392505050565b6000806118b687611342565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b815260040161191a959493929190612c0e565b60206040518083038185885af1158015611938573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093b9190612a70565b6060600061196a83611e93565b90508067ffffffffffffffff81111561198557611985612afa565b6040519080825280602002602001820160405280156119ae578160200160208202803683370190505b50915060005b8181101561133b576119c68482611e9e565b60001c8382815181106119db576119db612a89565b6020908102919091010152806119f081612b29565b9150506119b4565b6060611a098263ffffffff16611eaa565b604051602001611a199190612c6e565b6040516020818303038152906040529050919050565b6000611a3e6020828486612cb3565b610bf591612cdd565b6000611a3e604060208486612cb3565b36600061109b8360408187612cb3565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190612a70565b6000610bf58383611f68565b63ffffffff8116600090815260ca6020526040902054606090610b6f90611f85565b610bde838383611fa3565b600054610100900460ff16611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b87611fc0565b600080611c0a86611342565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c8790899085908a908a908a90600401612c0e565b602060405180830381865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612a70565b6000610bf58383612060565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610bde908590612078565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611dc157838281611db757611db7612bb2565b0492505050610bf5565b808411611e2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161070c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b6f82612187565b6000610bf58383612191565b60606000611eb7836121bb565b600101905060008167ffffffffffffffff811115611ed757611ed7612afa565b6040519080825280601f01601f191660200182016040528015611f01576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f0b57509392505050565b60008181526002830160205260408120819055610bf5838361229d565b6060610b6f60008333604051806020016040528060008152506122a9565b60008281526002840160205260408120829055610bf284846122de565b600054610100900460ff16612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161070c565b610b8733611431565b60008181526001830160205260408120541515610bf5565b60006120da826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122ea9092919063ffffffff16565b90508051600014806120fb5750808060200190518101906120fb9190612b61565b610c81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161070c565b6000610b6f825490565b60008260000182815481106121a8576121a8612a89565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612204577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612230576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061224e57662386f26fc10000830492506010015b6305f5e1008310612266576305f5e100830492506008015b612710831061227a57612710830492506004015b6064831061228c576064830492506002015b600a8310610b6f5760010192915050565b6000610bf583836122f9565b60606001858585856040516020016122c5959493929190612d19565b6040516020818303038152906040529050949350505050565b6000610bf583836123ec565b6060610bf2848460008561243b565b600081815260018301602052604081205480156123e257600061231d600183612d9e565b855490915060009061233190600190612d9e565b905081811461239657600086600001828154811061235157612351612a89565b906000526020600020015490508087600001848154811061237457612374612a89565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123a7576123a7612db1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b6f565b6000915050610b6f565b600081815260018301602052604081205461243357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b6f565b506000610b6f565b6060824710156124cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161070c565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124f69190612de0565b60006040518083038185875af1925050503d8060008114612533576040519150601f19603f3d011682016040523d82523d6000602084013e612538565b606091505b509150915061093b87838387606083156125da5782516000036125d35773ffffffffffffffffffffffffffffffffffffffff85163b6125d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161070c565b508161077c565b61077c83838151156125ef5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c9190612945565b803573ffffffffffffffffffffffffffffffffffffffff8116811461264757600080fd5b919050565b60006020828403121561265e57600080fd5b610bf582612623565b803563ffffffff8116811461264757600080fd5b60006020828403121561268d57600080fd5b610bf582612667565b6020808252825182820181905260009190848201906040850190845b818110156126d457835163ffffffff16835292840192918401916001016126b2565b50909695505050505050565b600080604083850312156126f357600080fd5b6126fc83612667565b946020939093013593505050565b60008083601f84011261271c57600080fd5b50813567ffffffffffffffff81111561273457600080fd5b6020830191508360208285010111156110a057600080fd5b60008060008060008060a0878903121561276557600080fd5b61276e87612667565b95506020870135945060408701359350606087013567ffffffffffffffff81111561279857600080fd5b6127a489828a0161270a565b90945092506127b7905060808801612623565b90509295509295509295565b600080600080606085870312156127d957600080fd5b6127e285612667565b935060208501359250604085013567ffffffffffffffff81111561280557600080fd5b6128118782880161270a565b95989497509550505050565b60008083601f84011261282f57600080fd5b50813567ffffffffffffffff81111561284757600080fd5b6020830191508360208260051b85010111156110a057600080fd5b6000806020838503121561287557600080fd5b823567ffffffffffffffff81111561288c57600080fd5b6128988582860161281d565b90969095509350505050565b6000806000606084860312156128b957600080fd5b6128c284612667565b95602085013595506040909401359392505050565b60005b838110156128f25781810151838201526020016128da565b50506000910152565b600081518084526129138160208601602086016128d7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bf560208301846128fb565b6000806020838503121561296b57600080fd5b823567ffffffffffffffff8082111561298357600080fd5b818501915085601f83011261299757600080fd5b8135818111156129a657600080fd5b8660208260061b85010111156129bb57600080fd5b60209290920196919550909350505050565b6000806000606084860312156129e257600080fd5b6129eb84612623565b92506129f960208501612623565b9150612a0760408501612623565b90509250925092565b60008060008060408587031215612a2657600080fd5b843567ffffffffffffffff80821115612a3e57600080fd5b612a4a8883890161281d565b90965094506020870135915080821115612a6357600080fd5b506128118782880161281d565b600060208284031215612a8257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5a57612b5a612ab8565b5060010190565b600060208284031215612b7357600080fd5b81518015158114610bf557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612bff8160408501602087016128d7565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612c3360a08301866128fb565b8281036060840152612c4581866128fb565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca681601f8501602087016128d7565b91909101601f0192915050565b60008085851115612cc357600080fd5b83861115612cd057600080fd5b5050820193919092039150565b80356020831015610b6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d8d8160568501602087016128d7565b919091016056019695505050505050565b81810381811115610b6f57610b6f612ab8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612df28184602087016128d7565b919091019291505056fea26469706673582212207da6ab994a747dcf83746d385f28470fa91684d1b6926b41ac03cc710da5350d64736f6c63430008130033";
603
603
  const isSuperArgs = (xs) => xs.length > 1;
604
604
  export class HypERC4626Collateral__factory extends ContractFactory {
605
605
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class HypERC4626OwnerCollateral__factory extends ContractFactory
12
12
  }): TransactionRequest;
13
13
  attach(address: string): HypERC4626OwnerCollateral;
14
14
  connect(signer: Signer): HypERC4626OwnerCollateral__factory;
15
- static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030813803806200308183398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612d576200032a60003960008181610607015281816107ae01528181610854015281816108e40152818161106101528181611cdb0152611e8401526000818161049201528181610d74015281816110af0152611c53015260006103c801526000818161052601528181610bd0015281816119450152611b8c0152612d576000f3fe6080604052600436106101c25760003560e01c806381b4e8b4116100f7578063c0c53b8b11610095578063efae508a11610064578063efae508a14610595578063f2ed8c53146105b5578063f2fde38b146105d5578063fbfa77cf146105f557600080fd5b8063c0c53b8b146104f4578063d5438eae14610514578063de523cf314610548578063e9198bf91461057557600080fd5b806393c44847116100d157806393c448471461042a578063996c6cc314610480578063b1bd6436146104b4578063b49c53a7146104d457600080fd5b806381b4e8b4146103a35780638d3638f4146103b65780638da5cb5b146103ff57600080fd5b806351debffc11610164578063715018a61161013e578063715018a6146102ef57806371a15b3814610304578063775313a1146103245780637f5a7c7b1461035157600080fd5b806351debffc146102a957806356d5d475146102bc57806370a08231146102cf57600080fd5b806335faa416116101a057806335faa416146102325780633dfd387314610247578063440df4f41461026757806349d462ef1461028957600080fd5b8063093bec70146101c75780630e72cc06146101f05780632ead72f614610212575b600080fd5b3480156101d357600080fd5b506101dd60cb5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061021061020b3660046125cf565b610629565b005b34801561021e57600080fd5b506101dd61022d3660046125fe565b610744565b34801561023e57600080fd5b50610210610763565b34801561025357600080fd5b506102106102623660046125cf565b610a19565b34801561027357600080fd5b5061027c610b2f565b6040516101e79190612619565b34801561029557600080fd5b506102106102a4366004612663565b610b40565b6101dd6102b73660046126cf565b610b66565b6102106102ca366004612746565b610bb8565b3480156102db57600080fd5b506101dd6102ea3660046125cf565b610d2c565b3480156102fb57600080fd5b50610210610de7565b34801561031057600080fd5b5061021061031f3660046127e5565b610dfb565b34801561033057600080fd5b506101dd61033f3660046125fe565b60ca6020526000908152604090205481565b34801561035d57600080fd5b5060655461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e7565b6101dd6103b1366004612827565b610e56565b3480156103c257600080fd5b506103ea7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e7565b34801561040b57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661037e565b34801561043657600080fd5b506104736040518060400160405280600581526020017f352e342e3000000000000000000000000000000000000000000000000000000081525081565b6040516101e791906128c8565b34801561048c57600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506102106104cf3660046128db565b610e64565b3480156104e057600080fd5b506102106104ef366004612663565b610eee565b34801561050057600080fd5b5061021061050f366004612950565b610f00565b34801561052057600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055457600080fd5b5060665461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058157600080fd5b50610210610590366004612993565b611190565b3480156105a157600080fd5b506102106105b03660046125fe565b61126f565b3480156105c157600080fd5b506101dd6105d03660046125fe565b611283565b3480156105e157600080fd5b506102106105f03660046125cf565b6112ba565b34801561060157600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610663575073ffffffffffffffffffffffffffffffffffffffff8116155b6106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106fc61136e565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061075b609763ffffffff808616906113ef16565b949350505050565b61076b61136e565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107e59160040190815260200190565b602060405180830381865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082691906129f3565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906129f3565b6108de9190612a3b565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba0876528361093e60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af11580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906129f3565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610a53575073ffffffffffffffffffffffffffffffffffffffff8116155b610adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106eb565b610ae761136e565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b3b6097611408565b905090565b610b4861136e565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610bad8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114c3915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106eb565b6000610c888561153c565b9050838114610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106eb565b610d25858585856115a1565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906129f3565b92915050565b610def61136e565b610df9600061162b565b565b610e0361136e565b8060005b81811015610e5057610e3e848483818110610e2457610e24612a4e565b9050602002016020810190610e3991906125fe565b6116a2565b610e49600182612a7d565b9050610e07565b50505050565b600061075b848484346116f7565b610e6c61136e565b60005b81811015610ee957610ed7838383818110610e8c57610e8c612a4e565b610ea292602060409092020190810191506125fe565b848484818110610eb457610eb4612a4e565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610ee2600182612a7d565b9050610e6f565b505050565b610ef661136e565b610b628282611730565b600054610100900460ff1615808015610f205750600054600160ff909116105b80610f3a5750303b158015610f3a575060005460ff166001145b610fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106eb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561102457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612a90565b50611128848484611746565b8015610e5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61119861136e565b828114611201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106eb565b8260005b818110156112675761125586868381811061122257611222612a4e565b905060200201602081019061123791906125fe565b85858481811061124957611249612a4e565b90506020020135611730565b611260600182612a7d565b9050611205565b505050505050565b61127761136e565b611280816116a2565b50565b604080516020810190915260008082526065549091610de19184919073ffffffffffffffffffffffffffffffffffffffff16611800565b6112c261136e565b73ffffffffffffffffffffffffffffffffffffffff8116611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106eb565b6112808161162b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106eb565b6000806113fc8484611816565b915091505b9250929050565b6060600061141583611850565b9050805167ffffffffffffffff81111561143157611431612ab2565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50915060005b81518110156114bc5781818151811061147b5761147b612a4e565b602002602001015183828151811061149557611495612a4e565b63ffffffff90921660209283029190910190910152806114b481612ae1565b915050611460565b5050919050565b6000806114cf866118eb565b905060006114de888884611906565b90506114ed8987838888611935565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8960405161152891815260200190565b60405180910390a350509695505050505050565b60008080611554609763ffffffff808716906113ef16565b915091508115611565579392505050565b61156e846119e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b60006115ad8383611a1f565b905060006115bb8484611a3e565b90503660006115ca8686611a4e565b915091506115e06115d88590565b848484611a5e565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161161991815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116b6609763ffffffff80841690611a6816565b6116bf826119e8565b90610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b6000611727858585856117098a611a74565b60655473ffffffffffffffffffffffffffffffffffffffff166114c3565b95945050505050565b610b62609763ffffffff808516908490611a9616565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b6117e5611aa1565b6117ee83610a19565b6117f782610629565b610ee98161162b565b600061075b848461181087611a74565b85611b40565b6000818152600283016020526040812054819080611845576118388585611c14565b9250600091506114019050565b600192509050611401565b6060600061185d83611c20565b90508067ffffffffffffffff81111561187857611878612ab2565b6040519080825280602002602001820160405280156118a1578160200160208202803683370190505b50915060005b818110156114bc576118b98482611c2b565b60001c8382815181106118ce576118ce612a4e565b6020908102919091010152806118e381612ae1565b9150506118a7565b60606118f682611c37565b905061190182611c8f565b919050565b606083838360405160200161191d93929190612b19565b60405160208183030381529060405290509392505050565b6000806119418761153c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016119a5959493929190612b46565b60206040518083038185885af11580156119c3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bad91906129f3565b60606119f98263ffffffff16611d5d565b604051602001611a099190612ba6565b6040516020818303038152906040529050919050565b6000611a2e6020828486612beb565b611a3791612c15565b9392505050565b6000611a2e604060208486612beb565b3660006113fc8360408187612beb565b610e508385611e1b565b6000611a378383611ef1565b63ffffffff8116600090815260ca6020526040902054606090610de190611f0e565b610e50838383611f2c565b600054610100900460ff16611b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df9611f49565b600080611b4c8661153c565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611bc990899085908a908a908a90600401612b46565b602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a91906129f3565b9695505050505050565b6000611a378383611fe9565b6000610de182612001565b6000611a37838361200b565b6060611c7b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085612035565b505060408051602081019091526000815290565b8060cb6000828254611ca19190612a7d565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906129f3565b60606000611d6a836120ca565b600101905060008167ffffffffffffffff811115611d8a57611d8a612ab2565b6040519080825280601f01601f191660200182016040528015611db4576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611dbe57509392505050565b8160cb6000828254611e2d9190612a3b565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129f3565b60008181526002830160205260408120819055611a3783836121ac565b6060610de160008333604051806020016040528060008152506121b8565b6000828152600284016020526040812082905561075b84846121ed565b600054610100900460ff16611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df93361162b565b60008181526001830160205260408120541515611a37565b6000610de1825490565b600082600001828154811061202257612022612a4e565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610e509085906121f9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612113577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061213f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061215d57662386f26fc10000830492506010015b6305f5e1008310612175576305f5e100830492506008015b612710831061218957612710830492506004015b6064831061219b576064830492506002015b600a8310610de15760010192915050565b6000611a378383612308565b60606001858585856040516020016121d4959493929190612c51565b6040516020818303038152906040529050949350505050565b6000611a3783836123fb565b600061225b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661244a9092919063ffffffff16565b905080516000148061227c57508080602001905181019061227c9190612a90565b610ee9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106eb565b600081815260018301602052604081205480156123f157600061232c600183612a3b565b855490915060009061234090600190612a3b565b90508181146123a557600086600001828154811061236057612360612a4e565b906000526020600020015490508087600001848154811061238357612383612a4e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123b6576123b6612cd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610de1565b6000915050610de1565b600081815260018301602052604081205461244257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610de1565b506000610de1565b606061075b8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161247e9190612d05565b60006040518083038185875af1925050503d80600081146124bb576040519150601f19603f3d011682016040523d82523d6000602084013e6124c0565b606091505b5091509150610bad878383876060831561256257825160000361255b5773ffffffffffffffffffffffffffffffffffffffff85163b61255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106eb565b508161075b565b61075b83838151156125775781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b803573ffffffffffffffffffffffffffffffffffffffff8116811461190157600080fd5b6000602082840312156125e157600080fd5b611a37826125ab565b803563ffffffff8116811461190157600080fd5b60006020828403121561261057600080fd5b611a37826125ea565b6020808252825182820181905260009190848201906040850190845b8181101561265757835163ffffffff1683529284019291840191600101612635565b50909695505050505050565b6000806040838503121561267657600080fd5b61267f836125ea565b946020939093013593505050565b60008083601f84011261269f57600080fd5b50813567ffffffffffffffff8111156126b757600080fd5b60208301915083602082850101111561140157600080fd5b60008060008060008060a087890312156126e857600080fd5b6126f1876125ea565b95506020870135945060408701359350606087013567ffffffffffffffff81111561271b57600080fd5b61272789828a0161268d565b909450925061273a9050608088016125ab565b90509295509295509295565b6000806000806060858703121561275c57600080fd5b612765856125ea565b935060208501359250604085013567ffffffffffffffff81111561278857600080fd5b6127948782880161268d565b95989497509550505050565b60008083601f8401126127b257600080fd5b50813567ffffffffffffffff8111156127ca57600080fd5b6020830191508360208260051b850101111561140157600080fd5b600080602083850312156127f857600080fd5b823567ffffffffffffffff81111561280f57600080fd5b61281b858286016127a0565b90969095509350505050565b60008060006060848603121561283c57600080fd5b612845846125ea565b95602085013595506040909401359392505050565b60005b8381101561287557818101518382015260200161285d565b50506000910152565b6000815180845261289681602086016020860161285a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611a37602083018461287e565b600080602083850312156128ee57600080fd5b823567ffffffffffffffff8082111561290657600080fd5b818501915085601f83011261291a57600080fd5b81358181111561292957600080fd5b8660208260061b850101111561293e57600080fd5b60209290920196919550909350505050565b60008060006060848603121561296557600080fd5b61296e846125ab565b925061297c602085016125ab565b915061298a604085016125ab565b90509250925092565b600080600080604085870312156129a957600080fd5b843567ffffffffffffffff808211156129c157600080fd5b6129cd888389016127a0565b909650945060208701359150808211156129e657600080fd5b50612794878288016127a0565b600060208284031215612a0557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610de157610de1612a0c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610de157610de1612a0c565b600060208284031215612aa257600080fd5b81518015158114611a3757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1257612b12612a0c565b5060010190565b83815282602082015260008251612b3781604085016020870161285a565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b6b60a083018661287e565b8281036060840152612b7d818661287e565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612bde81601f85016020870161285a565b91909101601f0192915050565b60008085851115612bfb57600080fd5b83861115612c0857600080fd5b5050820193919092039150565b80356020831015610de1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612cc581605685016020870161285a565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d1781846020870161285a565b919091019291505056fea2646970667358221220c1717d919da391caa1cfc7f4c99b3dae71e2fe39c8aefabfde4e726ab9a5ee4264736f6c63430008130033";
15
+ static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030813803806200308183398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612d576200032a60003960008181610607015281816107ae01528181610854015281816108e40152818161106101528181611cdb0152611e8401526000818161049201528181610d74015281816110af0152611c53015260006103c801526000818161052601528181610bd0015281816119450152611b8c0152612d576000f3fe6080604052600436106101c25760003560e01c806381b4e8b4116100f7578063c0c53b8b11610095578063efae508a11610064578063efae508a14610595578063f2ed8c53146105b5578063f2fde38b146105d5578063fbfa77cf146105f557600080fd5b8063c0c53b8b146104f4578063d5438eae14610514578063de523cf314610548578063e9198bf91461057557600080fd5b806393c44847116100d157806393c448471461042a578063996c6cc314610480578063b1bd6436146104b4578063b49c53a7146104d457600080fd5b806381b4e8b4146103a35780638d3638f4146103b65780638da5cb5b146103ff57600080fd5b806351debffc11610164578063715018a61161013e578063715018a6146102ef57806371a15b3814610304578063775313a1146103245780637f5a7c7b1461035157600080fd5b806351debffc146102a957806356d5d475146102bc57806370a08231146102cf57600080fd5b806335faa416116101a057806335faa416146102325780633dfd387314610247578063440df4f41461026757806349d462ef1461028957600080fd5b8063093bec70146101c75780630e72cc06146101f05780632ead72f614610212575b600080fd5b3480156101d357600080fd5b506101dd60cb5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061021061020b3660046125cf565b610629565b005b34801561021e57600080fd5b506101dd61022d3660046125fe565b610744565b34801561023e57600080fd5b50610210610763565b34801561025357600080fd5b506102106102623660046125cf565b610a19565b34801561027357600080fd5b5061027c610b2f565b6040516101e79190612619565b34801561029557600080fd5b506102106102a4366004612663565b610b40565b6101dd6102b73660046126cf565b610b66565b6102106102ca366004612746565b610bb8565b3480156102db57600080fd5b506101dd6102ea3660046125cf565b610d2c565b3480156102fb57600080fd5b50610210610de7565b34801561031057600080fd5b5061021061031f3660046127e5565b610dfb565b34801561033057600080fd5b506101dd61033f3660046125fe565b60ca6020526000908152604090205481565b34801561035d57600080fd5b5060655461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e7565b6101dd6103b1366004612827565b610e56565b3480156103c257600080fd5b506103ea7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e7565b34801561040b57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661037e565b34801561043657600080fd5b506104736040518060400160405280600581526020017f352e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516101e791906128c8565b34801561048c57600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506102106104cf3660046128db565b610e64565b3480156104e057600080fd5b506102106104ef366004612663565b610eee565b34801561050057600080fd5b5061021061050f366004612950565b610f00565b34801561052057600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055457600080fd5b5060665461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058157600080fd5b50610210610590366004612993565b611190565b3480156105a157600080fd5b506102106105b03660046125fe565b61126f565b3480156105c157600080fd5b506101dd6105d03660046125fe565b611283565b3480156105e157600080fd5b506102106105f03660046125cf565b6112ba565b34801561060157600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610663575073ffffffffffffffffffffffffffffffffffffffff8116155b6106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106fc61136e565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061075b609763ffffffff808616906113ef16565b949350505050565b61076b61136e565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107e59160040190815260200190565b602060405180830381865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082691906129f3565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906129f3565b6108de9190612a3b565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba0876528361093e60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af11580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906129f3565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610a53575073ffffffffffffffffffffffffffffffffffffffff8116155b610adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106eb565b610ae761136e565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b3b6097611408565b905090565b610b4861136e565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610bad8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114c3915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106eb565b6000610c888561153c565b9050838114610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106eb565b610d25858585856115a1565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906129f3565b92915050565b610def61136e565b610df9600061162b565b565b610e0361136e565b8060005b81811015610e5057610e3e848483818110610e2457610e24612a4e565b9050602002016020810190610e3991906125fe565b6116a2565b610e49600182612a7d565b9050610e07565b50505050565b600061075b848484346116f7565b610e6c61136e565b60005b81811015610ee957610ed7838383818110610e8c57610e8c612a4e565b610ea292602060409092020190810191506125fe565b848484818110610eb457610eb4612a4e565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610ee2600182612a7d565b9050610e6f565b505050565b610ef661136e565b610b628282611730565b600054610100900460ff1615808015610f205750600054600160ff909116105b80610f3a5750303b158015610f3a575060005460ff166001145b610fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106eb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561102457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612a90565b50611128848484611746565b8015610e5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61119861136e565b828114611201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106eb565b8260005b818110156112675761125586868381811061122257611222612a4e565b905060200201602081019061123791906125fe565b85858481811061124957611249612a4e565b90506020020135611730565b611260600182612a7d565b9050611205565b505050505050565b61127761136e565b611280816116a2565b50565b604080516020810190915260008082526065549091610de19184919073ffffffffffffffffffffffffffffffffffffffff16611800565b6112c261136e565b73ffffffffffffffffffffffffffffffffffffffff8116611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106eb565b6112808161162b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106eb565b6000806113fc8484611816565b915091505b9250929050565b6060600061141583611850565b9050805167ffffffffffffffff81111561143157611431612ab2565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50915060005b81518110156114bc5781818151811061147b5761147b612a4e565b602002602001015183828151811061149557611495612a4e565b63ffffffff90921660209283029190910190910152806114b481612ae1565b915050611460565b5050919050565b6000806114cf866118eb565b905060006114de888884611906565b90506114ed8987838888611935565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8960405161152891815260200190565b60405180910390a350509695505050505050565b60008080611554609763ffffffff808716906113ef16565b915091508115611565579392505050565b61156e846119e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b60006115ad8383611a1f565b905060006115bb8484611a3e565b90503660006115ca8686611a4e565b915091506115e06115d88590565b848484611a5e565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161161991815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116b6609763ffffffff80841690611a6816565b6116bf826119e8565b90610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b6000611727858585856117098a611a74565b60655473ffffffffffffffffffffffffffffffffffffffff166114c3565b95945050505050565b610b62609763ffffffff808516908490611a9616565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b6117e5611aa1565b6117ee83610a19565b6117f782610629565b610ee98161162b565b600061075b848461181087611a74565b85611b40565b6000818152600283016020526040812054819080611845576118388585611c14565b9250600091506114019050565b600192509050611401565b6060600061185d83611c20565b90508067ffffffffffffffff81111561187857611878612ab2565b6040519080825280602002602001820160405280156118a1578160200160208202803683370190505b50915060005b818110156114bc576118b98482611c2b565b60001c8382815181106118ce576118ce612a4e565b6020908102919091010152806118e381612ae1565b9150506118a7565b60606118f682611c37565b905061190182611c8f565b919050565b606083838360405160200161191d93929190612b19565b60405160208183030381529060405290509392505050565b6000806119418761153c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016119a5959493929190612b46565b60206040518083038185885af11580156119c3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bad91906129f3565b60606119f98263ffffffff16611d5d565b604051602001611a099190612ba6565b6040516020818303038152906040529050919050565b6000611a2e6020828486612beb565b611a3791612c15565b9392505050565b6000611a2e604060208486612beb565b3660006113fc8360408187612beb565b610e508385611e1b565b6000611a378383611ef1565b63ffffffff8116600090815260ca6020526040902054606090610de190611f0e565b610e50838383611f2c565b600054610100900460ff16611b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df9611f49565b600080611b4c8661153c565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611bc990899085908a908a908a90600401612b46565b602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a91906129f3565b9695505050505050565b6000611a378383611fe9565b6000610de182612001565b6000611a37838361200b565b6060611c7b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085612035565b505060408051602081019091526000815290565b8060cb6000828254611ca19190612a7d565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906129f3565b60606000611d6a836120ca565b600101905060008167ffffffffffffffff811115611d8a57611d8a612ab2565b6040519080825280601f01601f191660200182016040528015611db4576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611dbe57509392505050565b8160cb6000828254611e2d9190612a3b565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129f3565b60008181526002830160205260408120819055611a3783836121ac565b6060610de160008333604051806020016040528060008152506121b8565b6000828152600284016020526040812082905561075b84846121ed565b600054610100900460ff16611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df93361162b565b60008181526001830160205260408120541515611a37565b6000610de1825490565b600082600001828154811061202257612022612a4e565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610e509085906121f9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612113577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061213f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061215d57662386f26fc10000830492506010015b6305f5e1008310612175576305f5e100830492506008015b612710831061218957612710830492506004015b6064831061219b576064830492506002015b600a8310610de15760010192915050565b6000611a378383612308565b60606001858585856040516020016121d4959493929190612c51565b6040516020818303038152906040529050949350505050565b6000611a3783836123fb565b600061225b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661244a9092919063ffffffff16565b905080516000148061227c57508080602001905181019061227c9190612a90565b610ee9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106eb565b600081815260018301602052604081205480156123f157600061232c600183612a3b565b855490915060009061234090600190612a3b565b90508181146123a557600086600001828154811061236057612360612a4e565b906000526020600020015490508087600001848154811061238357612383612a4e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123b6576123b6612cd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610de1565b6000915050610de1565b600081815260018301602052604081205461244257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610de1565b506000610de1565b606061075b8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161247e9190612d05565b60006040518083038185875af1925050503d80600081146124bb576040519150601f19603f3d011682016040523d82523d6000602084013e6124c0565b606091505b5091509150610bad878383876060831561256257825160000361255b5773ffffffffffffffffffffffffffffffffffffffff85163b61255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106eb565b508161075b565b61075b83838151156125775781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b803573ffffffffffffffffffffffffffffffffffffffff8116811461190157600080fd5b6000602082840312156125e157600080fd5b611a37826125ab565b803563ffffffff8116811461190157600080fd5b60006020828403121561261057600080fd5b611a37826125ea565b6020808252825182820181905260009190848201906040850190845b8181101561265757835163ffffffff1683529284019291840191600101612635565b50909695505050505050565b6000806040838503121561267657600080fd5b61267f836125ea565b946020939093013593505050565b60008083601f84011261269f57600080fd5b50813567ffffffffffffffff8111156126b757600080fd5b60208301915083602082850101111561140157600080fd5b60008060008060008060a087890312156126e857600080fd5b6126f1876125ea565b95506020870135945060408701359350606087013567ffffffffffffffff81111561271b57600080fd5b61272789828a0161268d565b909450925061273a9050608088016125ab565b90509295509295509295565b6000806000806060858703121561275c57600080fd5b612765856125ea565b935060208501359250604085013567ffffffffffffffff81111561278857600080fd5b6127948782880161268d565b95989497509550505050565b60008083601f8401126127b257600080fd5b50813567ffffffffffffffff8111156127ca57600080fd5b6020830191508360208260051b850101111561140157600080fd5b600080602083850312156127f857600080fd5b823567ffffffffffffffff81111561280f57600080fd5b61281b858286016127a0565b90969095509350505050565b60008060006060848603121561283c57600080fd5b612845846125ea565b95602085013595506040909401359392505050565b60005b8381101561287557818101518382015260200161285d565b50506000910152565b6000815180845261289681602086016020860161285a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611a37602083018461287e565b600080602083850312156128ee57600080fd5b823567ffffffffffffffff8082111561290657600080fd5b818501915085601f83011261291a57600080fd5b81358181111561292957600080fd5b8660208260061b850101111561293e57600080fd5b60209290920196919550909350505050565b60008060006060848603121561296557600080fd5b61296e846125ab565b925061297c602085016125ab565b915061298a604085016125ab565b90509250925092565b600080600080604085870312156129a957600080fd5b843567ffffffffffffffff808211156129c157600080fd5b6129cd888389016127a0565b909650945060208701359150808211156129e657600080fd5b50612794878288016127a0565b600060208284031215612a0557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610de157610de1612a0c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610de157610de1612a0c565b600060208284031215612aa257600080fd5b81518015158114611a3757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1257612b12612a0c565b5060010190565b83815282602082015260008251612b3781604085016020870161285a565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b6b60a083018661287e565b8281036060840152612b7d818661287e565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612bde81601f85016020870161285a565b91909101601f0192915050565b60008085851115612bfb57600080fd5b83861115612c0857600080fd5b5050820193919092039150565b80356020831015610de1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612cc581605685016020870161285a565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d1781846020870161285a565b919091019291505056fea264697066735822122015bceced98c0fbf60480e64a1a909e269b9dd9fa970a0e856492b2d6b15134bc64736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ERC4626";
@@ -599,7 +599,7 @@ const _abi = [
599
599
  type: "function",
600
600
  },
601
601
  ];
602
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030813803806200308183398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612d576200032a60003960008181610607015281816107ae01528181610854015281816108e40152818161106101528181611cdb0152611e8401526000818161049201528181610d74015281816110af0152611c53015260006103c801526000818161052601528181610bd0015281816119450152611b8c0152612d576000f3fe6080604052600436106101c25760003560e01c806381b4e8b4116100f7578063c0c53b8b11610095578063efae508a11610064578063efae508a14610595578063f2ed8c53146105b5578063f2fde38b146105d5578063fbfa77cf146105f557600080fd5b8063c0c53b8b146104f4578063d5438eae14610514578063de523cf314610548578063e9198bf91461057557600080fd5b806393c44847116100d157806393c448471461042a578063996c6cc314610480578063b1bd6436146104b4578063b49c53a7146104d457600080fd5b806381b4e8b4146103a35780638d3638f4146103b65780638da5cb5b146103ff57600080fd5b806351debffc11610164578063715018a61161013e578063715018a6146102ef57806371a15b3814610304578063775313a1146103245780637f5a7c7b1461035157600080fd5b806351debffc146102a957806356d5d475146102bc57806370a08231146102cf57600080fd5b806335faa416116101a057806335faa416146102325780633dfd387314610247578063440df4f41461026757806349d462ef1461028957600080fd5b8063093bec70146101c75780630e72cc06146101f05780632ead72f614610212575b600080fd5b3480156101d357600080fd5b506101dd60cb5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061021061020b3660046125cf565b610629565b005b34801561021e57600080fd5b506101dd61022d3660046125fe565b610744565b34801561023e57600080fd5b50610210610763565b34801561025357600080fd5b506102106102623660046125cf565b610a19565b34801561027357600080fd5b5061027c610b2f565b6040516101e79190612619565b34801561029557600080fd5b506102106102a4366004612663565b610b40565b6101dd6102b73660046126cf565b610b66565b6102106102ca366004612746565b610bb8565b3480156102db57600080fd5b506101dd6102ea3660046125cf565b610d2c565b3480156102fb57600080fd5b50610210610de7565b34801561031057600080fd5b5061021061031f3660046127e5565b610dfb565b34801561033057600080fd5b506101dd61033f3660046125fe565b60ca6020526000908152604090205481565b34801561035d57600080fd5b5060655461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e7565b6101dd6103b1366004612827565b610e56565b3480156103c257600080fd5b506103ea7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e7565b34801561040b57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661037e565b34801561043657600080fd5b506104736040518060400160405280600581526020017f352e342e3000000000000000000000000000000000000000000000000000000081525081565b6040516101e791906128c8565b34801561048c57600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506102106104cf3660046128db565b610e64565b3480156104e057600080fd5b506102106104ef366004612663565b610eee565b34801561050057600080fd5b5061021061050f366004612950565b610f00565b34801561052057600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055457600080fd5b5060665461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058157600080fd5b50610210610590366004612993565b611190565b3480156105a157600080fd5b506102106105b03660046125fe565b61126f565b3480156105c157600080fd5b506101dd6105d03660046125fe565b611283565b3480156105e157600080fd5b506102106105f03660046125cf565b6112ba565b34801561060157600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610663575073ffffffffffffffffffffffffffffffffffffffff8116155b6106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106fc61136e565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061075b609763ffffffff808616906113ef16565b949350505050565b61076b61136e565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107e59160040190815260200190565b602060405180830381865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082691906129f3565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906129f3565b6108de9190612a3b565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba0876528361093e60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af11580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906129f3565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610a53575073ffffffffffffffffffffffffffffffffffffffff8116155b610adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106eb565b610ae761136e565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b3b6097611408565b905090565b610b4861136e565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610bad8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114c3915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106eb565b6000610c888561153c565b9050838114610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106eb565b610d25858585856115a1565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906129f3565b92915050565b610def61136e565b610df9600061162b565b565b610e0361136e565b8060005b81811015610e5057610e3e848483818110610e2457610e24612a4e565b9050602002016020810190610e3991906125fe565b6116a2565b610e49600182612a7d565b9050610e07565b50505050565b600061075b848484346116f7565b610e6c61136e565b60005b81811015610ee957610ed7838383818110610e8c57610e8c612a4e565b610ea292602060409092020190810191506125fe565b848484818110610eb457610eb4612a4e565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610ee2600182612a7d565b9050610e6f565b505050565b610ef661136e565b610b628282611730565b600054610100900460ff1615808015610f205750600054600160ff909116105b80610f3a5750303b158015610f3a575060005460ff166001145b610fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106eb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561102457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612a90565b50611128848484611746565b8015610e5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61119861136e565b828114611201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106eb565b8260005b818110156112675761125586868381811061122257611222612a4e565b905060200201602081019061123791906125fe565b85858481811061124957611249612a4e565b90506020020135611730565b611260600182612a7d565b9050611205565b505050505050565b61127761136e565b611280816116a2565b50565b604080516020810190915260008082526065549091610de19184919073ffffffffffffffffffffffffffffffffffffffff16611800565b6112c261136e565b73ffffffffffffffffffffffffffffffffffffffff8116611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106eb565b6112808161162b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106eb565b6000806113fc8484611816565b915091505b9250929050565b6060600061141583611850565b9050805167ffffffffffffffff81111561143157611431612ab2565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50915060005b81518110156114bc5781818151811061147b5761147b612a4e565b602002602001015183828151811061149557611495612a4e565b63ffffffff90921660209283029190910190910152806114b481612ae1565b915050611460565b5050919050565b6000806114cf866118eb565b905060006114de888884611906565b90506114ed8987838888611935565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8960405161152891815260200190565b60405180910390a350509695505050505050565b60008080611554609763ffffffff808716906113ef16565b915091508115611565579392505050565b61156e846119e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b60006115ad8383611a1f565b905060006115bb8484611a3e565b90503660006115ca8686611a4e565b915091506115e06115d88590565b848484611a5e565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161161991815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116b6609763ffffffff80841690611a6816565b6116bf826119e8565b90610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b6000611727858585856117098a611a74565b60655473ffffffffffffffffffffffffffffffffffffffff166114c3565b95945050505050565b610b62609763ffffffff808516908490611a9616565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b6117e5611aa1565b6117ee83610a19565b6117f782610629565b610ee98161162b565b600061075b848461181087611a74565b85611b40565b6000818152600283016020526040812054819080611845576118388585611c14565b9250600091506114019050565b600192509050611401565b6060600061185d83611c20565b90508067ffffffffffffffff81111561187857611878612ab2565b6040519080825280602002602001820160405280156118a1578160200160208202803683370190505b50915060005b818110156114bc576118b98482611c2b565b60001c8382815181106118ce576118ce612a4e565b6020908102919091010152806118e381612ae1565b9150506118a7565b60606118f682611c37565b905061190182611c8f565b919050565b606083838360405160200161191d93929190612b19565b60405160208183030381529060405290509392505050565b6000806119418761153c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016119a5959493929190612b46565b60206040518083038185885af11580156119c3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bad91906129f3565b60606119f98263ffffffff16611d5d565b604051602001611a099190612ba6565b6040516020818303038152906040529050919050565b6000611a2e6020828486612beb565b611a3791612c15565b9392505050565b6000611a2e604060208486612beb565b3660006113fc8360408187612beb565b610e508385611e1b565b6000611a378383611ef1565b63ffffffff8116600090815260ca6020526040902054606090610de190611f0e565b610e50838383611f2c565b600054610100900460ff16611b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df9611f49565b600080611b4c8661153c565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611bc990899085908a908a908a90600401612b46565b602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a91906129f3565b9695505050505050565b6000611a378383611fe9565b6000610de182612001565b6000611a37838361200b565b6060611c7b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085612035565b505060408051602081019091526000815290565b8060cb6000828254611ca19190612a7d565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906129f3565b60606000611d6a836120ca565b600101905060008167ffffffffffffffff811115611d8a57611d8a612ab2565b6040519080825280601f01601f191660200182016040528015611db4576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611dbe57509392505050565b8160cb6000828254611e2d9190612a3b565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129f3565b60008181526002830160205260408120819055611a3783836121ac565b6060610de160008333604051806020016040528060008152506121b8565b6000828152600284016020526040812082905561075b84846121ed565b600054610100900460ff16611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df93361162b565b60008181526001830160205260408120541515611a37565b6000610de1825490565b600082600001828154811061202257612022612a4e565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610e509085906121f9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612113577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061213f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061215d57662386f26fc10000830492506010015b6305f5e1008310612175576305f5e100830492506008015b612710831061218957612710830492506004015b6064831061219b576064830492506002015b600a8310610de15760010192915050565b6000611a378383612308565b60606001858585856040516020016121d4959493929190612c51565b6040516020818303038152906040529050949350505050565b6000611a3783836123fb565b600061225b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661244a9092919063ffffffff16565b905080516000148061227c57508080602001905181019061227c9190612a90565b610ee9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106eb565b600081815260018301602052604081205480156123f157600061232c600183612a3b565b855490915060009061234090600190612a3b565b90508181146123a557600086600001828154811061236057612360612a4e565b906000526020600020015490508087600001848154811061238357612383612a4e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123b6576123b6612cd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610de1565b6000915050610de1565b600081815260018301602052604081205461244257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610de1565b506000610de1565b606061075b8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161247e9190612d05565b60006040518083038185875af1925050503d80600081146124bb576040519150601f19603f3d011682016040523d82523d6000602084013e6124c0565b606091505b5091509150610bad878383876060831561256257825160000361255b5773ffffffffffffffffffffffffffffffffffffffff85163b61255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106eb565b508161075b565b61075b83838151156125775781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b803573ffffffffffffffffffffffffffffffffffffffff8116811461190157600080fd5b6000602082840312156125e157600080fd5b611a37826125ab565b803563ffffffff8116811461190157600080fd5b60006020828403121561261057600080fd5b611a37826125ea565b6020808252825182820181905260009190848201906040850190845b8181101561265757835163ffffffff1683529284019291840191600101612635565b50909695505050505050565b6000806040838503121561267657600080fd5b61267f836125ea565b946020939093013593505050565b60008083601f84011261269f57600080fd5b50813567ffffffffffffffff8111156126b757600080fd5b60208301915083602082850101111561140157600080fd5b60008060008060008060a087890312156126e857600080fd5b6126f1876125ea565b95506020870135945060408701359350606087013567ffffffffffffffff81111561271b57600080fd5b61272789828a0161268d565b909450925061273a9050608088016125ab565b90509295509295509295565b6000806000806060858703121561275c57600080fd5b612765856125ea565b935060208501359250604085013567ffffffffffffffff81111561278857600080fd5b6127948782880161268d565b95989497509550505050565b60008083601f8401126127b257600080fd5b50813567ffffffffffffffff8111156127ca57600080fd5b6020830191508360208260051b850101111561140157600080fd5b600080602083850312156127f857600080fd5b823567ffffffffffffffff81111561280f57600080fd5b61281b858286016127a0565b90969095509350505050565b60008060006060848603121561283c57600080fd5b612845846125ea565b95602085013595506040909401359392505050565b60005b8381101561287557818101518382015260200161285d565b50506000910152565b6000815180845261289681602086016020860161285a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611a37602083018461287e565b600080602083850312156128ee57600080fd5b823567ffffffffffffffff8082111561290657600080fd5b818501915085601f83011261291a57600080fd5b81358181111561292957600080fd5b8660208260061b850101111561293e57600080fd5b60209290920196919550909350505050565b60008060006060848603121561296557600080fd5b61296e846125ab565b925061297c602085016125ab565b915061298a604085016125ab565b90509250925092565b600080600080604085870312156129a957600080fd5b843567ffffffffffffffff808211156129c157600080fd5b6129cd888389016127a0565b909650945060208701359150808211156129e657600080fd5b50612794878288016127a0565b600060208284031215612a0557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610de157610de1612a0c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610de157610de1612a0c565b600060208284031215612aa257600080fd5b81518015158114611a3757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1257612b12612a0c565b5060010190565b83815282602082015260008251612b3781604085016020870161285a565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b6b60a083018661287e565b8281036060840152612b7d818661287e565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612bde81601f85016020870161285a565b91909101601f0192915050565b60008085851115612bfb57600080fd5b83861115612c0857600080fd5b5050820193919092039150565b80356020831015610de1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612cc581605685016020870161285a565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d1781846020870161285a565b919091019291505056fea2646970667358221220c1717d919da391caa1cfc7f4c99b3dae71e2fe39c8aefabfde4e726ab9a5ee4264736f6c63430008130033";
602
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030813803806200308183398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612d576200032a60003960008181610607015281816107ae01528181610854015281816108e40152818161106101528181611cdb0152611e8401526000818161049201528181610d74015281816110af0152611c53015260006103c801526000818161052601528181610bd0015281816119450152611b8c0152612d576000f3fe6080604052600436106101c25760003560e01c806381b4e8b4116100f7578063c0c53b8b11610095578063efae508a11610064578063efae508a14610595578063f2ed8c53146105b5578063f2fde38b146105d5578063fbfa77cf146105f557600080fd5b8063c0c53b8b146104f4578063d5438eae14610514578063de523cf314610548578063e9198bf91461057557600080fd5b806393c44847116100d157806393c448471461042a578063996c6cc314610480578063b1bd6436146104b4578063b49c53a7146104d457600080fd5b806381b4e8b4146103a35780638d3638f4146103b65780638da5cb5b146103ff57600080fd5b806351debffc11610164578063715018a61161013e578063715018a6146102ef57806371a15b3814610304578063775313a1146103245780637f5a7c7b1461035157600080fd5b806351debffc146102a957806356d5d475146102bc57806370a08231146102cf57600080fd5b806335faa416116101a057806335faa416146102325780633dfd387314610247578063440df4f41461026757806349d462ef1461028957600080fd5b8063093bec70146101c75780630e72cc06146101f05780632ead72f614610212575b600080fd5b3480156101d357600080fd5b506101dd60cb5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061021061020b3660046125cf565b610629565b005b34801561021e57600080fd5b506101dd61022d3660046125fe565b610744565b34801561023e57600080fd5b50610210610763565b34801561025357600080fd5b506102106102623660046125cf565b610a19565b34801561027357600080fd5b5061027c610b2f565b6040516101e79190612619565b34801561029557600080fd5b506102106102a4366004612663565b610b40565b6101dd6102b73660046126cf565b610b66565b6102106102ca366004612746565b610bb8565b3480156102db57600080fd5b506101dd6102ea3660046125cf565b610d2c565b3480156102fb57600080fd5b50610210610de7565b34801561031057600080fd5b5061021061031f3660046127e5565b610dfb565b34801561033057600080fd5b506101dd61033f3660046125fe565b60ca6020526000908152604090205481565b34801561035d57600080fd5b5060655461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e7565b6101dd6103b1366004612827565b610e56565b3480156103c257600080fd5b506103ea7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101e7565b34801561040b57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661037e565b34801561043657600080fd5b506104736040518060400160405280600581526020017f352e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516101e791906128c8565b34801561048c57600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b506102106104cf3660046128db565b610e64565b3480156104e057600080fd5b506102106104ef366004612663565b610eee565b34801561050057600080fd5b5061021061050f366004612950565b610f00565b34801561052057600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055457600080fd5b5060665461037e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058157600080fd5b50610210610590366004612993565b611190565b3480156105a157600080fd5b506102106105b03660046125fe565b61126f565b3480156105c157600080fd5b506101dd6105d03660046125fe565b611283565b3480156105e157600080fd5b506102106105f03660046125cf565b6112ba565b34801561060157600080fd5b5061037e7f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610663575073ffffffffffffffffffffffffffffffffffffffff8116155b6106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106fc61136e565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061075b609763ffffffff808616906113ef16565b949350505050565b61076b61136e565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107e59160040190815260200190565b602060405180830381865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082691906129f3565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906129f3565b6108de9190612a3b565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba0876528361093e60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af11580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906129f3565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610a53575073ffffffffffffffffffffffffffffffffffffffff8116155b610adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106eb565b610ae761136e565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610b3b6097611408565b905090565b610b4861136e565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610bad8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114c3915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106eb565b6000610c888561153c565b9050838114610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106eb565b610d25858585856115a1565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906129f3565b92915050565b610def61136e565b610df9600061162b565b565b610e0361136e565b8060005b81811015610e5057610e3e848483818110610e2457610e24612a4e565b9050602002016020810190610e3991906125fe565b6116a2565b610e49600182612a7d565b9050610e07565b50505050565b600061075b848484346116f7565b610e6c61136e565b60005b81811015610ee957610ed7838383818110610e8c57610e8c612a4e565b610ea292602060409092020190810191506125fe565b848484818110610eb457610eb4612a4e565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610ee2600182612a7d565b9050610e6f565b505050565b610ef661136e565b610b628282611730565b600054610100900460ff1615808015610f205750600054600160ff909116105b80610f3a5750303b158015610f3a575060005460ff166001145b610fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106eb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561102457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612a90565b50611128848484611746565b8015610e5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61119861136e565b828114611201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106eb565b8260005b818110156112675761125586868381811061122257611222612a4e565b905060200201602081019061123791906125fe565b85858481811061124957611249612a4e565b90506020020135611730565b611260600182612a7d565b9050611205565b505050505050565b61127761136e565b611280816116a2565b50565b604080516020810190915260008082526065549091610de19184919073ffffffffffffffffffffffffffffffffffffffff16611800565b6112c261136e565b73ffffffffffffffffffffffffffffffffffffffff8116611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106eb565b6112808161162b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106eb565b6000806113fc8484611816565b915091505b9250929050565b6060600061141583611850565b9050805167ffffffffffffffff81111561143157611431612ab2565b60405190808252806020026020018201604052801561145a578160200160208202803683370190505b50915060005b81518110156114bc5781818151811061147b5761147b612a4e565b602002602001015183828151811061149557611495612a4e565b63ffffffff90921660209283029190910190910152806114b481612ae1565b915050611460565b5050919050565b6000806114cf866118eb565b905060006114de888884611906565b90506114ed8987838888611935565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8960405161152891815260200190565b60405180910390a350509695505050505050565b60008080611554609763ffffffff808716906113ef16565b915091508115611565579392505050565b61156e846119e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b60006115ad8383611a1f565b905060006115bb8484611a3e565b90503660006115ca8686611a4e565b915091506115e06115d88590565b848484611a5e565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161161991815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116b6609763ffffffff80841690611a6816565b6116bf826119e8565b90610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b6000611727858585856117098a611a74565b60655473ffffffffffffffffffffffffffffffffffffffff166114c3565b95945050505050565b610b62609763ffffffff808516908490611a9616565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b6117e5611aa1565b6117ee83610a19565b6117f782610629565b610ee98161162b565b600061075b848461181087611a74565b85611b40565b6000818152600283016020526040812054819080611845576118388585611c14565b9250600091506114019050565b600192509050611401565b6060600061185d83611c20565b90508067ffffffffffffffff81111561187857611878612ab2565b6040519080825280602002602001820160405280156118a1578160200160208202803683370190505b50915060005b818110156114bc576118b98482611c2b565b60001c8382815181106118ce576118ce612a4e565b6020908102919091010152806118e381612ae1565b9150506118a7565b60606118f682611c37565b905061190182611c8f565b919050565b606083838360405160200161191d93929190612b19565b60405160208183030381529060405290509392505050565b6000806119418761153c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016119a5959493929190612b46565b60206040518083038185885af11580156119c3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bad91906129f3565b60606119f98263ffffffff16611d5d565b604051602001611a099190612ba6565b6040516020818303038152906040529050919050565b6000611a2e6020828486612beb565b611a3791612c15565b9392505050565b6000611a2e604060208486612beb565b3660006113fc8360408187612beb565b610e508385611e1b565b6000611a378383611ef1565b63ffffffff8116600090815260ca6020526040902054606090610de190611f0e565b610e50838383611f2c565b600054610100900460ff16611b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df9611f49565b600080611b4c8661153c565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611bc990899085908a908a908a90600401612b46565b602060405180830381865afa158015611be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0a91906129f3565b9695505050505050565b6000611a378383611fe9565b6000610de182612001565b6000611a37838361200b565b6060611c7b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085612035565b505060408051602081019091526000815290565b8060cb6000828254611ca19190612a7d565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906129f3565b60606000611d6a836120ca565b600101905060008167ffffffffffffffff811115611d8a57611d8a612ab2565b6040519080825280601f01601f191660200182016040528015611db4576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611dbe57509392505050565b8160cb6000828254611e2d9190612a3b565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129f3565b60008181526002830160205260408120819055611a3783836121ac565b6060610de160008333604051806020016040528060008152506121b8565b6000828152600284016020526040812082905561075b84846121ed565b600054610100900460ff16611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106eb565b610df93361162b565b60008181526001830160205260408120541515611a37565b6000610de1825490565b600082600001828154811061202257612022612a4e565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610e509085906121f9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612113577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061213f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061215d57662386f26fc10000830492506010015b6305f5e1008310612175576305f5e100830492506008015b612710831061218957612710830492506004015b6064831061219b576064830492506002015b600a8310610de15760010192915050565b6000611a378383612308565b60606001858585856040516020016121d4959493929190612c51565b6040516020818303038152906040529050949350505050565b6000611a3783836123fb565b600061225b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661244a9092919063ffffffff16565b905080516000148061227c57508080602001905181019061227c9190612a90565b610ee9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106eb565b600081815260018301602052604081205480156123f157600061232c600183612a3b565b855490915060009061234090600190612a3b565b90508181146123a557600086600001828154811061236057612360612a4e565b906000526020600020015490508087600001848154811061238357612383612a4e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123b6576123b6612cd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610de1565b6000915050610de1565b600081815260018301602052604081205461244257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610de1565b506000610de1565b606061075b8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161247e9190612d05565b60006040518083038185875af1925050503d80600081146124bb576040519150601f19603f3d011682016040523d82523d6000602084013e6124c0565b606091505b5091509150610bad878383876060831561256257825160000361255b5773ffffffffffffffffffffffffffffffffffffffff85163b61255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106eb565b508161075b565b61075b83838151156125775781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb91906128c8565b803573ffffffffffffffffffffffffffffffffffffffff8116811461190157600080fd5b6000602082840312156125e157600080fd5b611a37826125ab565b803563ffffffff8116811461190157600080fd5b60006020828403121561261057600080fd5b611a37826125ea565b6020808252825182820181905260009190848201906040850190845b8181101561265757835163ffffffff1683529284019291840191600101612635565b50909695505050505050565b6000806040838503121561267657600080fd5b61267f836125ea565b946020939093013593505050565b60008083601f84011261269f57600080fd5b50813567ffffffffffffffff8111156126b757600080fd5b60208301915083602082850101111561140157600080fd5b60008060008060008060a087890312156126e857600080fd5b6126f1876125ea565b95506020870135945060408701359350606087013567ffffffffffffffff81111561271b57600080fd5b61272789828a0161268d565b909450925061273a9050608088016125ab565b90509295509295509295565b6000806000806060858703121561275c57600080fd5b612765856125ea565b935060208501359250604085013567ffffffffffffffff81111561278857600080fd5b6127948782880161268d565b95989497509550505050565b60008083601f8401126127b257600080fd5b50813567ffffffffffffffff8111156127ca57600080fd5b6020830191508360208260051b850101111561140157600080fd5b600080602083850312156127f857600080fd5b823567ffffffffffffffff81111561280f57600080fd5b61281b858286016127a0565b90969095509350505050565b60008060006060848603121561283c57600080fd5b612845846125ea565b95602085013595506040909401359392505050565b60005b8381101561287557818101518382015260200161285d565b50506000910152565b6000815180845261289681602086016020860161285a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611a37602083018461287e565b600080602083850312156128ee57600080fd5b823567ffffffffffffffff8082111561290657600080fd5b818501915085601f83011261291a57600080fd5b81358181111561292957600080fd5b8660208260061b850101111561293e57600080fd5b60209290920196919550909350505050565b60008060006060848603121561296557600080fd5b61296e846125ab565b925061297c602085016125ab565b915061298a604085016125ab565b90509250925092565b600080600080604085870312156129a957600080fd5b843567ffffffffffffffff808211156129c157600080fd5b6129cd888389016127a0565b909650945060208701359150808211156129e657600080fd5b50612794878288016127a0565b600060208284031215612a0557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610de157610de1612a0c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610de157610de1612a0c565b600060208284031215612aa257600080fd5b81518015158114611a3757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1257612b12612a0c565b5060010190565b83815282602082015260008251612b3781604085016020870161285a565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b6b60a083018661287e565b8281036060840152612b7d818661287e565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612bde81601f85016020870161285a565b91909101601f0192915050565b60008085851115612bfb57600080fd5b83861115612c0857600080fd5b5050820193919092039150565b80356020831015610de1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612cc581605685016020870161285a565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d1781846020870161285a565b919091019291505056fea264697066735822122015bceced98c0fbf60480e64a1a909e269b9dd9fa970a0e856492b2d6b15134bc64736f6c63430008130033";
603
603
  const isSuperArgs = (xs) => xs.length > 1;
604
604
  export class HypERC4626OwnerCollateral__factory extends ContractFactory {
605
605
  constructor(...args) {