@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-92cdbc9-533

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 (353) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  10. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  16. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  17. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
  35. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
  39. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
  41. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  42. package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
  43. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  45. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  47. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  49. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -121
  51. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  53. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
  55. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  57. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  58. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  60. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +6 -6
  62. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  64. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  70. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  72. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  76. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  78. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  80. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  87. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  89. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  91. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +44 -44
  93. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
  95. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  98. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  100. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  101. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
  103. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
  105. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
  107. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
  109. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  111. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  113. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
  115. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  117. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  122. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  123. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  124. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
  126. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
  128. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
  130. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  132. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  133. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  134. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  136. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  138. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  139. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  140. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  142. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  143. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  144. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  145. package/artifacts/contracts/registry/Registry.sol/Registry.json +24 -68
  146. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  147. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +233 -388
  148. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  150. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  152. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  153. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
  154. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +53 -71
  156. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  158. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  160. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  162. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  168. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  184. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  185. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  186. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +22 -22
  187. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  188. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  189. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  190. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  191. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -14
  193. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  195. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  196. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  197. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  198. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  199. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  200. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  202. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  203. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  205. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  207. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  208. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
  209. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  212. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  216. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +131 -131
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  222. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  224. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  240. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  241. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  247. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  249. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  251. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  253. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  255. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  257. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  259. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  261. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  265. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  267. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  269. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  271. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  273. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  274. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  275. package/contracts/authorization/Authorization.sol +218 -0
  276. package/contracts/authorization/IAccess.sol +48 -0
  277. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  278. package/contracts/authorization/IAuthorization.sol +54 -0
  279. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  280. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  281. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  282. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  283. package/contracts/distribution/BasicDistribution.sol +149 -0
  284. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  285. package/contracts/distribution/Distribution.sol +126 -104
  286. package/contracts/distribution/DistributionService.sol +10 -5
  287. package/contracts/distribution/IDistributionComponent.sol +17 -35
  288. package/contracts/distribution/IDistributionService.sol +5 -1
  289. package/contracts/instance/IInstance.sol +3 -4
  290. package/contracts/instance/IInstanceService.sol +7 -12
  291. package/contracts/instance/Instance.sol +58 -67
  292. package/contracts/instance/InstanceAdmin.sol +202 -267
  293. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  294. package/contracts/instance/InstanceReader.sol +22 -9
  295. package/contracts/instance/InstanceService.sol +66 -62
  296. package/contracts/instance/InstanceStore.sol +5 -1
  297. package/contracts/instance/base/ObjectManager.sol +7 -8
  298. package/contracts/oracle/BasicOracle.sol +48 -0
  299. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  300. package/contracts/oracle/IOracle.sol +16 -0
  301. package/contracts/oracle/Oracle.sol +61 -49
  302. package/contracts/pool/BasicPool.sol +164 -0
  303. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  304. package/contracts/pool/IPoolComponent.sol +0 -60
  305. package/contracts/pool/Pool.sol +143 -131
  306. package/contracts/pool/PoolService.sol +1 -1
  307. package/contracts/product/BasicProduct.sol +82 -0
  308. package/contracts/product/BasicProductAuthorization.sol +40 -0
  309. package/contracts/product/IProductComponent.sol +6 -9
  310. package/contracts/product/Product.sol +103 -88
  311. package/contracts/registry/IRegistry.sol +5 -8
  312. package/contracts/registry/Registry.sol +1 -5
  313. package/contracts/registry/RegistryAdmin.sol +101 -71
  314. package/contracts/registry/ReleaseManager.sol +53 -69
  315. package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
  316. package/contracts/shared/ComponentService.sol +19 -58
  317. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  318. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  319. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  320. package/contracts/type/ObjectType.sol +34 -0
  321. package/contracts/type/RoleId.sol +55 -82
  322. package/contracts/type/UFixed.sol +6 -0
  323. package/package.json +1 -1
  324. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  325. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  326. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  327. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  328. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  329. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  330. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  331. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  332. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  333. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  334. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  335. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  336. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  337. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  338. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  339. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  340. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  341. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  342. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  343. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  344. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  345. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  346. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  347. package/contracts/shared/AccessManagerCustom.sol +0 -741
  348. package/contracts/shared/AccessManagerExtended.sol +0 -481
  349. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  350. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  351. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  352. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  353. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -499,12 +499,6 @@
499
499
  "internalType": "bytes32",
500
500
  "name": "salt",
501
501
  "type": "bytes32"
502
- },
503
- {
504
- "indexed": false,
505
- "internalType": "address",
506
- "name": "authority",
507
- "type": "address"
508
502
  }
509
503
  ],
510
504
  "name": "LogReleaseCreation",
@@ -564,10 +558,23 @@
564
558
  },
565
559
  {
566
560
  "inputs": [],
567
- "name": "_releaseAccessManagerCodeAddress",
561
+ "name": "_admin",
568
562
  "outputs": [
569
563
  {
570
- "internalType": "address",
564
+ "internalType": "contract RegistryAdmin",
565
+ "name": "",
566
+ "type": "address"
567
+ }
568
+ ],
569
+ "stateMutability": "view",
570
+ "type": "function"
571
+ },
572
+ {
573
+ "inputs": [],
574
+ "name": "_registry",
575
+ "outputs": [
576
+ {
577
+ "internalType": "contract Registry",
571
578
  "name": "",
572
579
  "type": "address"
573
580
  }
@@ -715,25 +722,6 @@
715
722
  "stateMutability": "view",
716
723
  "type": "function"
717
724
  },
718
- {
719
- "inputs": [
720
- {
721
- "internalType": "VersionPart",
722
- "name": "version",
723
- "type": "uint8"
724
- }
725
- ],
726
- "name": "getReleaseAccessManager",
727
- "outputs": [
728
- {
729
- "internalType": "address",
730
- "name": "",
731
- "type": "address"
732
- }
733
- ],
734
- "stateMutability": "view",
735
- "type": "function"
736
- },
737
725
  {
738
726
  "inputs": [
739
727
  {
@@ -766,31 +754,6 @@
766
754
  "name": "names",
767
755
  "type": "string[]"
768
756
  },
769
- {
770
- "internalType": "RoleId[][]",
771
- "name": "serviceRoles",
772
- "type": "uint64[][]"
773
- },
774
- {
775
- "internalType": "string[][]",
776
- "name": "serviceRoleNames",
777
- "type": "string[][]"
778
- },
779
- {
780
- "internalType": "RoleId[][]",
781
- "name": "functionRoles",
782
- "type": "uint64[][]"
783
- },
784
- {
785
- "internalType": "string[][]",
786
- "name": "functionRoleNames",
787
- "type": "string[][]"
788
- },
789
- {
790
- "internalType": "bytes4[][][]",
791
- "name": "selectors",
792
- "type": "bytes4[][][]"
793
- },
794
757
  {
795
758
  "internalType": "ObjectType[]",
796
759
  "name": "domains",
@@ -828,6 +791,25 @@
828
791
  "stateMutability": "view",
829
792
  "type": "function"
830
793
  },
794
+ {
795
+ "inputs": [
796
+ {
797
+ "internalType": "VersionPart",
798
+ "name": "version",
799
+ "type": "uint8"
800
+ }
801
+ ],
802
+ "name": "getServiceAuthorization",
803
+ "outputs": [
804
+ {
805
+ "internalType": "contract IServiceAuthorization",
806
+ "name": "serviceAuthorization",
807
+ "type": "address"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
831
813
  {
832
814
  "inputs": [
833
815
  {
@@ -1068,14 +1050,14 @@
1068
1050
  "type": "function"
1069
1051
  }
1070
1052
  ],
1071
- "bytecode": "0x608060405234801561000f575f80fd5b5060405161349238038061349283398101604081905261002e916105ae565b33610038816102a4565b506100416102f7565b61004a81610349565b610077576040516358374b4160e11b81526001600160a01b03821660048201526024015b60405180910390fd5b6100df816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100da91906105ae565b610455565b600580546001600160a01b0319166001600160a01b0383169081179091556040805163016f41bf60e51b81529051632de837e0916004808201926020929091908290030181865afa158015610136573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015a91906105ae565b600380546001600160a01b0319166001600160a01b0392909216919091178155604051632392b61b60e21b8152600481019190915273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156101c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed91906105d0565b600a805460ff191660ff9290921691909117905573__$b659da7d8a6d2d32aa6c1e17da23dc2174$__638e4ad86c610227600160036105f0565b6040518263ffffffff1660e01b815260040161024591815260200190565b602060405180830381865af4158015610260573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028491906105d0565b600a60026101000a81548160ff021916908360ff16021790555050610668565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b610303600760026104cd565b610312600760025b6003610518565b61031e6007600361030b565b61032d600760035b6004610518565b61033b60076004606e610518565b6103476007606e610326565b565b5f6001600160a01b03821661035f57505f919050565b604051636939560f60e11b81526001600160a01b038316600482018190529063d272ac1e90602401602060405180830381865afa1580156103a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c6919061060f565b604051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561041d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104419190610635565b1561044d57505f919050565b506001919050565b5f5433906001600160a01b0316811461048b5760405162d1953b60e31b81526001600160a01b038216600482015260240161006e565b816001600160a01b03163b5f036104c0576040516361798f2f60e11b81526001600160a01b038316600482015260240161006e565b6104c9826102a4565b5050565b60ff8281165f908152600160205260408120546104eb921690610587565b6104f7576104f7610654565b60ff9182165f908152600160205260409020805460ff191691909216179055565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054161561055057610550610654565b60ff9283165f908152600260209081526040808320948616835293815283822092909416815292529020805460ff19166001179055565b60ff828116908216145b92915050565b6001600160a01b03811681146105ab575f80fd5b50565b5f602082840312156105be575f80fd5b81516105c981610597565b9392505050565b5f602082840312156105e0575f80fd5b815160ff811681146105c9575f80fd5b8181038181111561059157634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561061f575f80fd5b81516001600160601b03811681146105c9575f80fd5b5f60208284031215610645575f80fd5b815180151581146105c9575f80fd5b634e487b7160e01b5f52600160045260245ffd5b612e1d806106755f395ff3fe608060405234801561000f575f80fd5b50600436106101ba575f3560e01c80637a9e5e4b116100f3578063bf1db3f911610093578063dde4fd8a1161006e578063dde4fd8a1461047b578063e9e96c701461048c578063f40d7c30146104c9578063fdd9ec7d146104da575f80fd5b8063bf1db3f914610438578063bf7e214f1461044b578063d2213b5b1461045b575f80fd5b806399a228e5116100ce57806399a228e5146104025780639ef6ddc91461040a578063a28448241461041d578063a898967514610425575f80fd5b80637a9e5e4b146103645780638fb360371461037757806393a7e71114610398575f80fd5b806319d1478b1161015e5780633a6c2125116101395780633a6c2125146103175780635ab1bd531461032a5780636428e2631461033b57806371ed16e41461034e575f80fd5b806319d1478b1461028557806330ac5bf2146102c857806331d53763146102dd575f80fd5b80630d358181116101995780630d358181146102225780630e41142e146102475780630e6d1de91461025257806311edceaa14610262575f80fd5b8062d19f30146101be57806305c937ed146101fa5780630af43fe11461021a575b5f80fd5b6101e36101cc366004612423565b60ff9081165f908152600b60205260409020541690565b60405160ff90911681526020015b60405180910390f35b6102046208052081565b60405164ffffffffff90911681526020016101f1565b6101e3610505565b6101e3610230366004612423565b60ff9081165f908152600160205260409020541690565b600a5460ff166101e3565b600a54610100900460ff166101e3565b610275610270366004612423565b610667565b60405190151581526020016101f1565b6102b0610293366004612423565b60ff165f908152600660205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101f1565b6102db6102d6366004612423565b610695565b005b6102f06102eb366004612452565b61078e565b604080516001600160a01b03909416845260ff9092166020840152908201526060016101f1565b6004546102b0906001600160a01b031681565b6005546001600160a01b03166102b0565b6102db610349366004612423565b610b2d565b610356610c80565b6040519081526020016101f1565b6102db61037236600461247c565b610c96565b61037f610d0e565b6040516001600160e01b031990911681526020016101f1565b6102b06103a6366004612497565b60405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b610356600381565b61027561041836600461247c565b610d30565b6102db610d5b565b6102db6104333660046124d6565b610fd3565b610275610446366004612423565b6110de565b5f546001600160a01b03166102b0565b61046e610469366004612423565b611164565b6040516101f191906127a5565b6003546001600160a01b03166102b0565b61027561049a3660046124d6565b60ff9283165f908152600260209081526040808320948616835293815283822092851682529190915220541690565b600a5462010000900460ff166101e3565b6104ed6104e836600461247c565b611897565b6040516001600160601b0390911681526020016101f1565b5f610512335b5f36611c28565b600a54604051632b10f60d60e21b81526201000090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af4158015610573573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059791906128ef565b6105a290600161291a565b6040518263ffffffff1660e01b81526004016105c091815260200190565b602060405180830381865af41580156105db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff919061293d565b600a805460ff92909216620100000262ff0000199092169190911790555f600d819055600c55610630610230600790565b600a8054620100009081900460ff9081165f908152600b60205260409020805460ff19169482169490941790935590540416919050565b60ff8181165f908152600b6020526040812054909161068f911660045b60ff90811691161490565b92915050565b61069e3361050b565b60ff8181165f908152600b60205260409020541660046106e860075b60ff9081165f9081526002602090815260408083208488168452825280832084871684529091529020541690565b610717576040516331ec295f60e01b815260ff8085166004830152831660248201526044015b60405180910390fd5b60ff8381165f818152600b60209081526040808320805460ff1916958716959095179094556007815290839020600a01805469ffffffffff00000000001916905591519081527f8c9377f44d861d9abb7de1a880bb234de50528f98b5e198945cb16818bbbb99291015b60405180910390a1505050565b5f808061079a3361050b565b5f80866001600160a01b03166376b707b76040518163ffffffff1660e01b81526004016040805180830381865afa1580156107d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fb9190612958565b600a54919350915060ff80841662010000909204161461084457600a5460405162c866d560e21b81526201000090910460ff90811660048301528316602482015260440161070e565b805f0361087257600a54604051635302597d60e01b81526201000090910460ff16600482015260240161070e565b600a5460ff6201000090910481165f818152600b602052604090205490955016600361089e60076106ba565b6108c85760405163c717747960e01b815260ff80881660048301528316602482015260440161070e565b600d54156108f65760405163c238a09360e01b815260ff80881660048301528316602482015260440161070e565b604051632b10f60d60e21b815260ff8716600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096a91906128ef565b604080516020810192909252810189905260600160408051601f19818403018152828252805160209182012060035463bf7e214f60e01b855292519098506001600160a01b039092169263bf7e214f92600480830193928290030181865afa1580156109d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fc919061298f565b96508860095f600a60029054906101000a900460ff1660ff1660ff1681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508660065f600a60029054906101000a900460ff1660ff1660ff1681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600d8190555080600b5f8860ff1660ff1681526020019081526020015f205f6101000a81548160ff021916908360ff1602179055507f6529cb4b9a24b8de97cbd0802b1c3d02a8c8aed37388204e2f5bc3013793977e868689604051610b1a9392919060ff93909316835260208301919091526001600160a01b0316604082015260600190565b60405180910390a1505050509250925092565b610b363361050b565b60ff8181165f908152600b602052604090205416606e610b5660076106ba565b610b80576040516331ec295f60e01b815260ff80851660048301528316602482015260440161070e565b60ff8381165f908152600b6020908152604091829020805460ff19169385169390931790925580516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480820193918290030181865af4158015610bee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1291906129aa565b60ff84165f81815260076020908152604091829020600a01805464ffffffffff95909516650100000000000269ffffffffff00000000001990951694909417909355519081527f332d7fb458421533fc26f5789a63f5b7538fc95dd42452533aff2b353c57e8269101610781565b5f600c54600d54610c9191906129ce565b905090565b5f5433906001600160a01b03168114610ccc5760405162d1953b60e31b81526001600160a01b038216600482015260240161070e565b816001600160a01b03163b5f03610d01576040516361798f2f60e11b81526001600160a01b038316600482015260240161070e565b610d0a82611d1e565b5050565b5f8054600160a01b900460ff16610d2457505f90565b50638fb3603760e01b90565b6001600160a01b0381165f9081526008602052604081205460ff16610d5481610667565b9392505050565b610d643361050b565b600a5460ff6201000090910481165f818152600b60205260409020549091166004610d8f60076106ba565b610db9576040516331ec295f60e01b815260ff80851660048301528316602482015260440161070e565b600d54600c541015610dfa5782600c54600d54610dd691906129ce565b60405163c90aac6160e01b815260ff9092166004830152602482015260440161070e565b6005545f906001600160a01b031663d39e604360026040516001600160e01b031960e084901b16815260ff91821660048201529087166024820152604401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e77919061298f565b90506001600160a01b038116610ea557604051638047661960e01b815260ff8516600482015260240161070e565b600a805460ff808716610100810261ff0019909316929092179092555f818152600b60209081526040808320805495881660ff199687161790556001600160a01b03861683526008825291829020805490941690921790925581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015610f47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6b91906129aa565b60ff85165f81815260076020908152604091829020600a01805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a150505050565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611035573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105991906129f0565b1561107c576040516321b9f44760e01b815260ff8416600482015260240161070e565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054166110d957604051636bb20ea760e01b815260ff808516600483015280841660248301528216604482015260640161070e565b505050565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015611140573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068f91906129f0565b6111d86040518061018001604052805f60ff1681526020015f801916815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b60ff8083165f90815260076020908152604091829020825161018081018452815490941684526001810154848301526002810180548451818502810185018652818152929486019383018282801561125757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611239575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561132c578382905f5260205f200180546112a190612a09565b80601f01602080910402602001604051908101604052809291908181526020018280546112cd90612a09565b80156113185780601f106112ef57610100808354040283529160200191611318565b820191905f5260205f20905b8154815290600101906020018083116112fb57829003601f168201915b505050505081526020019060010190611284565b50505050815260200160048201805480602002602001604051908101604052809291908181526020015f905b828210156113f4575f848152602090819020830180546040805182850281018501909152818152928301828280156113e057602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161139b5790505b505050505081526020019060010190611358565b50505050815260200160058201805480602002602001604051908101604052809291908181526020015f905b8282101561150c578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156114f9578382905f5260205f2001805461146e90612a09565b80601f016020809104026020016040519081016040528092919081815260200182805461149a90612a09565b80156114e55780601f106114bc576101008083540402835291602001916114e5565b820191905f5260205f20905b8154815290600101906020018083116114c857829003601f168201915b505050505081526020019060010190611451565b5050505081526020019060010190611420565b50505050815260200160068201805480602002602001604051908101604052809291908181526020015f905b828210156115d4575f848152602090819020830180546040805182850281018501909152818152928301828280156115c057602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161157b5790505b505050505081526020019060010190611538565b50505050815260200160078201805480602002602001604051908101604052809291908181526020015f905b828210156116ec578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156116d9578382905f5260205f2001805461164e90612a09565b80601f016020809104026020016040519081016040528092919081815260200182805461167a90612a09565b80156116c55780601f1061169c576101008083540402835291602001916116c5565b820191905f5260205f20905b8154815290600101906020018083116116a857829003601f168201915b505050505081526020019060010190611631565b5050505081526020019060010190611600565b50505050815260200160088201805480602002602001604051908101604052809291908181526020015f905b828210156117f1578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156117de575f848152602090819020830180546040805182850281018501909152818152928301828280156117ca57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161178c5790505b505050505081526020019060010190611749565b5050505081526020019060010190611718565b5050505081526020016009820180548060200260200160405190810160405280929190818152602001828054801561186357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118345790505b5050509183525050600a919091015464ffffffffff8082166020840152650100000000009091041660409091015292915050565b5f6118a13361050b565b600a5460ff6201000090910481165f818152600b602052604090205490911660036118cc60076106ba565b6118ee576040516316997edd60e11b815260ff8316600482015260240161070e565b600c54600d540361191257604051630a7d531760e31b815260040160405180910390fd5b5f805f61191e88611d71565b60ff89165f9081526009602052604080822054600c54915162212fa360ea1b81526004810192909252949750929550909350916001600160a01b0316906384be8c0090602401602060405180830381865afa15801561197f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a3919061293d565b905060ff808416908216146119d8576040516331ca5aff60e11b815260ff80831660048301528416602482015260440161070e565b60ff8088165f81815260076020908152604080832060090180546001810182559084528284208382040180548a8816601f9093166101000a9283029288021916919091179055928252600b9052908120805492881660ff1990931692909217909155600c805491611a4883612a41565b909155505060035460ff88165f908152600960205260409081902054905163122beb2560e11b81526001600160a01b0391821660048201528b82166024820152911690632457d64a906044015f604051808303815f87803b158015611aab575f80fd5b505af1158015611abd573d5f803e3d5ffd5b50505050611acd83610684600390565b80611adb575060ff8316600f145b15611b445760035460405163420e0b3560e01b81526001600160a01b038b8116600483015260ff861660248301529091169063420e0b35906044015f604051808303815f87803b158015611b2d575f80fd5b505af1158015611b3f573d5f803e3d5ffd5b505050505b600554604051635382852b60e11b81526001600160a01b039091169063a7050a5690611b7890879086908890600401612a59565b6020604051808303815f875af1158015611b94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb89190612b21565b9750886001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1b9190612b21565b5050505050505050919050565b5f80611c5b611c3e5f546001600160a01b031690565b8630611c4d60045f898b612b3a565b611c5691612b61565b612100565b9150915081611d175763ffffffff811615611cf4575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611cb590889088908890600401612b99565b5f604051808303815f87803b158015611ccc575f80fd5b505af1158015611cde573d5f803e3d5ffd5b50505f805460ff60a01b1916905550611d179050565b60405162d1953b60e31b81526001600160a01b038616600482015260240161070e565b5050505050565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040805160e0810182525f8082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263daf9067160e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1891906129f0565b611e4057604051631fdf992160e01b81526001600160a01b038516600482015260240161070e565b5f3390505f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea5919061298f565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f079190612bd8565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7e919061293d565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fe0919061293d565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120449190810190612cc2565b9450612051868684612208565b600a5462010000900460ff165f818152600660205260409020546001600160a01b0390811690831681146120b35760405163179dce5160e11b81526001600160a01b03808a16600483015280851660248301528216604482015260640161070e565b60ff808616908316146120f557604051632dd6635560e21b81526001600160a01b038916600482015260ff80871660248301528316604482015260640161070e565b505050509193909250565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161216e9190612d94565b5f60405180830381855afa9150503d805f81146121a6576040519150601f19603f3d011682016040523d82523d5f602084013e6121ab565b606091505b509150915081156121fd5760408151106121dd57808060200190518101906121d39190612daa565b90945092506121fd565b60208151106121fd57808060200190518101906121fa91906129f0565b93505b505094509492505050565b826001600160a01b031682608001516001600160a01b0316146122505760405163396d48c960e11b81526001600160a01b03841660048201819052602482015260440161070e565b60608201511561228b5760608201516040516376d381b160e01b81526001600160a01b0385166004820152901515602482015260440161070e565b6122a7826040015161229b600990565b60ff9081169116141590565b156122e6576040828101519051630c6c87c560e41b81526001600160a01b03851660048201526009602482015260ff909116604482015260640161070e565b60a08201516001600160a01b0380821690831614612332576040516314cc941d60e01b81526001600160a01b03808616600483015280841660248301528216604482015260640161070e565b836001600160a01b0316816001600160a01b03160361236f5760405163f80468a760e01b81526001600160a01b038516600482015260240161070e565b60055460405163c3c5a54760e01b81526001600160a01b0383811660048301529091169063c3c5a54790602401602060405180830381865afa1580156123b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123db91906129f0565b1561240c5760405163976310fb60e01b81526001600160a01b0380861660048301528216602482015260440161070e565b50505050565b60ff81168114612420575f80fd5b50565b5f60208284031215612433575f80fd5b8135610d5481612412565b6001600160a01b0381168114612420575f80fd5b5f8060408385031215612463575f80fd5b823561246e8161243e565b946020939093013593505050565b5f6020828403121561248c575f80fd5b8135610d548161243e565b5f805f606084860312156124a9575f80fd5b83356124b48161243e565b92506020840135915060408401356124cb8161243e565b809150509250925092565b5f805f606084860312156124e8575f80fd5b83356124f381612412565b9250602084013561250381612412565b915060408401356124cb81612412565b5f8151808452602084019350602083015f5b8281101561254c5781516001600160a01b0316865260209586019590910190600101612525565b5093949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257601f198584030188526125bc838351612556565b60209889019890935091909101906001016125a0565b50909695505050505050565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257848303601f19018852815180518085526020918201918501905f5b8181101561264557835167ffffffffffffffff1683526020938401939092019160010161261d565b50506020998a01999094509290920191506001016125fa565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257601f19858403018852612696838351612584565b602098890198909350919091019060010161267a565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257848303601f19018852815180518085526020918201918086019190600582901b8701015f5b8281101561275857878203601f19018452845180518084526020918201918401905f5b818110156127405783516001600160e01b031916835260209384019390920191600101612718565b505060209687019695909501949250506001016126f5565b5060209b8c019b90965094909401935050506001016126c8565b5f8151808452602084019350602083015f5b8281101561254c57815160ff16865260209586019590910190600101612784565b602081526127b960208201835160ff169052565b602082015160408201525f604083015161018060608401526127df6101a0840182612513565b90506060840151601f198483030160808501526127fc8282612584565b9150506080840151601f198483030160a085015261281a82826125de565b91505060a0840151601f198483030160c0850152612838828261265e565b91505060c0840151601f198483030160e085015261285682826125de565b91505060e0840151601f1984830301610100850152612875828261265e565b915050610100840151601f198483030161012085015261289582826126ac565b915050610120840151601f19848303016101408501526128b58282612772565b9150506101408401516128d261016085018264ffffffffff169052565b5061016084015164ffffffffff8116610180850152509392505050565b5f602082840312156128ff575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068f5761068f612906565b805161293881612412565b919050565b5f6020828403121561294d575f80fd5b8151610d5481612412565b5f8060408385031215612969575f80fd5b825161297481612412565b6020939093015192949293505050565b80516129388161243e565b5f6020828403121561299f575f80fd5b8151610d548161243e565b5f602082840312156129ba575f80fd5b815164ffffffffff81168114610d54575f80fd5b8181038181111561068f5761068f612906565b80518015158114612938575f80fd5b5f60208284031215612a00575f80fd5b610d54826129e1565b600181811c90821680612a1d57607f821691505b602082108103612a3b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60018201612a5257612a52612906565b5060010190565b606081526001600160601b0384511660608201526001600160601b03602085015116608082015260ff60408501511660a08201525f6060850151612aa160c084018215159052565b5060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e0610120840152612ae8610140840182612556565b915050612afa602083018560ff169052565b60ff83166040830152949350505050565b80516001600160601b0381168114612938575f80fd5b5f60208284031215612b31575f80fd5b610d5482612b0b565b5f8085851115612b48575f80fd5b83861115612b54575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015612b92576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215612be8575f80fd5b815162ffffff81168114610d54575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715612c3157612c31612bfa565b60405290565b5f82601f830112612c46575f80fd5b815167ffffffffffffffff811115612c6057612c60612bfa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612c8f57612c8f612bfa565b604052818152838201602001851015612ca6575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215612cd2575f80fd5b815167ffffffffffffffff811115612ce8575f80fd5b820160e08185031215612cf9575f80fd5b612d01612c0e565b612d0a82612b0b565b8152612d1860208301612b0b565b6020820152612d296040830161292d565b6040820152612d3a606083016129e1565b6060820152612d4b60808301612984565b6080820152612d5c60a08301612984565b60a082015260c082015167ffffffffffffffff811115612d7a575f80fd5b612d8686828501612c37565b60c083015250949350505050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215612dbb575f80fd5b612dc4836129e1565b9150602083015163ffffffff81168114612ddc575f80fd5b80915050925092905056fea2646970667358221220bfe76e7f3268d9e0e47f0b199eb84f9f896944fdb904e4d1d1aeb080984ee28864736f6c634300081a0033",
1072
- "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106101ba575f3560e01c80637a9e5e4b116100f3578063bf1db3f911610093578063dde4fd8a1161006e578063dde4fd8a1461047b578063e9e96c701461048c578063f40d7c30146104c9578063fdd9ec7d146104da575f80fd5b8063bf1db3f914610438578063bf7e214f1461044b578063d2213b5b1461045b575f80fd5b806399a228e5116100ce57806399a228e5146104025780639ef6ddc91461040a578063a28448241461041d578063a898967514610425575f80fd5b80637a9e5e4b146103645780638fb360371461037757806393a7e71114610398575f80fd5b806319d1478b1161015e5780633a6c2125116101395780633a6c2125146103175780635ab1bd531461032a5780636428e2631461033b57806371ed16e41461034e575f80fd5b806319d1478b1461028557806330ac5bf2146102c857806331d53763146102dd575f80fd5b80630d358181116101995780630d358181146102225780630e41142e146102475780630e6d1de91461025257806311edceaa14610262575f80fd5b8062d19f30146101be57806305c937ed146101fa5780630af43fe11461021a575b5f80fd5b6101e36101cc366004612423565b60ff9081165f908152600b60205260409020541690565b60405160ff90911681526020015b60405180910390f35b6102046208052081565b60405164ffffffffff90911681526020016101f1565b6101e3610505565b6101e3610230366004612423565b60ff9081165f908152600160205260409020541690565b600a5460ff166101e3565b600a54610100900460ff166101e3565b610275610270366004612423565b610667565b60405190151581526020016101f1565b6102b0610293366004612423565b60ff165f908152600660205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101f1565b6102db6102d6366004612423565b610695565b005b6102f06102eb366004612452565b61078e565b604080516001600160a01b03909416845260ff9092166020840152908201526060016101f1565b6004546102b0906001600160a01b031681565b6005546001600160a01b03166102b0565b6102db610349366004612423565b610b2d565b610356610c80565b6040519081526020016101f1565b6102db61037236600461247c565b610c96565b61037f610d0e565b6040516001600160e01b031990911681526020016101f1565b6102b06103a6366004612497565b60405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b610356600381565b61027561041836600461247c565b610d30565b6102db610d5b565b6102db6104333660046124d6565b610fd3565b610275610446366004612423565b6110de565b5f546001600160a01b03166102b0565b61046e610469366004612423565b611164565b6040516101f191906127a5565b6003546001600160a01b03166102b0565b61027561049a3660046124d6565b60ff9283165f908152600260209081526040808320948616835293815283822092851682529190915220541690565b600a5462010000900460ff166101e3565b6104ed6104e836600461247c565b611897565b6040516001600160601b0390911681526020016101f1565b5f610512335b5f36611c28565b600a54604051632b10f60d60e21b81526201000090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af4158015610573573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059791906128ef565b6105a290600161291a565b6040518263ffffffff1660e01b81526004016105c091815260200190565b602060405180830381865af41580156105db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff919061293d565b600a805460ff92909216620100000262ff0000199092169190911790555f600d819055600c55610630610230600790565b600a8054620100009081900460ff9081165f908152600b60205260409020805460ff19169482169490941790935590540416919050565b60ff8181165f908152600b6020526040812054909161068f911660045b60ff90811691161490565b92915050565b61069e3361050b565b60ff8181165f908152600b60205260409020541660046106e860075b60ff9081165f9081526002602090815260408083208488168452825280832084871684529091529020541690565b610717576040516331ec295f60e01b815260ff8085166004830152831660248201526044015b60405180910390fd5b60ff8381165f818152600b60209081526040808320805460ff1916958716959095179094556007815290839020600a01805469ffffffffff00000000001916905591519081527f8c9377f44d861d9abb7de1a880bb234de50528f98b5e198945cb16818bbbb99291015b60405180910390a1505050565b5f808061079a3361050b565b5f80866001600160a01b03166376b707b76040518163ffffffff1660e01b81526004016040805180830381865afa1580156107d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fb9190612958565b600a54919350915060ff80841662010000909204161461084457600a5460405162c866d560e21b81526201000090910460ff90811660048301528316602482015260440161070e565b805f0361087257600a54604051635302597d60e01b81526201000090910460ff16600482015260240161070e565b600a5460ff6201000090910481165f818152600b602052604090205490955016600361089e60076106ba565b6108c85760405163c717747960e01b815260ff80881660048301528316602482015260440161070e565b600d54156108f65760405163c238a09360e01b815260ff80881660048301528316602482015260440161070e565b604051632b10f60d60e21b815260ff8716600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096a91906128ef565b604080516020810192909252810189905260600160408051601f19818403018152828252805160209182012060035463bf7e214f60e01b855292519098506001600160a01b039092169263bf7e214f92600480830193928290030181865afa1580156109d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fc919061298f565b96508860095f600a60029054906101000a900460ff1660ff1660ff1681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508660065f600a60029054906101000a900460ff1660ff1660ff1681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600d8190555080600b5f8860ff1660ff1681526020019081526020015f205f6101000a81548160ff021916908360ff1602179055507f6529cb4b9a24b8de97cbd0802b1c3d02a8c8aed37388204e2f5bc3013793977e868689604051610b1a9392919060ff93909316835260208301919091526001600160a01b0316604082015260600190565b60405180910390a1505050509250925092565b610b363361050b565b60ff8181165f908152600b602052604090205416606e610b5660076106ba565b610b80576040516331ec295f60e01b815260ff80851660048301528316602482015260440161070e565b60ff8381165f908152600b6020908152604091829020805460ff19169385169390931790925580516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480820193918290030181865af4158015610bee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1291906129aa565b60ff84165f81815260076020908152604091829020600a01805464ffffffffff95909516650100000000000269ffffffffff00000000001990951694909417909355519081527f332d7fb458421533fc26f5789a63f5b7538fc95dd42452533aff2b353c57e8269101610781565b5f600c54600d54610c9191906129ce565b905090565b5f5433906001600160a01b03168114610ccc5760405162d1953b60e31b81526001600160a01b038216600482015260240161070e565b816001600160a01b03163b5f03610d01576040516361798f2f60e11b81526001600160a01b038316600482015260240161070e565b610d0a82611d1e565b5050565b5f8054600160a01b900460ff16610d2457505f90565b50638fb3603760e01b90565b6001600160a01b0381165f9081526008602052604081205460ff16610d5481610667565b9392505050565b610d643361050b565b600a5460ff6201000090910481165f818152600b60205260409020549091166004610d8f60076106ba565b610db9576040516331ec295f60e01b815260ff80851660048301528316602482015260440161070e565b600d54600c541015610dfa5782600c54600d54610dd691906129ce565b60405163c90aac6160e01b815260ff9092166004830152602482015260440161070e565b6005545f906001600160a01b031663d39e604360026040516001600160e01b031960e084901b16815260ff91821660048201529087166024820152604401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e77919061298f565b90506001600160a01b038116610ea557604051638047661960e01b815260ff8516600482015260240161070e565b600a805460ff808716610100810261ff0019909316929092179092555f818152600b60209081526040808320805495881660ff199687161790556001600160a01b03861683526008825291829020805490941690921790925581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015610f47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6b91906129aa565b60ff85165f81815260076020908152604091829020600a01805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a150505050565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611035573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105991906129f0565b1561107c576040516321b9f44760e01b815260ff8416600482015260240161070e565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054166110d957604051636bb20ea760e01b815260ff808516600483015280841660248301528216604482015260640161070e565b505050565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015611140573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068f91906129f0565b6111d86040518061018001604052805f60ff1681526020015f801916815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b60ff8083165f90815260076020908152604091829020825161018081018452815490941684526001810154848301526002810180548451818502810185018652818152929486019383018282801561125757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611239575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561132c578382905f5260205f200180546112a190612a09565b80601f01602080910402602001604051908101604052809291908181526020018280546112cd90612a09565b80156113185780601f106112ef57610100808354040283529160200191611318565b820191905f5260205f20905b8154815290600101906020018083116112fb57829003601f168201915b505050505081526020019060010190611284565b50505050815260200160048201805480602002602001604051908101604052809291908181526020015f905b828210156113f4575f848152602090819020830180546040805182850281018501909152818152928301828280156113e057602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161139b5790505b505050505081526020019060010190611358565b50505050815260200160058201805480602002602001604051908101604052809291908181526020015f905b8282101561150c578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156114f9578382905f5260205f2001805461146e90612a09565b80601f016020809104026020016040519081016040528092919081815260200182805461149a90612a09565b80156114e55780601f106114bc576101008083540402835291602001916114e5565b820191905f5260205f20905b8154815290600101906020018083116114c857829003601f168201915b505050505081526020019060010190611451565b5050505081526020019060010190611420565b50505050815260200160068201805480602002602001604051908101604052809291908181526020015f905b828210156115d4575f848152602090819020830180546040805182850281018501909152818152928301828280156115c057602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161157b5790505b505050505081526020019060010190611538565b50505050815260200160078201805480602002602001604051908101604052809291908181526020015f905b828210156116ec578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156116d9578382905f5260205f2001805461164e90612a09565b80601f016020809104026020016040519081016040528092919081815260200182805461167a90612a09565b80156116c55780601f1061169c576101008083540402835291602001916116c5565b820191905f5260205f20905b8154815290600101906020018083116116a857829003601f168201915b505050505081526020019060010190611631565b5050505081526020019060010190611600565b50505050815260200160088201805480602002602001604051908101604052809291908181526020015f905b828210156117f1578382905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b828210156117de575f848152602090819020830180546040805182850281018501909152818152928301828280156117ca57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161178c5790505b505050505081526020019060010190611749565b5050505081526020019060010190611718565b5050505081526020016009820180548060200260200160405190810160405280929190818152602001828054801561186357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118345790505b5050509183525050600a919091015464ffffffffff8082166020840152650100000000009091041660409091015292915050565b5f6118a13361050b565b600a5460ff6201000090910481165f818152600b602052604090205490911660036118cc60076106ba565b6118ee576040516316997edd60e11b815260ff8316600482015260240161070e565b600c54600d540361191257604051630a7d531760e31b815260040160405180910390fd5b5f805f61191e88611d71565b60ff89165f9081526009602052604080822054600c54915162212fa360ea1b81526004810192909252949750929550909350916001600160a01b0316906384be8c0090602401602060405180830381865afa15801561197f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a3919061293d565b905060ff808416908216146119d8576040516331ca5aff60e11b815260ff80831660048301528416602482015260440161070e565b60ff8088165f81815260076020908152604080832060090180546001810182559084528284208382040180548a8816601f9093166101000a9283029288021916919091179055928252600b9052908120805492881660ff1990931692909217909155600c805491611a4883612a41565b909155505060035460ff88165f908152600960205260409081902054905163122beb2560e11b81526001600160a01b0391821660048201528b82166024820152911690632457d64a906044015f604051808303815f87803b158015611aab575f80fd5b505af1158015611abd573d5f803e3d5ffd5b50505050611acd83610684600390565b80611adb575060ff8316600f145b15611b445760035460405163420e0b3560e01b81526001600160a01b038b8116600483015260ff861660248301529091169063420e0b35906044015f604051808303815f87803b158015611b2d575f80fd5b505af1158015611b3f573d5f803e3d5ffd5b505050505b600554604051635382852b60e11b81526001600160a01b039091169063a7050a5690611b7890879086908890600401612a59565b6020604051808303815f875af1158015611b94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb89190612b21565b9750886001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1b9190612b21565b5050505050505050919050565b5f80611c5b611c3e5f546001600160a01b031690565b8630611c4d60045f898b612b3a565b611c5691612b61565b612100565b9150915081611d175763ffffffff811615611cf4575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611cb590889088908890600401612b99565b5f604051808303815f87803b158015611ccc575f80fd5b505af1158015611cde573d5f803e3d5ffd5b50505f805460ff60a01b1916905550611d179050565b60405162d1953b60e31b81526001600160a01b038616600482015260240161070e565b5050505050565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040805160e0810182525f8082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263daf9067160e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1891906129f0565b611e4057604051631fdf992160e01b81526001600160a01b038516600482015260240161070e565b5f3390505f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea5919061298f565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f079190612bd8565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7e919061293d565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fe0919061293d565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120449190810190612cc2565b9450612051868684612208565b600a5462010000900460ff165f818152600660205260409020546001600160a01b0390811690831681146120b35760405163179dce5160e11b81526001600160a01b03808a16600483015280851660248301528216604482015260640161070e565b60ff808616908316146120f557604051632dd6635560e21b81526001600160a01b038916600482015260ff80871660248301528316604482015260640161070e565b505050509193909250565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161216e9190612d94565b5f60405180830381855afa9150503d805f81146121a6576040519150601f19603f3d011682016040523d82523d5f602084013e6121ab565b606091505b509150915081156121fd5760408151106121dd57808060200190518101906121d39190612daa565b90945092506121fd565b60208151106121fd57808060200190518101906121fa91906129f0565b93505b505094509492505050565b826001600160a01b031682608001516001600160a01b0316146122505760405163396d48c960e11b81526001600160a01b03841660048201819052602482015260440161070e565b60608201511561228b5760608201516040516376d381b160e01b81526001600160a01b0385166004820152901515602482015260440161070e565b6122a7826040015161229b600990565b60ff9081169116141590565b156122e6576040828101519051630c6c87c560e41b81526001600160a01b03851660048201526009602482015260ff909116604482015260640161070e565b60a08201516001600160a01b0380821690831614612332576040516314cc941d60e01b81526001600160a01b03808616600483015280841660248301528216604482015260640161070e565b836001600160a01b0316816001600160a01b03160361236f5760405163f80468a760e01b81526001600160a01b038516600482015260240161070e565b60055460405163c3c5a54760e01b81526001600160a01b0383811660048301529091169063c3c5a54790602401602060405180830381865afa1580156123b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123db91906129f0565b1561240c5760405163976310fb60e01b81526001600160a01b0380861660048301528216602482015260440161070e565b50505050565b60ff81168114612420575f80fd5b50565b5f60208284031215612433575f80fd5b8135610d5481612412565b6001600160a01b0381168114612420575f80fd5b5f8060408385031215612463575f80fd5b823561246e8161243e565b946020939093013593505050565b5f6020828403121561248c575f80fd5b8135610d548161243e565b5f805f606084860312156124a9575f80fd5b83356124b48161243e565b92506020840135915060408401356124cb8161243e565b809150509250925092565b5f805f606084860312156124e8575f80fd5b83356124f381612412565b9250602084013561250381612412565b915060408401356124cb81612412565b5f8151808452602084019350602083015f5b8281101561254c5781516001600160a01b0316865260209586019590910190600101612525565b5093949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257601f198584030188526125bc838351612556565b60209889019890935091909101906001016125a0565b50909695505050505050565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257848303601f19018852815180518085526020918201918501905f5b8181101561264557835167ffffffffffffffff1683526020938401939092019160010161261d565b50506020998a01999094509290920191506001016125fa565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257601f19858403018852612696838351612584565b602098890198909350919091019060010161267a565b5f82825180855260208501945060208160051b830101602085015f5b838110156125d257848303601f19018852815180518085526020918201918086019190600582901b8701015f5b8281101561275857878203601f19018452845180518084526020918201918401905f5b818110156127405783516001600160e01b031916835260209384019390920191600101612718565b505060209687019695909501949250506001016126f5565b5060209b8c019b90965094909401935050506001016126c8565b5f8151808452602084019350602083015f5b8281101561254c57815160ff16865260209586019590910190600101612784565b602081526127b960208201835160ff169052565b602082015160408201525f604083015161018060608401526127df6101a0840182612513565b90506060840151601f198483030160808501526127fc8282612584565b9150506080840151601f198483030160a085015261281a82826125de565b91505060a0840151601f198483030160c0850152612838828261265e565b91505060c0840151601f198483030160e085015261285682826125de565b91505060e0840151601f1984830301610100850152612875828261265e565b915050610100840151601f198483030161012085015261289582826126ac565b915050610120840151601f19848303016101408501526128b58282612772565b9150506101408401516128d261016085018264ffffffffff169052565b5061016084015164ffffffffff8116610180850152509392505050565b5f602082840312156128ff575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068f5761068f612906565b805161293881612412565b919050565b5f6020828403121561294d575f80fd5b8151610d5481612412565b5f8060408385031215612969575f80fd5b825161297481612412565b6020939093015192949293505050565b80516129388161243e565b5f6020828403121561299f575f80fd5b8151610d548161243e565b5f602082840312156129ba575f80fd5b815164ffffffffff81168114610d54575f80fd5b8181038181111561068f5761068f612906565b80518015158114612938575f80fd5b5f60208284031215612a00575f80fd5b610d54826129e1565b600181811c90821680612a1d57607f821691505b602082108103612a3b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60018201612a5257612a52612906565b5060010190565b606081526001600160601b0384511660608201526001600160601b03602085015116608082015260ff60408501511660a08201525f6060850151612aa160c084018215159052565b5060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e0610120840152612ae8610140840182612556565b915050612afa602083018560ff169052565b60ff83166040830152949350505050565b80516001600160601b0381168114612938575f80fd5b5f60208284031215612b31575f80fd5b610d5482612b0b565b5f8085851115612b48575f80fd5b83861115612b54575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015612b92576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215612be8575f80fd5b815162ffffff81168114610d54575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715612c3157612c31612bfa565b60405290565b5f82601f830112612c46575f80fd5b815167ffffffffffffffff811115612c6057612c60612bfa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612c8f57612c8f612bfa565b604052818152838201602001851015612ca6575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215612cd2575f80fd5b815167ffffffffffffffff811115612ce8575f80fd5b820160e08185031215612cf9575f80fd5b612d01612c0e565b612d0a82612b0b565b8152612d1860208301612b0b565b6020820152612d296040830161292d565b6040820152612d3a606083016129e1565b6060820152612d4b60808301612984565b6080820152612d5c60a08301612984565b60a082015260c082015167ffffffffffffffff811115612d7a575f80fd5b612d8686828501612c37565b60c083015250949350505050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215612dbb575f80fd5b612dc4836129e1565b9150602083015163ffffffff81168114612ddc575f80fd5b80915050925092905056fea2646970667358221220bfe76e7f3268d9e0e47f0b199eb84f9f896944fdb904e4d1d1aeb080984ee28864736f6c634300081a0033",
1053
+ "bytecode": "0x60c06040523480156200001157600080fd5b5060405162003099380380620030998339810160408190526200003491620005e3565b336200004081620002a7565b506200004b620002fb565b620000568162000359565b62000084576040516358374b4160e11b81526001600160a01b03821660048201526024015b60405180910390fd5b620000f3816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ed9190620005e3565b62000474565b6001600160a01b03811660a08190526040805163016f41bf60e51b81529051632de837e0916004808201926020929091908290030181865afa1580156200013e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001649190620005e3565b6001600160a01b0316608052604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e791906200060a565b6008805460ff191660ff9290921691909117905573__$b659da7d8a6d2d32aa6c1e17da23dc2174$__638e4ad86c62000223600160036200062f565b6040518263ffffffff1660e01b81526004016200024291815260200190565b602060405180830381865af415801562000260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028691906200060a565b600860026101000a81548160ff021916908360ff16021790555050620006b6565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6200030960076002620004f4565b6200031a600760025b600362000546565b620003286007600362000312565b62000339600760035b600462000546565b6200034960076004606e62000546565b620003576007606e62000331565b565b60006001600160a01b0382166200037257506000919050565b604051636939560f60e11b81526001600160a01b038316600482018190529063d272ac1e90602401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000651565b604051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e91906200067c565b156200046c57506000919050565b506001919050565b60005433906001600160a01b03168114620004ad5760405162d1953b60e31b81526001600160a01b03821660048201526024016200007b565b816001600160a01b03163b600003620004e5576040516361798f2f60e11b81526001600160a01b03831660048201526024016200007b565b620004f082620002a7565b5050565b60ff82811660009081526001602052604081205462000515921690620005ba565b620005245762000524620006a0565b60ff9182166000908152600160205260409020805460ff191691909216179055565b60ff80841660009081526002602090815260408083208685168452825280832085851684529091529020541615620005825762000582620006a0565b60ff9283166000908152600260209081526040808320948616835293815283822092909416815292529020805460ff19166001179055565b60ff828116908216145b92915050565b6001600160a01b0381168114620005e057600080fd5b50565b600060208284031215620005f657600080fd5b81516200060381620005ca565b9392505050565b6000602082840312156200061d57600080fd5b815160ff811681146200060357600080fd5b81810381811115620005c457634e487b7160e01b600052601160045260246000fd5b6000602082840312156200066457600080fd5b81516001600160601b03811681146200060357600080fd5b6000602082840312156200068f57600080fd5b815180151581146200060357600080fd5b634e487b7160e01b600052600160045260246000fd5b60805160a05161297e6200071b6000396000818161032c0152818161037e01528181610eb0015281816115ef015261203a0152600081816102150152818161048f015281816107d201528181611722015281816117c70152611c8c015261297e6000f3fe608060405234801561001057600080fd5b50600436106101ce5760003560e01c80637a9e5e4b11610104578063a972d698116100a2578063dde4fd8a11610071578063dde4fd8a1461048d578063e9e96c70146104b3578063f40d7c30146104f1578063fdd9ec7d1461050257600080fd5b8063a972d6981461041d578063bf1db3f914610449578063bf7e214f1461045c578063d2213b5b1461046d57600080fd5b806399a228e5116100de57806399a228e5146103e75780639ef6ddc9146103ef578063a284482414610402578063a89896751461040a57600080fd5b80637a9e5e4b146103a05780638fb36037146103b357806393a7e711146103d457600080fd5b806311edceaa116101715780635ab1bd531161014b5780635ab1bd531461032a5780636428e2631461035057806371ed16e41461036357806379cbc5fa1461037957600080fd5b806311edceaa146102b857806330ac5bf2146102db57806331d53763146102f057600080fd5b80630af43fe1116101ad5780630af43fe11461026f5780630d358181146102775780630e41142e1461029d5780630e6d1de9146102a857600080fd5b8062d19f30146101d357806301bc45c91461021057806305c937ed1461024f575b600080fd5b6101f96101e13660046120ee565b60ff9081166000908152600960205260409020541690565b60405160ff90911681526020015b60405180910390f35b6102377f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610207565b6102596208052081565b60405164ffffffffff9091168152602001610207565b6101f961052d565b6101f96102853660046120ee565b60ff9081166000908152600160205260409020541690565b60085460ff166101f9565b600854610100900460ff166101f9565b6102cb6102c63660046120ee565b610697565b6040519015158152602001610207565b6102ee6102e93660046120ee565b6106c6565b005b6103036102fe366004612120565b6107c3565b604080516001600160a01b03909416845260ff909216602084015290820152606001610207565b7f0000000000000000000000000000000000000000000000000000000000000000610237565b6102ee61035e3660046120ee565b610b66565b61036b610cbe565b604051908152602001610207565b6102377f000000000000000000000000000000000000000000000000000000000000000081565b6102ee6103ae36600461214c565b610cd5565b6103bb610d4f565b6040516001600160e01b03199091168152602001610207565b6102376103e2366004612169565b610d73565b61036b600381565b6102cb6103fd36600461214c565b610dd8565b6102ee610e04565b6102ee6104183660046121ab565b6110a1565b61023761042b3660046120ee565b60ff166000908152600660205260409020546001600160a01b031690565b6102cb6104573660046120ee565b6111b0565b6000546001600160a01b0316610237565b61048061047b3660046120ee565b611239565b60405161020791906122ce565b7f0000000000000000000000000000000000000000000000000000000000000000610237565b6102cb6104c13660046121ab565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b60085462010000900460ff166101f9565b61051561051036600461214c565b611472565b6040516001600160601b039091168152602001610207565b600061053c335b60003661182f565b600854604051632b10f60d60e21b81526201000090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af415801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c391906123ad565b6105ce9060016123dc565b6040518263ffffffff1660e01b81526004016105ec91815260200190565b602060405180830381865af4158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062d91906123ff565b6008805460ff92909216620100000262ff0000199092169190911790556000600b819055600a5561065f610285600790565b60088054620100009081900460ff9081166000908152600960205260409020805460ff19169482169490941790935590540416919050565b60ff81811660009081526009602052604081205490916106c0911660045b60ff90811691161490565b92915050565b6106cf33610534565b60ff81811660009081526009602052604090205416600461071b60075b60ff90811660009081526002602090815260408083208488168452825280832084871684529091529020541690565b61074a576040516331ec295f60e01b815260ff8085166004830152831660248201526044015b60405180910390fd5b60ff8381166000818152600960209081526040808320805460ff191695871695909517909455600580825291849020909101805469ffffffffff00000000001916905591519081527f8c9377f44d861d9abb7de1a880bb234de50528f98b5e198945cb16818bbbb99291015b60405180910390a1505050565b600080806107d033610534565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190612427565b600854604051632b10f60d60e21b81526201000090910460ff166004820181905291945090925073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af41580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906123ad565b604080516020810192909252810185905260600160405160208183030381529060405280519060200120905061092c610910600790565b60ff8481166000908152600960205260409020541660036104c1565b61096a5760ff8281166000818152600960205260409081902054905163c717747960e01b815260048101929092529091166024820152604401610741565b60ff82166000908152600960209081526040808320805460ff1916600317905580516376b707b760e01b815290516001600160a01b038916926376b707b792600480820193918290030181865afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906123ff565b905060ff80821690841614610a215760405162c866d560e21b815260ff808516600483015282166024820152604401610741565b6000866001600160a01b03166368c55b136040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a8991908101906124b4565b51905080600003610ab257604051635302597d60e01b815260ff85166004820152602401610741565b600b5415610af45760ff8481166000818152600960205260409081902054905163c238a09360e01b815260048101929092529091166024820152604401610741565b600b81905560ff841660008181526006602090815260409182902080546001600160a01b0319166001600160a01b038c16179055815192835282018590527f59754c54c6ce6d53c285831436dd3536e7b6dacb922705904d13bbc16cfa5507910160405180910390a150509250925092565b610b6f33610534565b60ff81811660009081526009602052604090205416606e610b9060076106ec565b610bba576040516331ec295f60e01b815260ff808516600483015283166024820152604401610741565b60ff838116600090815260096020908152604091829020805460ff19169385169390931790925580516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480820193918290030181865af4158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190612566565b60ff8416600081815260056020818152604092839020909101805464ffffffffff95909516650100000000000269ffffffffff00000000001990951694909417909355519081527f332d7fb458421533fc26f5789a63f5b7538fc95dd42452533aff2b353c57e82691016107b6565b6000600a54600b54610cd0919061258d565b905090565b60005433906001600160a01b03168114610d0c5760405162d1953b60e31b81526001600160a01b0382166004820152602401610741565b816001600160a01b03163b600003610d42576040516361798f2f60e11b81526001600160a01b0383166004820152602401610741565b610d4b8261192f565b5050565b60008054600160a01b900460ff16610d675750600090565b50638fb3603760e01b90565b604051603881018290526f5af43d82803e903d91602b57fd5bf3ff602482015260148101849052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018390526037600c820120607882015260556043909101206000905b949350505050565b6001600160a01b03811660009081526007602052604081205460ff16610dfd81610697565b9392505050565b610e0d33610534565b60085460ff6201000090910481166000818152600960205260409020549091166004610e3960076106ec565b610e63576040516331ec295f60e01b815260ff808516600483015283166024820152604401610741565b600b54600a541015610ea45782600a54600b54610e80919061258d565b60405163c90aac6160e01b815260ff90921660048301526024820152604401610741565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d39e604360026040516001600160e01b031960e084901b16815260ff91821660048201529087166024820152604401602060405180830381865afa158015610f1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f419190612427565b90506001600160a01b038116610f6f57604051638047661960e01b815260ff85166004820152602401610741565b6008805460ff808716610100810261ff0019909316929092179092556000818152600960209081526040808320805495881660ff199687161790556001600160a01b03861683526007825291829020805490941690921790925581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190612566565b60ff8516600081815260056020818152604092839020909101805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a150505050565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906125b0565b1561114d576040516321b9f44760e01b815260ff84166004820152602401610741565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111ab57604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610741565b505050565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c091906125b0565b6040805160e08082018352600080835260208084018290526060848601819052808501819052608085015260a0840182905260c0840182905260ff8681168352600582529185902085519384018652805490921683526001820154838201526002820180548651818402810184018852818152959694959394860193928301828280156112ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112d1575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156113c957838290600052602060002001805461133c906125cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611368906125cb565b80156113b55780601f1061138a576101008083540402835291602001916113b5565b820191906000526020600020905b81548152906001019060200180831161139857829003601f168201915b50505050508152602001906001019061131d565b5050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561143e57602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161140f5790505b50505091835250506005919091015464ffffffffff8082166020840152650100000000009091041660409091015292915050565b600061147d33610534565b60085460ff6201000090910481166000818152600960205260409020549091166114aa60078260036104c1565b6114cc576040516316997edd60e11b815260ff82166004820152602401610741565b60ff82166000908152600960205260409020805460ff19166003179055600a54600b540361150d57604051630a7d531760e31b815260040160405180910390fd5b600080600061151b87611983565b60ff881660009081526006602052604080822054600a54915162212fa360ea1b81526004810192909252949750929550909350916001600160a01b0316906384be8c0090602401602060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906123ff565b905060ff808416908216146115d8576040516331ca5aff60e11b815260ff808316600483015284166024820152604401610741565b604051635382852b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a7050a569061162890879086908890600401612605565b6020604051808303816000875af1158015611647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166b91906126c2565b9650876001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303816000875af11580156116ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d191906126c2565b50600a80549060006116e2836126dd565b909155505060ff86166000908152600660205260409081902054905163122beb2560e11b81526001600160a01b03918216600482015289821660248201527f000000000000000000000000000000000000000000000000000000000000000090911690632457d64a90604401600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b5050505061178c836106b5600390565b8061179a575060ff8316600f145b156118245760405163420e0b3560e01b81526001600160a01b03898116600483015260ff851660248301527f0000000000000000000000000000000000000000000000000000000000000000169063420e0b3590604401600060405180830381600087803b15801561180b57600080fd5b505af115801561181f573d6000803e3d6000fd5b505050505b505050505050919050565b6000806118656118476000546001600160a01b031690565b863061185760046000898b6126f6565b61186091612720565b611da8565b91509150816119285763ffffffff811615611905576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906118c090889088908890600401612750565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b50506000805460ff60a01b19169055506119289050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610741565b5050505050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040805160e08101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263daf9067160e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2d91906125b0565b611a5557604051631fdf992160e01b81526001600160a01b0385166004820152602401610741565b60003390506000856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190612427565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b229190612790565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9b91906123ff565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bff91906123ff565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c679190810190612819565b9450611c74868684611eb4565b6000600860029054906101000a900460ff16905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0c9190612427565b9050806001600160a01b0316836001600160a01b031614611d5b5760405163179dce5160e11b81526001600160a01b03808a166004830152808516602483015282166044820152606401610741565b60ff80861690831614611d9d57604051632dd6635560e21b81526001600160a01b038916600482015260ff808716602483015283166044820152606401610741565b505050509193909250565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611e1791906128ec565b600060405180830381855afa9150503d8060008114611e52576040519150601f19603f3d011682016040523d82523d6000602084013e611e57565b606091505b50915091508115611ea9576040815110611e895780806020019051810190611e7f9190612908565b9094509250611ea9565b6020815110611ea95780806020019051810190611ea691906125b0565b93505b505094509492505050565b826001600160a01b031682608001516001600160a01b031614611efc5760405163396d48c960e11b81526001600160a01b038416600482018190526024820152604401610741565b606082015115611f375760608201516040516376d381b160e01b81526001600160a01b03851660048201529015156024820152604401610741565b611f538260400151611f47600990565b60ff9081169116141590565b15611f92576040828101519051630c6c87c560e41b81526001600160a01b03851660048201526009602482015260ff9091166044820152606401610741565b60a08201516001600160a01b0380821690831614611fde576040516314cc941d60e01b81526001600160a01b038086166004830152808416602483015282166044820152606401610741565b836001600160a01b0316816001600160a01b03160361201b5760405163f80468a760e01b81526001600160a01b0385166004820152602401610741565b60405163c3c5a54760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c3c5a54790602401602060405180830381865afa158015612081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a591906125b0565b156120d65760405163976310fb60e01b81526001600160a01b03808616600483015282166024820152604401610741565b50505050565b60ff811681146120eb57600080fd5b50565b60006020828403121561210057600080fd5b8135610dfd816120dc565b6001600160a01b03811681146120eb57600080fd5b6000806040838503121561213357600080fd5b823561213e8161210b565b946020939093013593505050565b60006020828403121561215e57600080fd5b8135610dfd8161210b565b60008060006060848603121561217e57600080fd5b83356121898161210b565b92506020840135915060408401356121a08161210b565b809150509250925092565b6000806000606084860312156121c057600080fd5b83356121cb816120dc565b925060208401356121db816120dc565b915060408401356121a0816120dc565b60005b838110156122065781810151838201526020016121ee565b50506000910152565b600081518084526122278160208601602086016121eb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561228357828403895261227184835161220f565b98850198935090840190600101612259565b5091979650505050505050565b600081518084526020808501945080840160005b838110156122c357815160ff16875295820195908201906001016122a4565b509495945050505050565b60006020808352610100830160ff85511682850152818501516040850152604085015160e06060860152818151808452610120870191508483019350600092505b808310156123385783516001600160a01b0316825292840192600192909201919084019061230f565b5060608701519350601f19925082868203016080870152612359818561223b565b935050506080850151818584030160a08601526123768382612290565b9250505060a084015161239260c085018264ffffffffff169052565b5060c084015164ffffffffff811660e0850152509392505050565b6000602082840312156123bf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c0576106c06123c6565b80516123fa816120dc565b919050565b60006020828403121561241157600080fd5b8151610dfd816120dc565b80516123fa8161210b565b60006020828403121561243957600080fd5b8151610dfd8161210b565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff8111828210171561247d5761247d612444565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156124ac576124ac612444565b604052919050565b600060208083850312156124c757600080fd5b825167ffffffffffffffff808211156124df57600080fd5b818501915085601f8301126124f357600080fd5b81518181111561250557612505612444565b8060051b9150612516848301612483565b818152918301840191848101908884111561253057600080fd5b938501935b8385101561255a578451925061254a836120dc565b8282529385019390850190612535565b98975050505050505050565b60006020828403121561257857600080fd5b815164ffffffffff81168114610dfd57600080fd5b818103818111156106c0576106c06123c6565b805180151581146123fa57600080fd5b6000602082840312156125c257600080fd5b610dfd826125a0565b600181811c908216806125df57607f821691505b6020821081036125ff57634e487b7160e01b600052602260045260246000fd5b50919050565b606080825284516001600160601b03908116838301526020860151166080830152604085015160ff1660a083015284015180151560c08301526000905060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e061012084015261268861014084018261220f565b91505061269a602083018560ff169052565b60ff83166040830152949350505050565b80516001600160601b03811681146123fa57600080fd5b6000602082840312156126d457600080fd5b610dfd826126ab565b6000600182016126ef576126ef6123c6565b5060010190565b6000808585111561270657600080fd5b8386111561271357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156127485780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156127a257600080fd5b815162ffffff81168114610dfd57600080fd5b600082601f8301126127c657600080fd5b815167ffffffffffffffff8111156127e0576127e0612444565b6127f3601f8201601f1916602001612483565b81815284602083860101111561280857600080fd5b610dd08260208301602087016121eb565b60006020828403121561282b57600080fd5b815167ffffffffffffffff8082111561284357600080fd5b9083019060e0828603121561285757600080fd5b61285f61245a565b612868836126ab565b8152612876602084016126ab565b6020820152612887604084016123ef565b6040820152612898606084016125a0565b60608201526128a96080840161241c565b60808201526128ba60a0840161241c565b60a082015260c0830151828111156128d157600080fd5b6128dd878286016127b5565b60c08301525095945050505050565b600082516128fe8184602087016121eb565b9190910192915050565b6000806040838503121561291b57600080fd5b612924836125a0565b9150602083015163ffffffff8116811461293d57600080fd5b80915050925092905056fea2646970667358221220a1890b089979905a1787ef67c829073c09030dcf49594667689a47c3404ddfe564736f6c63430008140033",
1054
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ce5760003560e01c80637a9e5e4b11610104578063a972d698116100a2578063dde4fd8a11610071578063dde4fd8a1461048d578063e9e96c70146104b3578063f40d7c30146104f1578063fdd9ec7d1461050257600080fd5b8063a972d6981461041d578063bf1db3f914610449578063bf7e214f1461045c578063d2213b5b1461046d57600080fd5b806399a228e5116100de57806399a228e5146103e75780639ef6ddc9146103ef578063a284482414610402578063a89896751461040a57600080fd5b80637a9e5e4b146103a05780638fb36037146103b357806393a7e711146103d457600080fd5b806311edceaa116101715780635ab1bd531161014b5780635ab1bd531461032a5780636428e2631461035057806371ed16e41461036357806379cbc5fa1461037957600080fd5b806311edceaa146102b857806330ac5bf2146102db57806331d53763146102f057600080fd5b80630af43fe1116101ad5780630af43fe11461026f5780630d358181146102775780630e41142e1461029d5780630e6d1de9146102a857600080fd5b8062d19f30146101d357806301bc45c91461021057806305c937ed1461024f575b600080fd5b6101f96101e13660046120ee565b60ff9081166000908152600960205260409020541690565b60405160ff90911681526020015b60405180910390f35b6102377f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610207565b6102596208052081565b60405164ffffffffff9091168152602001610207565b6101f961052d565b6101f96102853660046120ee565b60ff9081166000908152600160205260409020541690565b60085460ff166101f9565b600854610100900460ff166101f9565b6102cb6102c63660046120ee565b610697565b6040519015158152602001610207565b6102ee6102e93660046120ee565b6106c6565b005b6103036102fe366004612120565b6107c3565b604080516001600160a01b03909416845260ff909216602084015290820152606001610207565b7f0000000000000000000000000000000000000000000000000000000000000000610237565b6102ee61035e3660046120ee565b610b66565b61036b610cbe565b604051908152602001610207565b6102377f000000000000000000000000000000000000000000000000000000000000000081565b6102ee6103ae36600461214c565b610cd5565b6103bb610d4f565b6040516001600160e01b03199091168152602001610207565b6102376103e2366004612169565b610d73565b61036b600381565b6102cb6103fd36600461214c565b610dd8565b6102ee610e04565b6102ee6104183660046121ab565b6110a1565b61023761042b3660046120ee565b60ff166000908152600660205260409020546001600160a01b031690565b6102cb6104573660046120ee565b6111b0565b6000546001600160a01b0316610237565b61048061047b3660046120ee565b611239565b60405161020791906122ce565b7f0000000000000000000000000000000000000000000000000000000000000000610237565b6102cb6104c13660046121ab565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b60085462010000900460ff166101f9565b61051561051036600461214c565b611472565b6040516001600160601b039091168152602001610207565b600061053c335b60003661182f565b600854604051632b10f60d60e21b81526201000090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af415801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c391906123ad565b6105ce9060016123dc565b6040518263ffffffff1660e01b81526004016105ec91815260200190565b602060405180830381865af4158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062d91906123ff565b6008805460ff92909216620100000262ff0000199092169190911790556000600b819055600a5561065f610285600790565b60088054620100009081900460ff9081166000908152600960205260409020805460ff19169482169490941790935590540416919050565b60ff81811660009081526009602052604081205490916106c0911660045b60ff90811691161490565b92915050565b6106cf33610534565b60ff81811660009081526009602052604090205416600461071b60075b60ff90811660009081526002602090815260408083208488168452825280832084871684529091529020541690565b61074a576040516331ec295f60e01b815260ff8085166004830152831660248201526044015b60405180910390fd5b60ff8381166000818152600960209081526040808320805460ff191695871695909517909455600580825291849020909101805469ffffffffff00000000001916905591519081527f8c9377f44d861d9abb7de1a880bb234de50528f98b5e198945cb16818bbbb99291015b60405180910390a1505050565b600080806107d033610534565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190612427565b600854604051632b10f60d60e21b81526201000090910460ff166004820181905291945090925073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af41580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906123ad565b604080516020810192909252810185905260600160405160208183030381529060405280519060200120905061092c610910600790565b60ff8481166000908152600960205260409020541660036104c1565b61096a5760ff8281166000818152600960205260409081902054905163c717747960e01b815260048101929092529091166024820152604401610741565b60ff82166000908152600960209081526040808320805460ff1916600317905580516376b707b760e01b815290516001600160a01b038916926376b707b792600480820193918290030181865afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906123ff565b905060ff80821690841614610a215760405162c866d560e21b815260ff808516600483015282166024820152604401610741565b6000866001600160a01b03166368c55b136040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a8991908101906124b4565b51905080600003610ab257604051635302597d60e01b815260ff85166004820152602401610741565b600b5415610af45760ff8481166000818152600960205260409081902054905163c238a09360e01b815260048101929092529091166024820152604401610741565b600b81905560ff841660008181526006602090815260409182902080546001600160a01b0319166001600160a01b038c16179055815192835282018590527f59754c54c6ce6d53c285831436dd3536e7b6dacb922705904d13bbc16cfa5507910160405180910390a150509250925092565b610b6f33610534565b60ff81811660009081526009602052604090205416606e610b9060076106ec565b610bba576040516331ec295f60e01b815260ff808516600483015283166024820152604401610741565b60ff838116600090815260096020908152604091829020805460ff19169385169390931790925580516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480820193918290030181865af4158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190612566565b60ff8416600081815260056020818152604092839020909101805464ffffffffff95909516650100000000000269ffffffffff00000000001990951694909417909355519081527f332d7fb458421533fc26f5789a63f5b7538fc95dd42452533aff2b353c57e82691016107b6565b6000600a54600b54610cd0919061258d565b905090565b60005433906001600160a01b03168114610d0c5760405162d1953b60e31b81526001600160a01b0382166004820152602401610741565b816001600160a01b03163b600003610d42576040516361798f2f60e11b81526001600160a01b0383166004820152602401610741565b610d4b8261192f565b5050565b60008054600160a01b900460ff16610d675750600090565b50638fb3603760e01b90565b604051603881018290526f5af43d82803e903d91602b57fd5bf3ff602482015260148101849052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018390526037600c820120607882015260556043909101206000905b949350505050565b6001600160a01b03811660009081526007602052604081205460ff16610dfd81610697565b9392505050565b610e0d33610534565b60085460ff6201000090910481166000818152600960205260409020549091166004610e3960076106ec565b610e63576040516331ec295f60e01b815260ff808516600483015283166024820152604401610741565b600b54600a541015610ea45782600a54600b54610e80919061258d565b60405163c90aac6160e01b815260ff90921660048301526024820152604401610741565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d39e604360026040516001600160e01b031960e084901b16815260ff91821660048201529087166024820152604401602060405180830381865afa158015610f1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f419190612427565b90506001600160a01b038116610f6f57604051638047661960e01b815260ff85166004820152602401610741565b6008805460ff808716610100810261ff0019909316929092179092556000818152600960209081526040808320805495881660ff199687161790556001600160a01b03861683526007825291829020805490941690921790925581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190612566565b60ff8516600081815260056020818152604092839020909101805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a150505050565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906125b0565b1561114d576040516321b9f44760e01b815260ff84166004820152602401610741565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111ab57604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610741565b505050565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c091906125b0565b6040805160e08082018352600080835260208084018290526060848601819052808501819052608085015260a0840182905260c0840182905260ff8681168352600582529185902085519384018652805490921683526001820154838201526002820180548651818402810184018852818152959694959394860193928301828280156112ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112d1575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156113c957838290600052602060002001805461133c906125cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611368906125cb565b80156113b55780601f1061138a576101008083540402835291602001916113b5565b820191906000526020600020905b81548152906001019060200180831161139857829003601f168201915b50505050508152602001906001019061131d565b5050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561143e57602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161140f5790505b50505091835250506005919091015464ffffffffff8082166020840152650100000000009091041660409091015292915050565b600061147d33610534565b60085460ff6201000090910481166000818152600960205260409020549091166114aa60078260036104c1565b6114cc576040516316997edd60e11b815260ff82166004820152602401610741565b60ff82166000908152600960205260409020805460ff19166003179055600a54600b540361150d57604051630a7d531760e31b815260040160405180910390fd5b600080600061151b87611983565b60ff881660009081526006602052604080822054600a54915162212fa360ea1b81526004810192909252949750929550909350916001600160a01b0316906384be8c0090602401602060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906123ff565b905060ff808416908216146115d8576040516331ca5aff60e11b815260ff808316600483015284166024820152604401610741565b604051635382852b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a7050a569061162890879086908890600401612605565b6020604051808303816000875af1158015611647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166b91906126c2565b9650876001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303816000875af11580156116ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d191906126c2565b50600a80549060006116e2836126dd565b909155505060ff86166000908152600660205260409081902054905163122beb2560e11b81526001600160a01b03918216600482015289821660248201527f000000000000000000000000000000000000000000000000000000000000000090911690632457d64a90604401600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b5050505061178c836106b5600390565b8061179a575060ff8316600f145b156118245760405163420e0b3560e01b81526001600160a01b03898116600483015260ff851660248301527f0000000000000000000000000000000000000000000000000000000000000000169063420e0b3590604401600060405180830381600087803b15801561180b57600080fd5b505af115801561181f573d6000803e3d6000fd5b505050505b505050505050919050565b6000806118656118476000546001600160a01b031690565b863061185760046000898b6126f6565b61186091612720565b611da8565b91509150816119285763ffffffff811615611905576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906118c090889088908890600401612750565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b50506000805460ff60a01b19169055506119289050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610741565b5050505050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040805160e08101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263daf9067160e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2d91906125b0565b611a5557604051631fdf992160e01b81526001600160a01b0385166004820152602401610741565b60003390506000856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190612427565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b229190612790565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9b91906123ff565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bff91906123ff565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c679190810190612819565b9450611c74868684611eb4565b6000600860029054906101000a900460ff16905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0c9190612427565b9050806001600160a01b0316836001600160a01b031614611d5b5760405163179dce5160e11b81526001600160a01b03808a166004830152808516602483015282166044820152606401610741565b60ff80861690831614611d9d57604051632dd6635560e21b81526001600160a01b038916600482015260ff808716602483015283166044820152606401610741565b505050509193909250565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611e1791906128ec565b600060405180830381855afa9150503d8060008114611e52576040519150601f19603f3d011682016040523d82523d6000602084013e611e57565b606091505b50915091508115611ea9576040815110611e895780806020019051810190611e7f9190612908565b9094509250611ea9565b6020815110611ea95780806020019051810190611ea691906125b0565b93505b505094509492505050565b826001600160a01b031682608001516001600160a01b031614611efc5760405163396d48c960e11b81526001600160a01b038416600482018190526024820152604401610741565b606082015115611f375760608201516040516376d381b160e01b81526001600160a01b03851660048201529015156024820152604401610741565b611f538260400151611f47600990565b60ff9081169116141590565b15611f92576040828101519051630c6c87c560e41b81526001600160a01b03851660048201526009602482015260ff9091166044820152606401610741565b60a08201516001600160a01b0380821690831614611fde576040516314cc941d60e01b81526001600160a01b038086166004830152808416602483015282166044820152606401610741565b836001600160a01b0316816001600160a01b03160361201b5760405163f80468a760e01b81526001600160a01b0385166004820152602401610741565b60405163c3c5a54760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c3c5a54790602401602060405180830381865afa158015612081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a591906125b0565b156120d65760405163976310fb60e01b81526001600160a01b03808616600483015282166024820152604401610741565b50505050565b60ff811681146120eb57600080fd5b50565b60006020828403121561210057600080fd5b8135610dfd816120dc565b6001600160a01b03811681146120eb57600080fd5b6000806040838503121561213357600080fd5b823561213e8161210b565b946020939093013593505050565b60006020828403121561215e57600080fd5b8135610dfd8161210b565b60008060006060848603121561217e57600080fd5b83356121898161210b565b92506020840135915060408401356121a08161210b565b809150509250925092565b6000806000606084860312156121c057600080fd5b83356121cb816120dc565b925060208401356121db816120dc565b915060408401356121a0816120dc565b60005b838110156122065781810151838201526020016121ee565b50506000910152565b600081518084526122278160208601602086016121eb565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561228357828403895261227184835161220f565b98850198935090840190600101612259565b5091979650505050505050565b600081518084526020808501945080840160005b838110156122c357815160ff16875295820195908201906001016122a4565b509495945050505050565b60006020808352610100830160ff85511682850152818501516040850152604085015160e06060860152818151808452610120870191508483019350600092505b808310156123385783516001600160a01b0316825292840192600192909201919084019061230f565b5060608701519350601f19925082868203016080870152612359818561223b565b935050506080850151818584030160a08601526123768382612290565b9250505060a084015161239260c085018264ffffffffff169052565b5060c084015164ffffffffff811660e0850152509392505050565b6000602082840312156123bf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c0576106c06123c6565b80516123fa816120dc565b919050565b60006020828403121561241157600080fd5b8151610dfd816120dc565b80516123fa8161210b565b60006020828403121561243957600080fd5b8151610dfd8161210b565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff8111828210171561247d5761247d612444565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156124ac576124ac612444565b604052919050565b600060208083850312156124c757600080fd5b825167ffffffffffffffff808211156124df57600080fd5b818501915085601f8301126124f357600080fd5b81518181111561250557612505612444565b8060051b9150612516848301612483565b818152918301840191848101908884111561253057600080fd5b938501935b8385101561255a578451925061254a836120dc565b8282529385019390850190612535565b98975050505050505050565b60006020828403121561257857600080fd5b815164ffffffffff81168114610dfd57600080fd5b818103818111156106c0576106c06123c6565b805180151581146123fa57600080fd5b6000602082840312156125c257600080fd5b610dfd826125a0565b600181811c908216806125df57607f821691505b6020821081036125ff57634e487b7160e01b600052602260045260246000fd5b50919050565b606080825284516001600160601b03908116838301526020860151166080830152604085015160ff1660a083015284015180151560c08301526000905060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e061012084015261268861014084018261220f565b91505061269a602083018560ff169052565b60ff83166040830152949350505050565b80516001600160601b03811681146123fa57600080fd5b6000602082840312156126d457600080fd5b610dfd826126ab565b6000600182016126ef576126ef6123c6565b5060010190565b6000808585111561270657600080fd5b8386111561271357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156127485780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156127a257600080fd5b815162ffffff81168114610dfd57600080fd5b600082601f8301126127c657600080fd5b815167ffffffffffffffff8111156127e0576127e0612444565b6127f3601f8201601f1916602001612483565b81815284602083860101111561280857600080fd5b610dd08260208301602087016121eb565b60006020828403121561282b57600080fd5b815167ffffffffffffffff8082111561284357600080fd5b9083019060e0828603121561285757600080fd5b61285f61245a565b612868836126ab565b8152612876602084016126ab565b6020820152612887604084016123ef565b6040820152612898606084016125a0565b60608201526128a96080840161241c565b60808201526128ba60a0840161241c565b60a082015260c0830151828111156128d157600080fd5b6128dd878286016127b5565b60c08301525095945050505050565b600082516128fe8184602087016121eb565b9190910192915050565b6000806040838503121561291b57600080fd5b612924836125a0565b9150602083015163ffffffff8116811461293d57600080fd5b80915050925092905056fea2646970667358221220a1890b089979905a1787ef67c829073c09030dcf49594667689a47c3404ddfe564736f6c63430008140033",
1073
1055
  "linkReferences": {
1074
1056
  "contracts/type/NftId.sol": {
1075
1057
  "NftIdLib": [
1076
1058
  {
1077
1059
  "length": 20,
1078
- "start": 997
1060
+ "start": 1021
1079
1061
  }
1080
1062
  ]
1081
1063
  },
@@ -1083,11 +1065,11 @@
1083
1065
  "StateIdLib": [
1084
1066
  {
1085
1067
  "length": 20,
1086
- "start": 5746
1068
+ "start": 6119
1087
1069
  },
1088
1070
  {
1089
1071
  "length": 20,
1090
- "start": 6013
1072
+ "start": 6390
1091
1073
  }
1092
1074
  ]
1093
1075
  },
@@ -1095,11 +1077,11 @@
1095
1077
  "TimestampLib": [
1096
1078
  {
1097
1079
  "length": 20,
1098
- "start": 4651
1080
+ "start": 4876
1099
1081
  },
1100
1082
  {
1101
1083
  "length": 20,
1102
- "start": 5507
1084
+ "start": 5876
1103
1085
  }
1104
1086
  ]
1105
1087
  },
@@ -1107,25 +1089,25 @@
1107
1089
  "VersionLib": [
1108
1090
  {
1109
1091
  "length": 20,
1110
- "start": 9623
1092
+ "start": 8792
1111
1093
  }
1112
1094
  ],
1113
1095
  "VersionPartLib": [
1114
1096
  {
1115
1097
  "length": 20,
1116
- "start": 401
1098
+ "start": 390
1117
1099
  },
1118
1100
  {
1119
1101
  "length": 20,
1120
- "start": 515
1102
+ "start": 509
1121
1103
  },
1122
1104
  {
1123
1105
  "length": 20,
1124
- "start": 2984
1106
+ "start": 3192
1125
1107
  },
1126
1108
  {
1127
1109
  "length": 20,
1128
- "start": 3971
1110
+ "start": 3990
1129
1111
  }
1130
1112
  ]
1131
1113
  }
@@ -1135,11 +1117,11 @@
1135
1117
  "StateIdLib": [
1136
1118
  {
1137
1119
  "length": 20,
1138
- "start": 4093
1120
+ "start": 4300
1139
1121
  },
1140
1122
  {
1141
1123
  "length": 20,
1142
- "start": 4360
1124
+ "start": 4571
1143
1125
  }
1144
1126
  ]
1145
1127
  },
@@ -1147,11 +1129,11 @@
1147
1129
  "TimestampLib": [
1148
1130
  {
1149
1131
  "length": 20,
1150
- "start": 2998
1132
+ "start": 3057
1151
1133
  },
1152
1134
  {
1153
1135
  "length": 20,
1154
- "start": 3854
1136
+ "start": 4057
1155
1137
  }
1156
1138
  ]
1157
1139
  },
@@ -1159,17 +1141,17 @@
1159
1141
  "VersionLib": [
1160
1142
  {
1161
1143
  "length": 20,
1162
- "start": 7970
1144
+ "start": 6973
1163
1145
  }
1164
1146
  ],
1165
1147
  "VersionPartLib": [
1166
1148
  {
1167
1149
  "length": 20,
1168
- "start": 1331
1150
+ "start": 1373
1169
1151
  },
1170
1152
  {
1171
1153
  "length": 20,
1172
- "start": 2318
1154
+ "start": 2171
1173
1155
  }
1174
1156
  ]
1175
1157
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/9691244123a7bb449d69784e882fa0f3.json"
3
+ "buildInfo": "../../../build-info/b13240336c166ed13a609bfe392cfb57.json"
4
4
  }
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "inputs": [],
19
- "name": "GIF_VERSION",
19
+ "name": "GIF_VERSION_3",
20
20
  "outputs": [
21
21
  {
22
22
  "internalType": "uint256",
@@ -63,18 +63,23 @@
63
63
  "outputs": [
64
64
  {
65
65
  "components": [
66
+ {
67
+ "internalType": "Str",
68
+ "name": "name",
69
+ "type": "bytes32"
70
+ },
66
71
  {
67
72
  "internalType": "Selector",
68
73
  "name": "selector",
69
74
  "type": "bytes4"
70
75
  },
71
76
  {
72
- "internalType": "Str",
73
- "name": "name",
74
- "type": "bytes32"
77
+ "internalType": "Timestamp",
78
+ "name": "createdAt",
79
+ "type": "uint40"
75
80
  }
76
81
  ],
77
- "internalType": "struct IAccessAdmin.Function[]",
82
+ "internalType": "struct IAccess.FunctionInfo[]",
78
83
  "name": "authorizatedFunctions",
79
84
  "type": "tuple[]"
80
85
  }
@@ -103,11 +108,6 @@
103
108
  "internalType": "VersionPart",
104
109
  "name": "release",
105
110
  "type": "uint8"
106
- },
107
- {
108
- "internalType": "uint256",
109
- "name": "domainsCount",
110
- "type": "uint256"
111
111
  }
112
112
  ],
113
113
  "stateMutability": "view",
@@ -165,14 +165,14 @@
165
165
  "type": "function"
166
166
  }
167
167
  ],
168
- "bytecode": "0x608060405234801561000f575f80fd5b506040516117a73803806117a783398101604081905261002e91610efb565b805f61003a828261102f565b506104736001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660208083048201805460ff601f95861661010090810a828102199093166002938402179093558184527f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c80546001600160a01b031990811689179091558754808901895585810487018054918916860a8085021990921660039283021790557f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3805483169094179093558754808901895585810487018054600a928a16870a838102908602199091161790557fd3604db978f6137b0d18816b77b2ce810487a3af08a922e0b184963be5f3adfc805483169094179093558754808901895585810487018054600b928a16870a838102908602199091161790557fab9952baf6478d8cfb7253ce86a6c53a7b7549582c76210b1581ae682b7e556f805460049084161790558854808a018a5586810488018054600e928b16880a92830292860219169190911790557f20de3dd312970f46a1d560f6c70f0e5bd10e638b9bb3836368f28838c607ea3e805460059084161790558854808a018a55868104880180546019928b16880a92830292860219169190911790557f38378c408f71c9e5f35d8db763a45d2b35da16f98182f9f4d54306cbd58c0a09805460069084161790558854808a018a5586810488018054601e928b16880a92830292860219169190911790557f6ea47ca2f9e3a67b0e336c514aa9f125109f49309b7162caec32e7d27e5c838c805460079084161790558854808a018a5586810488018054600f928b16880a92830292860219169190911790557f0353061a88c0592f32d7468be32ff6e5e91e49a3ea3ffb3c4fbe417c36501ba2805460089084161790558854808a018a5586810488018054600d928b16880a838102908702199091161790557feb5d92aa5b18af35c2d0c0d14a538792cf1a66aa06ab9dae49d32446e9063ca1805460099085161790558954808b018b5587810489018054600c928c16890a838102908802199091161790557fbd814762a7e35d5c162a7570d14baa68bd622cabb1ad83d40dd70f8a88aa67c0805485169096179095558954808b018b55878104890180546016928c16890a92830292870219169190911790557ffa3bcae139a60d3922021a29633a6c8687b9ba7e920e2516b2cfd8f5fd3e0e51805484169092179091558854808a018a55868104880180546014928b16880a92830292860219169190911790557f50d9dffd10eb4437a15e8bb1c50afee98ea231805f136fb9a057e7aaeec448ae805483169094179093558754808901909855938704909401805460159790961690920a868102940219909416929092179091555f929092527f44f9494ddace41673149b1ce2120e2a8dc5880bba93ff68e6b6c883c57a0c6958054909216179055565b61047b610484565b5050611163565b565b61048c6104b4565b6104946107cb565b61049c610a97565b6104a4610af1565b6104ac610b3c565b610482610c82565b5f610517600260145b60ff9182165f8181526003602090815260408083208054600181018255908452828420838204018054968816601f9092166101000a8281029802199096169690961790945591815260048252828120938152929052902090565b905061055781635c992fed60e01b6040518060400160405280600e81526020016d7265676973746572506f6c69637960901b815250610d9d60201b60201c565b61056460025b600f6104bd565b90506105a281637286e5e560e01b6040518060400160405280600c81526020016b1c9959da5cdd195c941bdbdb60a21b815250610d9d60201b60201c565b6105ae6002601e6104bd565b90506105ee8163c2bf08c860e01b6040518060400160405280600e81526020016d726567697374657242756e646c6560901b815250610d9d60201b60201c565b6105fa6002600e6104bd565b905061064981638fbc2d8160e01b6040518060400160405280601481526020017f7265676973746572446973747269627574696f6e000000000000000000000000815250610d9d60201b60201c565b60408051808201909152601381527f72656769737465724469737472696275746f720000000000000000000000000060208201526106919082906357a8fba760e01b90610d9d565b61069e60025b600b6104bd565b90506106e18163d943342d60e01b604051806040016040528060118152602001701c9959da5cdd195c90dbdb5c1bdb995b9d607a1b815250610d9d60201b60201c565b6106ee60025b600a6104bd565b90506107308163026bc43b60e01b6040518060400160405280601081526020016f7265676973746572496e7374616e636560801b815250610d9d60201b60201c565b61073c600260036104bd565b905061077b81638105cc7f60e01b6040518060400160405280600d81526020016c72656769737465725374616b6560981b815250610d9d60201b60201c565b6107876002600c6104bd565b90506107c881635d96628960e01b6040518060400160405280600f81526020016e1c9959da5cdd195c941c9bd91d58dd608a1b815250610d9d60201b60201c565b50565b5f6107d660036106e7565b9050610825816381d9b45f60e01b6040518060400160405280601481526020017f637265617465496e7374616e6365546172676574000000000000000000000000815250610d9d60201b60201c565b60408051808201909152601881527f736574496e7374616e63654c6f636b696e67506572696f640000000000000000602082015261086d90829063db1e36e760e01b90610d9d565b60408051808201909152601581527f736574496e7374616e636552657761726452617465000000000000000000000060208201526108b590829063545c994560e11b90610d9d565b60408051808201909152601c81527f726566696c6c496e7374616e636552657761726452657365727665730000000060208201526108fd908290636f61deef60e11b90610d9d565b60408051808201909152601e81527f7769746864726177496e7374616e63655265776172645265736572766573000060208201526109459082906321ece65760e01b90610d9d565b610951600360636104bd565b90506109898163756b30de60e01b6040518060400160405280600681526020016563726561746560d01b815250610d9d60201b60201c565b6040805180820190915260058152647374616b6560d81b60208201526109b9908290636c1e9dff60e01b90610d9d565b6040805180820190915260128152711c995cdd185ad9551bd3995dd5185c99d95d60721b60208201526109f690829063f67fef6d60e01b90610d9d565b60408051808201909152600d81526c7570646174655265776172647360981b6020820152610a2e90829063085031c560e11b90610d9d565b60408051808201909152600c81526b636c61696d5265776172647360a01b6020820152610a659082906338cfbb0d60e11b90610d9d565b604080518082019091526007815266756e7374616b6560c81b60208201526107c8908290636f52667960e11b90610d9d565b5f610aa2600a610697565b90506107c88163dd38b49e60e01b6040518060400160405280601581526020017f637265617465436f6d706f6e656e745461726765740000000000000000000000815250610d9d60201b60201c565b5f610aff600e5b60156104bd565b90506107c88163ab54c54560e01b6040518060400160405280600b81526020016a70726f6365737353616c6560a81b815250610d9d60201b60201c565b5f610b47600f610af8565b9050610b87816384d1f7cf60e01b6040518060400160405280600e81526020016d1b1bd8dad0dbdb1b185d195c985b60921b815250610d9d60201b60201c565b6040805180820190915260118152701c995b19585cd950dbdb1b185d195c985b607a1b6020820152610bc390829063a5f4c73160e01b90610d9d565b60408051808201909152601081526f1c99591d58d950dbdb1b185d195c985b60821b6020820152610bfe908290631ddb975760e01b90610d9d565b60408051808201909152600b81526a70726f6365737353616c6560a81b6020820152610c34908290637d42d39760e01b90610d9d565b610c40600f60166104bd565b90506107c881631ddb975760e01b6040518060400160405280601081526020016f1c99591d58d950dbdb1b185d195c985b60821b815250610d9d60201b60201c565b5f610c8d601e61055d565b9050610cc58163e283b4a960e01b6040518060400160405280600681526020016563726561746560d01b815250610d9d60201b60201c565b604080518082019091526005815264636c6f736560d81b6020820152610cf5908290632aa6b2cb60e21b90610d9d565b60408051808201909152600e81526d1b1bd8dad0dbdb1b185d195c985b60921b6020820152610d2e908290634adcf90960e01b90610d9d565b6040805180820190915260118152701c995b19585cd950dbdb1b185d195c985b607a1b6020820152610d6a90829063ad328d9f60e01b90610d9d565b60408051808201909152600c81526b756e6c696e6b506f6c69637960a01b60208201526107c89082906301d90a6f60e61b905b6040805180820191829052636b15ee8b60e01b9091526001600160e01b03198316604482015283908073__$0904195350e4c23ecb1d51df0a32586dcd$__636b15ee8b60648301602060405180830381865af4158015610dff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2391906110e9565b6001600160e01b031916815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b8152600401610e699190611117565b602060405180830381865af4158015610e84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea8919061114c565b90528154600180820184555f9384526020938490208351600290930201805463ffffffff191660e09390931c9290921782559190920151910155505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610f0b575f80fd5b81516001600160401b03811115610f20575f80fd5b8201601f81018413610f30575f80fd5b80516001600160401b03811115610f4957610f49610ee7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610f7757610f77610ee7565b604052818152828201602001861015610f8e575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b600181811c90821680610fbf57607f821691505b602082108103610fdd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561102a57805f5260205f20601f840160051c810160208510156110085750805b601f840160051c820191505b81811015611027575f8155600101611014565b50505b505050565b81516001600160401b0381111561104857611048610ee7565b61105c816110568454610fab565b84610fe3565b6020601f82116001811461108e575f83156110775750848201515b5f19600385901b1c1916600184901b178455611027565b5f84815260208120601f198516915b828110156110bd578785015182556020948501946001909201910161109d565b50848210156110da57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156110f9575f80fd5b81516001600160e01b031981168114611110575f80fd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561115c575f80fd5b5051919050565b610637806111705f395ff3fe608060405234801561000f575f80fd5b5060043610610085575f3560e01c8063694ca5d311610058578063694ca5d31461010f57806376b707b71461012457806384be8c0014610145578063e8ecdb361461016a575f80fd5b806313efdd7a1461008957806318029ab4146100d15780633a526cd4146100e757806368c55b1314610107575b5f80fd5b6100b4610097366004610463565b60ff165f908152600260205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9600381565b6040519081526020016100c8565b6100fa6100f5366004610463565b61018a565b6040516100c89190610485565b6100fa61020a565b61011761027d565b6040516100c891906104ca565b61012c610303565b6040805160ff90931683526020830191909152016100c8565b6101586101533660046104ff565b610385565b60405160ff90911681526020016100c8565b61017d610178366004610516565b6103be565b6040516100c8919061054d565b60ff81165f908152600360209081526040918290208054835181840281018401909452808452606093928301828280156101fe57602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116101cf5790505b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561027357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116102445790505b5050505050905090565b60605f805461028b9061059a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061059a565b80156102735780601f106102d957610100808354040283529160200191610273565b820191905f5260205f20905b8154815290600101906020018083116102e557509395945050505050565b604051632392b61b60e21b8152600360048201525f90819073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610355573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037991906105d2565b60015490939092509050565b5f60018281548110610399576103996105ed565b905f5260205f2090602091828204019190069054906101000a900460ff169050919050565b60ff8083165f9081526004602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b82821015610446575f8481526020908190206040805180820190915260028502909101805460e01b6001600160e01b03191682526001908101548284015290835290920191016103fb565b50505050905092915050565b60ff81168114610460575f80fd5b50565b5f60208284031215610473575f80fd5b813561047e81610452565b9392505050565b602080825282518282018190525f918401906040840190835b818110156104bf57835160ff1683526020938401939092019160010161049e565b509095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561050f575f80fd5b5035919050565b5f8060408385031215610527575f80fd5b823561053281610452565b9150602083013561054281610452565b809150509250929050565b602080825282518282018190525f918401906040840190835b818110156104bf57835180516001600160e01b03191684526020908101518185015290930192604090920191600101610566565b600181811c908216806105ae57607f821691505b6020821081036105cc57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156105e2575f80fd5b815161047e81610452565b634e487b7160e01b5f52603260045260245ffdfea26469706673582212204e9c5a69ee3dad65dc48020ad7fbd8de02d83a93e91690e45c2e450fce4c7c3164736f6c634300081a0033",
169
- "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610085575f3560e01c8063694ca5d311610058578063694ca5d31461010f57806376b707b71461012457806384be8c0014610145578063e8ecdb361461016a575f80fd5b806313efdd7a1461008957806318029ab4146100d15780633a526cd4146100e757806368c55b1314610107575b5f80fd5b6100b4610097366004610463565b60ff165f908152600260205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9600381565b6040519081526020016100c8565b6100fa6100f5366004610463565b61018a565b6040516100c89190610485565b6100fa61020a565b61011761027d565b6040516100c891906104ca565b61012c610303565b6040805160ff90931683526020830191909152016100c8565b6101586101533660046104ff565b610385565b60405160ff90911681526020016100c8565b61017d610178366004610516565b6103be565b6040516100c8919061054d565b60ff81165f908152600360209081526040918290208054835181840281018401909452808452606093928301828280156101fe57602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116101cf5790505b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561027357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116102445790505b5050505050905090565b60605f805461028b9061059a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061059a565b80156102735780601f106102d957610100808354040283529160200191610273565b820191905f5260205f20905b8154815290600101906020018083116102e557509395945050505050565b604051632392b61b60e21b8152600360048201525f90819073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610355573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037991906105d2565b60015490939092509050565b5f60018281548110610399576103996105ed565b905f5260205f2090602091828204019190069054906101000a900460ff169050919050565b60ff8083165f9081526004602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b82821015610446575f8481526020908190206040805180820190915260028502909101805460e01b6001600160e01b03191682526001908101548284015290835290920191016103fb565b50505050905092915050565b60ff81168114610460575f80fd5b50565b5f60208284031215610473575f80fd5b813561047e81610452565b9392505050565b602080825282518282018190525f918401906040840190835b818110156104bf57835160ff1683526020938401939092019160010161049e565b509095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561050f575f80fd5b5035919050565b5f8060408385031215610527575f80fd5b823561053281610452565b9150602083013561054281610452565b809150509250929050565b602080825282518282018190525f918401906040840190835b818110156104bf57835180516001600160e01b03191684526020908101518185015290930192604090920191600101610566565b600181811c908216806105ae57607f821691505b6020821081036105cc57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156105e2575f80fd5b815161047e81610452565b634e487b7160e01b5f52603260045260245ffdfea26469706673582212204e9c5a69ee3dad65dc48020ad7fbd8de02d83a93e91690e45c2e450fce4c7c3164736f6c634300081a0033",
168
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200199c3803806200199c833981016040819052620000349162001045565b8060006200004382826200118c565b506200047e6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660208083048201805460ff601f95861661010090810a828102199093166002938402179093558184527f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c80546001600160a01b031990811689179091558754808901895585810487018054918916860a8085021990921660039283021790557f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3805483169094179093558754808901895585810487018054600a928a16870a838102908602199091161790557fd3604db978f6137b0d18816b77b2ce810487a3af08a922e0b184963be5f3adfc805483169094179093558754808901895585810487018054600b928a16870a838102908602199091161790557fab9952baf6478d8cfb7253ce86a6c53a7b7549582c76210b1581ae682b7e556f805460049084161790558854808a018a5586810488018054600e928b16880a92830292860219169190911790557f20de3dd312970f46a1d560f6c70f0e5bd10e638b9bb3836368f28838c607ea3e805460059084161790558854808a018a55868104880180546019928b16880a92830292860219169190911790557f38378c408f71c9e5f35d8db763a45d2b35da16f98182f9f4d54306cbd58c0a09805460069084161790558854808a018a5586810488018054601e928b16880a92830292860219169190911790557f6ea47ca2f9e3a67b0e336c514aa9f125109f49309b7162caec32e7d27e5c838c805460079084161790558854808a018a5586810488018054600f928b16880a92830292860219169190911790557f0353061a88c0592f32d7468be32ff6e5e91e49a3ea3ffb3c4fbe417c36501ba2805460089084161790558854808a018a5586810488018054600d928b16880a838102908702199091161790557feb5d92aa5b18af35c2d0c0d14a538792cf1a66aa06ab9dae49d32446e9063ca1805460099085161790558954808b018b5587810489018054600c928c16890a838102908802199091161790557fbd814762a7e35d5c162a7570d14baa68bd622cabb1ad83d40dd70f8a88aa67c0805485169096179095558954808b018b55878104890180546016928c16890a92830292870219169190911790557ffa3bcae139a60d3922021a29633a6c8687b9ba7e920e2516b2cfd8f5fd3e0e51805484169092179091558854808a018a55868104880180546014928b16880a92830292860219169190911790557f50d9dffd10eb4437a15e8bb1c50afee98ea231805f136fb9a057e7aaeec448ae805483169094179093558754808901909855938704909401805460159790961690920a868102940219909416929092179091556000929092527f44f9494ddace41673149b1ce2120e2a8dc5880bba93ff68e6b6c883c57a0c6958054909216179055565b6200048862000492565b505062001303565b565b6200049c620004ce565b620004a662000808565b620004b062000aef565b620004ba62000b4e565b620004c462000b9e565b6200049062000cf3565b600062000534600260145b60ff91821660008181526003602090815260408083208054600181018255908452828420838204018054968816601f9092166101000a8281029802199096169690961790945591815260048252828120938152929052902090565b90506200057681635c992fed60e01b6040518060400160405280600e81526020016d7265676973746572506f6c69637960901b81525062000e1a60201b60201c565b6200058560025b600f620004d9565b9050620005c581637286e5e560e01b6040518060400160405280600c81526020016b1c9959da5cdd195c941bdbdb60a21b81525062000e1a60201b60201c565b620005d36002601e620004d9565b9050620006158163c2bf08c860e01b6040518060400160405280600e81526020016d726567697374657242756e646c6560901b81525062000e1a60201b60201c565b620006236002600e620004d9565b90506200067481638fbc2d8160e01b6040518060400160405280601481526020017f7265676973746572446973747269627574696f6e00000000000000000000000081525062000e1a60201b60201c565b60408051808201909152601381527f72656769737465724469737472696275746f72000000000000000000000000006020820152620006be9082906357a8fba760e01b9062000e1a565b620006cd60025b600b620004d9565b9050620007128163d943342d60e01b604051806040016040528060118152602001701c9959da5cdd195c90dbdb5c1bdb995b9d607a1b81525062000e1a60201b60201c565b6200072160025b600a620004d9565b9050620007658163026bc43b60e01b6040518060400160405280601081526020016f7265676973746572496e7374616e636560801b81525062000e1a60201b60201c565b6200077360026003620004d9565b9050620007b481638105cc7f60e01b6040518060400160405280600d81526020016c72656769737465725374616b6560981b81525062000e1a60201b60201c565b620007c26002600c620004d9565b90506200080581635d96628960e01b6040518060400160405280600f81526020016e1c9959da5cdd195c941c9bd91d58dd608a1b81525062000e1a60201b60201c565b50565b600062000816600362000719565b905062000867816381d9b45f60e01b6040518060400160405280601481526020017f637265617465496e7374616e636554617267657400000000000000000000000081525062000e1a60201b60201c565b60408051808201909152601881527f736574496e7374616e63654c6f636b696e67506572696f6400000000000000006020820152620008b190829063db1e36e760e01b9062000e1a565b60408051808201909152601581527f736574496e7374616e63655265776172645261746500000000000000000000006020820152620008fb90829063545c994560e11b9062000e1a565b60408051808201909152601c81527f726566696c6c496e7374616e6365526577617264526573657276657300000000602082015262000945908290636f61deef60e11b9062000e1a565b60408051808201909152601e81527f7769746864726177496e7374616e63655265776172645265736572766573000060208201526200098f9082906321ece65760e01b9062000e1a565b6200099d60036063620004d9565b9050620009d78163756b30de60e01b6040518060400160405280600681526020016563726561746560d01b81525062000e1a60201b60201c565b6040805180820190915260058152647374616b6560d81b602082015262000a09908290636c1e9dff60e01b9062000e1a565b6040805180820190915260128152711c995cdd185ad9551bd3995dd5185c99d95d60721b602082015262000a4890829063f67fef6d60e01b9062000e1a565b60408051808201909152600d81526c7570646174655265776172647360981b602082015262000a8290829063085031c560e11b9062000e1a565b60408051808201909152600c81526b636c61696d5265776172647360a01b602082015262000abb9082906338cfbb0d60e11b9062000e1a565b604080518082019091526007815266756e7374616b6560c81b602082015262000805908290636f52667960e11b9062000e1a565b600062000afd600a620006c5565b90506200080581633931d6da60e01b6040518060400160405280601781526020017f696e697469616c697a65417574686f72697a6174696f6e00000000000000000081525062000e1a60201b60201c565b600062000b5f600e5b6015620004d9565b9050620008058163ab54c54560e01b6040518060400160405280600b81526020016a70726f6365737353616c6560a81b81525062000e1a60201b60201c565b600062000bac600f62000b57565b905062000bee816384d1f7cf60e01b6040518060400160405280600e81526020016d1b1bd8dad0dbdb1b185d195c985b60921b81525062000e1a60201b60201c565b6040805180820190915260118152701c995b19585cd950dbdb1b185d195c985b607a1b602082015262000c2c90829063a5f4c73160e01b9062000e1a565b60408051808201909152601081526f1c99591d58d950dbdb1b185d195c985b60821b602082015262000c69908290631ddb975760e01b9062000e1a565b60408051808201909152600b81526a70726f6365737353616c6560a81b602082015262000ca1908290637d42d39760e01b9062000e1a565b62000caf600f6016620004d9565b90506200080581631ddb975760e01b6040518060400160405280601081526020016f1c99591d58d950dbdb1b185d195c985b60821b81525062000e1a60201b60201c565b600062000d01601e6200057d565b905062000d3b8163e283b4a960e01b6040518060400160405280600681526020016563726561746560d01b81525062000e1a60201b60201c565b604080518082019091526005815264636c6f736560d81b602082015262000d6d908290632aa6b2cb60e21b9062000e1a565b60408051808201909152600e81526d1b1bd8dad0dbdb1b185d195c985b60921b602082015262000da8908290634adcf90960e01b9062000e1a565b6040805180820190915260118152701c995b19585cd950dbdb1b185d195c985b607a1b602082015262000de690829063ad328d9f60e01b9062000e1a565b60408051808201909152600c81526b756e6c696e6b506f6c69637960a01b6020820152620008059082906301d90a6f60e61b905b60408051606081019182905263cdc23e6960e01b90915283908073__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e6962000e5d866064850162001258565b602060405180830381865af415801562000e7b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ea191906200128d565b8152604051636b15ee8b60e01b81526001600160e01b03198616600482015260209091019073__$0904195350e4c23ecb1d51df0a32586dcd$__90636b15ee8b90602401602060405180830381865af415801562000f03573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f299190620012a7565b6001600160e01b031916815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801562000f82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fa89190620012da565b64ffffffffff908116909152825460018181018555600094855260209485902084516002909302019182559383015193018054604090930151909116640100000000026001600160481b031990921660e09390931c92909217179055505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200103c57818101518382015260200162001022565b50506000910152565b6000602082840312156200105857600080fd5b81516001600160401b03808211156200107057600080fd5b818401915084601f8301126200108557600080fd5b8151818111156200109a576200109a62001009565b604051601f8201601f19908116603f01168101908382118183101715620010c557620010c562001009565b81604052828152876020848701011115620010df57600080fd5b620010f28360208301602088016200101f565b979650505050505050565b600181811c908216806200111257607f821691505b6020821081036200113357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200118757600081815260208120601f850160051c81016020861015620011625750805b601f850160051c820191505b8181101562001183578281556001016200116e565b5050505b505050565b81516001600160401b03811115620011a857620011a862001009565b620011c081620011b98454620010fd565b8462001139565b602080601f831160018114620011f85760008415620011df5750858301515b600019600386901b1c1916600185901b17855562001183565b600085815260208120601f198616915b82811015620012295788860151825594840194600190910190840162001208565b5085821015620012485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260008251806020840152620012798160408501602087016200101f565b601f01601f19169190910160400192915050565b600060208284031215620012a057600080fd5b5051919050565b600060208284031215620012ba57600080fd5b81516001600160e01b031981168114620012d357600080fd5b9392505050565b600060208284031215620012ed57600080fd5b815164ffffffffff81168114620012d357600080fd5b61068980620013136000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806376b707b71161005b57806376b707b71461011357806384be8c001461012d578063d2b717a114610140578063e8ecdb361461015657600080fd5b806313efdd7a1461008d5780633a526cd4146100d657806368c55b13146100f6578063694ca5d3146100fe575b600080fd5b6100b961009b366004610471565b60ff166000908152600260205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e96100e4366004610471565b610176565b6040516100cd9190610495565b6100e96101fa565b610106610270565b6040516100cd91906104dc565b61011b6102f9565b60405160ff90911681526020016100cd565b61011b61013b36600461052a565b610375565b610148600381565b6040519081526020016100cd565b610169610164366004610543565b6103b1565b6040516100cd919061057c565b60ff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156101ee57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116101bf5790505b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561026657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116102375790505b5050505050905090565b60606000805461027f906105e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab906105e6565b80156102665780601f106102cd57610100808354040283529160200191610266565b820191906000526020600020905b8154815290600101906020018083116102db57509395945050505050565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af415801561034c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103709190610620565b905090565b60006001828154811061038a5761038a61063d565b90600052602060002090602091828204019190069054906101000a900460ff169050919050565b60ff80831660009081526004602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b8282101561045357600084815260209081902060408051606081018252600286029092018054835260019081015460e081901b6001600160e01b03191684860152640100000000900464ffffffffff169183019190915290835290920191016103ef565b50505050905092915050565b60ff8116811461046e57600080fd5b50565b60006020828403121561048357600080fd5b813561048e8161045f565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156104d057835160ff16835292840192918401916001016104b1565b50909695505050505050565b600060208083528351808285015260005b81811015610509578581018301518582016040015282016104ed565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561053c57600080fd5b5035919050565b6000806040838503121561055657600080fd5b82356105618161045f565b915060208301356105718161045f565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b828110156105d957815180518552868101516001600160e01b0319168786015285015164ffffffffff168585015260609093019290850190600101610599565b5091979650505050505050565b600181811c908216806105fa57607f821691505b60208210810361061a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561063257600080fd5b815161048e8161045f565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202425f10705b7634f6d65adc8341cf9f8b792c1ae8bd9a861a2d23dc2b193d37064736f6c63430008140033",
169
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806376b707b71161005b57806376b707b71461011357806384be8c001461012d578063d2b717a114610140578063e8ecdb361461015657600080fd5b806313efdd7a1461008d5780633a526cd4146100d657806368c55b13146100f6578063694ca5d3146100fe575b600080fd5b6100b961009b366004610471565b60ff166000908152600260205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e96100e4366004610471565b610176565b6040516100cd9190610495565b6100e96101fa565b610106610270565b6040516100cd91906104dc565b61011b6102f9565b60405160ff90911681526020016100cd565b61011b61013b36600461052a565b610375565b610148600381565b6040519081526020016100cd565b610169610164366004610543565b6103b1565b6040516100cd919061057c565b60ff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156101ee57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116101bf5790505b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561026657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116102375790505b5050505050905090565b60606000805461027f906105e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab906105e6565b80156102665780601f106102cd57610100808354040283529160200191610266565b820191906000526020600020905b8154815290600101906020018083116102db57509395945050505050565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af415801561034c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103709190610620565b905090565b60006001828154811061038a5761038a61063d565b90600052602060002090602091828204019190069054906101000a900460ff169050919050565b60ff80831660009081526004602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b8282101561045357600084815260209081902060408051606081018252600286029092018054835260019081015460e081901b6001600160e01b03191684860152640100000000900464ffffffffff169183019190915290835290920191016103ef565b50505050905092915050565b60ff8116811461046e57600080fd5b50565b60006020828403121561048357600080fd5b813561048e8161045f565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156104d057835160ff16835292840192918401916001016104b1565b50909695505050505050565b600060208083528351808285015260005b81811015610509578581018301518582016040015282016104ed565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561053c57600080fd5b5035919050565b6000806040838503121561055657600080fd5b82356105618161045f565b915060208301356105718161045f565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b828110156105d957815180518552868101516001600160e01b0319168786015285015164ffffffffff168585015260609093019290850190600101610599565b5091979650505050505050565b600181811c908216806105fa57607f821691505b60208210810361061a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561063257600080fd5b815161048e8161045f565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202425f10705b7634f6d65adc8341cf9f8b792c1ae8bd9a861a2d23dc2b193d37064736f6c63430008140033",
170
170
  "linkReferences": {
171
171
  "contracts/type/Selector.sol": {
172
172
  "SelectorLib": [
173
173
  {
174
174
  "length": 20,
175
- "start": 3528
175
+ "start": 3784
176
176
  }
177
177
  ]
178
178
  },
@@ -180,7 +180,15 @@
180
180
  "StrLib": [
181
181
  {
182
182
  "length": 20,
183
- "start": 3636
183
+ "start": 3638
184
+ }
185
+ ]
186
+ },
187
+ "contracts/type/Timestamp.sol": {
188
+ "TimestampLib": [
189
+ {
190
+ "length": 20,
191
+ "start": 3898
184
192
  }
185
193
  ]
186
194
  },
@@ -188,7 +196,7 @@
188
196
  "VersionPartLib": [
189
197
  {
190
198
  "length": 20,
191
- "start": 5261
199
+ "start": 5669
192
200
  }
193
201
  ]
194
202
  }
@@ -198,7 +206,7 @@
198
206
  "VersionPartLib": [
199
207
  {
200
208
  "length": 20,
201
- "start": 797
209
+ "start": 786
202
210
  }
203
211
  ]
204
212
  }