@etherisc/gif-next 0.0.2-e59218b-293 → 0.0.2-e5a2253-213

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +153 -85
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +128 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +28 -2
  11. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +5 -5
  13. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  14. package/artifacts/contracts/components/Pool.sol/Pool.json +185 -114
  15. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  16. package/artifacts/contracts/components/Product.sol/Product.json +160 -98
  17. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  37. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  38. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  39. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  40. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  41. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +138 -2
  45. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  46. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  47. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +104 -14
  49. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  50. package/artifacts/contracts/instance/Instance.sol/Instance.json +107 -660
  51. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +244 -114
  53. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  54. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  55. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +38 -28
  57. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +183 -151
  59. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -74
  61. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  62. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  63. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +114 -32
  65. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -13
  67. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
  73. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1121 -0
  81. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +436 -0
  83. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +141 -66
  85. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +14 -34
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IBundleService.sol/IBundleService.json} +295 -41
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -13
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +15 -164
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +17 -241
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1246 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +492 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +140 -241
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +14 -38
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +129 -401
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +14 -78
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +132 -133
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -65
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  116. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.json +145 -227
  118. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +30 -128
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -104
  124. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +530 -0
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  128. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  129. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  130. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IService.sol/IService.json +13 -13
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  138. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  141. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  143. package/artifacts/contracts/shared/Service.sol/Service.json +13 -13
  144. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  145. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  152. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestService.sol/TestService.json +31 -31
  154. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  157. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  158. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  159. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  160. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  161. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  164. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  165. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  166. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  167. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  173. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  179. package/contracts/components/BaseComponent.sol +91 -14
  180. package/contracts/components/Distribution.sol +2 -11
  181. package/contracts/components/IBaseComponent.sol +11 -1
  182. package/contracts/components/IPoolComponent.sol +5 -1
  183. package/contracts/components/IProductComponent.sol +2 -2
  184. package/contracts/components/Pool.sol +38 -26
  185. package/contracts/components/Product.sol +28 -21
  186. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  187. package/contracts/instance/BundleManager.sol +129 -0
  188. package/contracts/instance/Cloneable.sol +46 -0
  189. package/contracts/instance/IInstance.sol +9 -3
  190. package/contracts/instance/IInstanceBase.sol +25 -0
  191. package/contracts/instance/IInstanceService.sol +13 -3
  192. package/contracts/instance/Instance.sol +43 -224
  193. package/contracts/instance/InstanceAccessManager.sol +93 -78
  194. package/contracts/instance/InstanceBase.sol +39 -0
  195. package/contracts/instance/InstanceService.sol +247 -100
  196. package/contracts/instance/InstanceServiceManager.sol +5 -8
  197. package/contracts/instance/ObjectManager.sol +101 -0
  198. package/contracts/instance/base/ComponentServiceBase.sol +85 -81
  199. package/contracts/instance/base/IInstanceBase.sol +0 -2
  200. package/contracts/instance/module/IAccess.sol +27 -17
  201. package/contracts/instance/module/ISetup.sol +2 -1
  202. package/contracts/instance/service/BundleService.sol +294 -0
  203. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  204. package/contracts/instance/service/DistributionService.sol +48 -21
  205. package/contracts/instance/service/DistributionServiceManager.sol +6 -9
  206. package/contracts/instance/service/IBundleService.sol +44 -0
  207. package/contracts/instance/service/IPolicyService.sol +94 -0
  208. package/contracts/instance/service/IPoolService.sol +4 -25
  209. package/contracts/instance/service/IProductService.sol +2 -72
  210. package/contracts/instance/service/PolicyService.sol +539 -0
  211. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  212. package/contracts/instance/service/PoolService.sol +65 -124
  213. package/contracts/instance/service/PoolServiceManager.sol +5 -8
  214. package/contracts/instance/service/ProductService.sol +96 -454
  215. package/contracts/registry/ChainNft.sol +1 -1
  216. package/contracts/registry/IRegistry.sol +26 -16
  217. package/contracts/registry/IRegistryService.sol +13 -5
  218. package/contracts/registry/Registry.sol +149 -201
  219. package/contracts/registry/RegistryAccessManager.sol +210 -0
  220. package/contracts/registry/RegistryService.sol +50 -88
  221. package/contracts/registry/RegistryServiceManager.sol +18 -36
  222. package/contracts/registry/ReleaseManager.sol +342 -0
  223. package/contracts/registry/TokenRegistry.sol +5 -6
  224. package/contracts/shared/IRegisterable.sol +0 -2
  225. package/contracts/shared/IService.sol +2 -1
  226. package/contracts/shared/ProxyManager.sol +1 -1
  227. package/contracts/shared/Service.sol +10 -7
  228. package/contracts/test/TestService.sol +3 -2
  229. package/contracts/types/NftIdSet.sol +26 -24
  230. package/contracts/types/RoleId.sol +10 -10
  231. package/package.json +1 -1
  232. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  233. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  234. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  235. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  236. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  237. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  238. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  239. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  240. package/contracts/instance/AccessManagedSimple.sol +0 -115
  241. package/contracts/instance/AccessManagerSimple.sol +0 -692
  242. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  243. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  244. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
@@ -34,32 +34,123 @@
34
34
  "inputs": [
35
35
  {
36
36
  "internalType": "address",
37
- "name": "contractAddress",
37
+ "name": "component",
38
38
  "type": "address"
39
+ },
40
+ {
41
+ "internalType": "NftId",
42
+ "name": "nftId",
43
+ "type": "uint96"
39
44
  }
40
45
  ],
41
- "name": "ErrorContractNotRegistered",
46
+ "name": "ErrorComponentServiceAlreadyRegistered",
42
47
  "type": "error"
43
48
  },
44
49
  {
45
50
  "inputs": [
46
51
  {
47
52
  "internalType": "address",
48
- "name": "customer",
53
+ "name": "componentAddress",
49
54
  "type": "address"
55
+ }
56
+ ],
57
+ "name": "ErrorComponentServiceBaseComponentLocked",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "NftId",
64
+ "name": "instanceNftId",
65
+ "type": "uint96"
66
+ },
67
+ {
68
+ "internalType": "RoleId",
69
+ "name": "requiredRole",
70
+ "type": "uint64"
50
71
  },
51
72
  {
52
73
  "internalType": "address",
53
- "name": "tokenHandlerAddress",
74
+ "name": "sender",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ErrorComponentServiceExpectedRoleMissing",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "component",
54
86
  "type": "address"
55
87
  },
56
88
  {
57
- "internalType": "uint256",
58
- "name": "amount",
59
- "type": "uint256"
89
+ "internalType": "ObjectType",
90
+ "name": "requiredType",
91
+ "type": "uint8"
92
+ },
93
+ {
94
+ "internalType": "ObjectType",
95
+ "name": "componentType",
96
+ "type": "uint8"
60
97
  }
61
98
  ],
62
- "name": "ErrorIProductServiceInsufficientAllowance",
99
+ "name": "ErrorComponentServiceInvalidType",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "component",
107
+ "type": "address"
108
+ }
109
+ ],
110
+ "name": "ErrorComponentServiceNotComponent",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [
115
+ {
116
+ "internalType": "address",
117
+ "name": "component",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "internalType": "address",
122
+ "name": "initialOwner",
123
+ "type": "address"
124
+ },
125
+ {
126
+ "internalType": "address",
127
+ "name": "sender",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "name": "ErrorComponentServiceSenderNotOwner",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "contractAddress",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "ErrorContractNotRegistered",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "target",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "ErrorIAccessTargetLocked",
63
154
  "type": "error"
64
155
  },
65
156
  {
@@ -193,19 +284,6 @@
193
284
  "name": "LogVersionableInitialized",
194
285
  "type": "event"
195
286
  },
196
- {
197
- "inputs": [],
198
- "name": "NAME",
199
- "outputs": [
200
- {
201
- "internalType": "string",
202
- "name": "",
203
- "type": "string"
204
- }
205
- ],
206
- "stateMutability": "view",
207
- "type": "function"
208
- },
209
287
  {
210
288
  "inputs": [],
211
289
  "name": "REGISTERABLE_LOCATION_V1",
@@ -219,24 +297,6 @@
219
297
  "stateMutability": "view",
220
298
  "type": "function"
221
299
  },
222
- {
223
- "inputs": [
224
- {
225
- "internalType": "NftId",
226
- "name": "policyNftId",
227
- "type": "uint96"
228
- },
229
- {
230
- "internalType": "Timestamp",
231
- "name": "activateAt",
232
- "type": "uint40"
233
- }
234
- ],
235
- "name": "activate",
236
- "outputs": [],
237
- "stateMutability": "nonpayable",
238
- "type": "function"
239
- },
240
300
  {
241
301
  "inputs": [
242
302
  {
@@ -244,183 +304,28 @@
244
304
  "name": "riskId",
245
305
  "type": "bytes8"
246
306
  },
247
- {
248
- "internalType": "uint256",
249
- "name": "sumInsuredAmount",
250
- "type": "uint256"
251
- },
252
- {
253
- "internalType": "uint256",
254
- "name": "lifetime",
255
- "type": "uint256"
256
- },
257
307
  {
258
308
  "internalType": "bytes",
259
- "name": "applicationData",
309
+ "name": "data",
260
310
  "type": "bytes"
261
- },
262
- {
263
- "internalType": "NftId",
264
- "name": "bundleNftId",
265
- "type": "uint96"
266
- },
267
- {
268
- "internalType": "ReferralId",
269
- "name": "referralId",
270
- "type": "bytes8"
271
- }
272
- ],
273
- "name": "calculatePremium",
274
- "outputs": [
275
- {
276
- "internalType": "uint256",
277
- "name": "premiumAmount",
278
- "type": "uint256"
279
- },
280
- {
281
- "internalType": "uint256",
282
- "name": "productFeeAmount",
283
- "type": "uint256"
284
- },
285
- {
286
- "internalType": "uint256",
287
- "name": "poolFeeAmount",
288
- "type": "uint256"
289
- },
290
- {
291
- "internalType": "uint256",
292
- "name": "bundleFeeAmount",
293
- "type": "uint256"
294
- },
295
- {
296
- "internalType": "uint256",
297
- "name": "distributionFeeAmount",
298
- "type": "uint256"
299
- }
300
- ],
301
- "stateMutability": "view",
302
- "type": "function"
303
- },
304
- {
305
- "inputs": [
306
- {
307
- "internalType": "UFixed",
308
- "name": "collateralizationLevel",
309
- "type": "uint256"
310
- },
311
- {
312
- "internalType": "uint256",
313
- "name": "sumInsuredAmount",
314
- "type": "uint256"
315
311
  }
316
312
  ],
317
- "name": "calculateRequiredCollateral",
318
- "outputs": [
319
- {
320
- "internalType": "uint256",
321
- "name": "collateralAmount",
322
- "type": "uint256"
323
- }
324
- ],
325
- "stateMutability": "pure",
326
- "type": "function"
327
- },
328
- {
329
- "inputs": [
330
- {
331
- "internalType": "NftId",
332
- "name": "policyNftId",
333
- "type": "uint96"
334
- }
335
- ],
336
- "name": "close",
337
- "outputs": [],
338
- "stateMutability": "nonpayable",
339
- "type": "function"
340
- },
341
- {
342
- "inputs": [
343
- {
344
- "internalType": "NftId",
345
- "name": "policyNftId",
346
- "type": "uint96"
347
- },
348
- {
349
- "internalType": "Timestamp",
350
- "name": "activateAt",
351
- "type": "uint40"
352
- }
353
- ],
354
- "name": "collectPremium",
313
+ "name": "createRisk",
355
314
  "outputs": [],
356
315
  "stateMutability": "nonpayable",
357
316
  "type": "function"
358
317
  },
359
318
  {
360
- "inputs": [
361
- {
362
- "internalType": "address",
363
- "name": "applicationOwner",
364
- "type": "address"
365
- },
366
- {
367
- "internalType": "RiskId",
368
- "name": "riskId",
369
- "type": "bytes8"
370
- },
371
- {
372
- "internalType": "uint256",
373
- "name": "sumInsuredAmount",
374
- "type": "uint256"
375
- },
376
- {
377
- "internalType": "uint256",
378
- "name": "lifetime",
379
- "type": "uint256"
380
- },
381
- {
382
- "internalType": "bytes",
383
- "name": "applicationData",
384
- "type": "bytes"
385
- },
386
- {
387
- "internalType": "NftId",
388
- "name": "bundleNftId",
389
- "type": "uint96"
390
- },
391
- {
392
- "internalType": "ReferralId",
393
- "name": "referralId",
394
- "type": "bytes8"
395
- }
396
- ],
397
- "name": "createApplication",
319
+ "inputs": [],
320
+ "name": "getDomain",
398
321
  "outputs": [
399
322
  {
400
- "internalType": "NftId",
401
- "name": "policyNftId",
402
- "type": "uint96"
403
- }
404
- ],
405
- "stateMutability": "nonpayable",
406
- "type": "function"
407
- },
408
- {
409
- "inputs": [
410
- {
411
- "internalType": "RiskId",
412
- "name": "riskId",
413
- "type": "bytes8"
414
- },
415
- {
416
- "internalType": "bytes",
417
- "name": "data",
418
- "type": "bytes"
323
+ "internalType": "ObjectType",
324
+ "name": "",
325
+ "type": "uint8"
419
326
  }
420
327
  ],
421
- "name": "createRisk",
422
- "outputs": [],
423
- "stateMutability": "nonpayable",
328
+ "stateMutability": "pure",
424
329
  "type": "function"
425
330
  },
426
331
  {
@@ -517,19 +422,6 @@
517
422
  "stateMutability": "view",
518
423
  "type": "function"
519
424
  },
520
- {
521
- "inputs": [],
522
- "name": "getName",
523
- "outputs": [
524
- {
525
- "internalType": "string",
526
- "name": "name",
527
- "type": "string"
528
- }
529
- ],
530
- "stateMutability": "pure",
531
- "type": "function"
532
- },
533
425
  {
534
426
  "inputs": [],
535
427
  "name": "getNftId",
@@ -726,7 +618,7 @@
726
618
  "inputs": [
727
619
  {
728
620
  "internalType": "address",
729
- "name": "componentAddress",
621
+ "name": "productAddress",
730
622
  "type": "address"
731
623
  }
732
624
  ],
@@ -734,26 +626,13 @@
734
626
  "outputs": [
735
627
  {
736
628
  "internalType": "NftId",
737
- "name": "componentNftId",
629
+ "name": "productNftId",
738
630
  "type": "uint96"
739
631
  }
740
632
  ],
741
633
  "stateMutability": "nonpayable",
742
634
  "type": "function"
743
635
  },
744
- {
745
- "inputs": [
746
- {
747
- "internalType": "NftId",
748
- "name": "policyNftId",
749
- "type": "uint96"
750
- }
751
- ],
752
- "name": "revoke",
753
- "outputs": [],
754
- "stateMutability": "nonpayable",
755
- "type": "function"
756
- },
757
636
  {
758
637
  "inputs": [
759
638
  {
@@ -815,29 +694,6 @@
815
694
  "stateMutability": "view",
816
695
  "type": "function"
817
696
  },
818
- {
819
- "inputs": [
820
- {
821
- "internalType": "NftId",
822
- "name": "policyNftId",
823
- "type": "uint96"
824
- },
825
- {
826
- "internalType": "bool",
827
- "name": "requirePremiumPayment",
828
- "type": "bool"
829
- },
830
- {
831
- "internalType": "Timestamp",
832
- "name": "activateAt",
833
- "type": "uint40"
834
- }
835
- ],
836
- "name": "underwrite",
837
- "outputs": [],
838
- "stateMutability": "nonpayable",
839
- "type": "function"
840
- },
841
697
  {
842
698
  "inputs": [
843
699
  {
@@ -898,42 +754,14 @@
898
754
  "type": "function"
899
755
  }
900
756
  ],
901
- "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615b18806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063644c45e01161011a578063b3c65015116100ad578063c2c749871161007c578063c2c7498714610613578063caf4e3d414610626578063cc9fc59a1461062e578063cde749f414610636578063cf7a1d771461065057600080fd5b8063b3c65015146105ba578063b6b412ba146105da578063b88da759146105ed578063bbfbbfba1461060057600080fd5b8063946dfcfe116100e9578063946dfcfe146105185780639cdaa7f91461053f578063a3f4df7e1461057a578063a745e3df146105a757600080fd5b8063644c45e0146104d25780637cef4842146104ea578063893d20e8146104fd5780638f997f6d1461050557600080fd5b80634420e486116101925780635ab1bd53116101615780635ab1bd53146104745780635fd1a5f514610499578063603ccaad146104ac578063630361f6146104bf57600080fd5b80634420e4861461030a5780634d459c90146103355780634d5e16a91461044e5780634f4213331461046157600080fd5b80630fec111c116101ce5780630fec111c14610284578063138461e01461029a57806317d7de7c146102a25780631eff4b22146102d557600080fd5b806301ffc9a714610200578063095e2b72146102425780630aaba8e8146102575780630d8e6e2c14610268575b600080fd5b61022d61020e3660046144f7565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102556102503660046146d0565b610663565b005b610255610265366004614734565b50565b6102706106fc565b60405162ffffff9091168152602001610239565b61028c610786565b604051610239929190614812565b6102556108d9565b60408051808201909152600e81526d50726f647563745365727669636560901b60208201525b6040516102399190614837565b6102fc7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610239565b61031d61031836600461485f565b610afb565b6040516001600160601b039091168152602001610239565b6103f161034336600461488d565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020615ac383398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610239565b61025561045c3660046148bd565b610e62565b61022d61046f36600461488d565b611126565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610239565b6102fc6104a73660046148f6565b6111d9565b6102556104ba366004614734565b6112e2565b6102556104cd366004614926565b611334565b600154600160a01b90046001600160601b031661031d565b6102556104f8366004614980565b61186a565b6104816118eb565b6102556105133660046146d0565b611a05565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546102fc565b61055261054d3660046149ae565b611b2f565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b6102c86040518060400160405280600e81526020016d50726f647563745365727669636560901b81525081565b6102556105b5366004614a36565b611c0d565b6105c2611d67565b6040516001600160401b039091168152602001610239565b6102556105e8366004614ac7565b611d88565b6102706105fb366004614afc565b611ef5565b61025561060e3660046148bd565b611f46565b61031d610621366004614b15565b611f5b565b610481612213565b6104816122c8565b61063e612340565b60405160ff9091168152602001610239565b61025561065e366004614a36565b6123c3565b600080610670606e6124cc565b81516040805180820182526001600160601b03831681526020810188905290516317b0844560e11b8152939550919350916001600160a01b03841690632f61088a906106c29089908590600401614bd9565b600060405180830381600087803b1580156106dc57600080fd5b505af11580156106f0573d6000803e3d6000fd5b50505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190614bfe565b905090565b61078e61443b565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806107da6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016108226118eb565b6001600160a01b0316815260200182600101805461083f90614c1b565b80601f016020809104026020016040519081016040528092919081815260200182805461086b90614c1b565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190614c65565b156109a6576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166109cf5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190614c65565b610a64576040516372657a5160e01b81526001600160a01b038216600482015260240161099d565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190614c8d565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b6000818082610b098261278a565b60ff8116600090815260036020908152604080832054815163379ed74560e21b815291519495506001600160401b0316933393926001600160a01b0388169263de7b5d1492600480830193928290030181865afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190614caa565b9050610b9c6122c8565b6001600160a01b0316639c12c9c78385846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0e9190614c8d565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526001600160401b0390911660248301526001600160601b03166044820152606401602060405180830381865afa158015610c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c949190614c65565b610ccb576040516351302f8160e01b81526001600160401b03841660048201526001600160a01b038316602482015260440161099d565b33886000610cd88261278a565b90506000610ce4612213565b9050610cee61443b565b6060610d028460785b60ff90811691161490565b15610d8a57604051638fbc2d8160e01b81526001600160a01b0386811660048301528781166024830152841690638fbc2d81906044015b6000604051808303816000875af1158015610d58573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d809190810190614dcf565b9092509050610e34565b610d9584606e610cf7565b15610dd057604051635d96628960e01b81526001600160a01b0386811660048301528781166024830152841690635d96628990604401610d39565b610ddb84608c610cf7565b15610e1657604051637286e5e560e01b81526001600160a01b0386811660048301528781166024830152841690637286e5e590604401610d39565b60405163062839b560e01b815260ff8516600482015260240161099d565b81519c506000610e43836127ff565b9050610e508e83836128a1565b50505050505050505050505050919050565b6000610e6e606e6124cc565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed59190614caa565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f509190810190614e50565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614c65565b6110205760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f41435449564154454400604482015260640161099d565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af9190614fc4565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d52906110ed9088908590606490600401615110565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050505050505050565b600080600080516020615ac383398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190615145565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af415801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112529190615145565b905060006112608583612916565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af41580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190615145565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b606482015260840161099d565b600080611341606e6124cc565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190614caa565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa1580156113ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114279190810190614e50565b80519091506001600160601b038381169116146114865760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d41544348000000000000000000604482015260640161099d565b604051639096a1f360e01b81526001600160601b0389166004820152611502906001600160a01b03851690639096a1f390602401602060405180830381865afa1580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb919061515e565b600a610cf7565b61154e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c49454400604482015260640161099d565b6000611558614479565b60405163242bdc1960e21b81526001600160601b038516600482015260009081906001600160a01b038816906390af70649060240161022060405180830381865afa1580156115ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cf91906151ab565b90506115dd88888784612932565b919550935091506115f390508784848e85612ab5565b9150602864ffffffffff8a16156116a657606464ffffffffff8b166101a0870181905260e0870151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190614fc4565b64ffffffffff166101c08601525b8a156116f65760006116c2898b600001518f8960a00151612adf565b90508560a001518660c0018181516116da919061528f565b90525060a0840180518291906116f190839061528f565b905250505b604051634d4b06a960e11b81526001600160a01b03891690639a960d5290611726908f9089908690600401615110565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b505060055460208c01516040516319efcbb760e31b81526001600160a01b03909216935063cf7e5db89250611792918890889060ff906004016152b0565b600060405180830381600087803b1580156117ac57600080fd5b505af11580156117c0573d6000803e3d6000fd5b505084516040516355e343a960e01b81526001600160601b0382166004820152909250600091506001600160a01b038a16906355e343a99060240161016060405180830381865afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d919061538a565b90508060c001511561185a5761185a828f89886040015188613096565b5050505050505050505050505050565b6000611876606e6124cc565b604051633e77a42160e11b81526001600160c01b03198616600482015260ff851660248201529092506001600160a01b0383169150637cef484290604401600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b50505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119749190614c65565b156119f557600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a906024015b602060405180830381865afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190614caa565b506002546001600160a01b031690565b6000611a11606e6124cc565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a789190614caa565b60405163887b1fa960e01b81526001600160c01b0319861660048201529091506000906001600160a01b0383169063887b1fa990602401600060405180830381865afa158015611acc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611af4919081019061542c565b602081018590526040516314eddc0360e31b81529091506001600160a01b0384169063a76ee018906110ed908890859060ff906004016154ab565b600080600080600080611b40613160565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b8152600401611b7694939291906154d0565b602060405180830381865afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190615145565b9050611bc581838b8b61317f565b92985090965094509250611bd9868261528f565b9650611be5848661528f565b611bef908861528f565b9650611bfb838861528f565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c611c2f6106fc565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190615520565b600080516020615aa38339815191528054600160401b900460ff1680611cc6575080546001600160401b03808416911610155b15611ce45760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611d0f8585613818565b611d1883613ab7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610781600080516020615aa3833981519152546001600160401b031690565b600080611d95606e6124cc565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614caa565b835160405163242bdc1960e21b81526001600160601b0382166004820152919250906000906001600160a01b038416906390af70649060240161022060405180830381865afa158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7891906151ab565b60a0810188905260c0810187905260405163156c654b60e01b81529091506001600160a01b0385169063156c654b90611eba908590859060ff9060040161565a565b600060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b5050505050505050505050565b6000600080516020615ac38339815191526001018281548110611f1a57611f1a61568a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611f53606e6124cc565b505050505050565b60008080611f69606e6124cc565b91509150611f75612213565b6001600160a01b0316635c992fed6040518060e00160405280611f96600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b815260040161200f91906156a0565b6020604051808303816000875af115801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190614c8d565b925060006120648a8a8a8a8a8a611b2f565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001612113600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d40009061215990889085906004016156b3565b600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc866121a3600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b5050505050505050979650505050505050565b6000806122286001546001600160a01b031690565b6001600160a01b031663a3bcd81d61223e612340565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e52656769737472795365727669636560881b606482015260ff9091166024820152608401602060405180830381865afa1580156122a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190614caa565b60006122dc6001546001600160a01b031690565b6001600160a01b031663a3bcd81d6122f2612340565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e496e7374616e63655365727669636560881b606482015260ff90911660248201526084016119b4565b600061234a6106fc565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561239f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610781919061515e565b600080516020615aa38339815191528054600160401b810460ff1615906001600160401b03166000811580156123f65750825b90506000826001600160401b031660011480156124125750303b155b905081158015612420575080155b1561243e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561246857845460ff60401b1916600160401b1785555b6124728888613818565b61247c8787613abf565b83156124c257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6124d461443b565b600154604051636939560f60e11b815233600482015260009182916001600160a01b039091169063d272ac1e90602401602060405180830381865afa158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190614c8d565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c49190614c65565b6126105760405162461bcd60e51b815260206004820152601760248201527f4552524f525f434f4d504f4e454e545f554e4b4e4f574e000000000000000000604482015260640161099d565b6001546001600160a01b03166040516305247a1760e51b81526001600160601b03831660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801561266b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261269391908101906156d5565b92506126a983604001518560ff90811691161490565b6126eb5760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b604482015260640161099d565b60006126ff6001546001600160a01b031690565b60208501516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612754573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261277c91908101906156d5565b608001519395939450505050565b600080826001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156127cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127f39190810190614dcf565b50604001519392505050565b6000806128146001546001600160a01b031690565b60208401516040516305247a1760e51b81526001600160601b0390911660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa15801561286d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261289591908101906156d5565b60800151949350505050565b6000828060200190518101906128b791906151ab565b6040516389341cdd60e01b81529091506001600160a01b038316906389341cdd906128e89087908590600401615709565b600060405180830381600087803b15801561290257600080fd5b505af11580156124c2573d6000803e3d6000fd5b600061292b8383670de0b6b3a7640000613cd1565b9392505050565b600061293c614479565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa158015612994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129bc9190810190615727565b805160608601519193506001600160601b03908116911614612a195760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b604482015260640161099d565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161016060405180830381865afa158015612a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a93919061538a565b9050612aa7816040015188608001516111d9565b925050509450945094915050565b612abd614479565b8184608001818151612acf919061528f565b9052508390505b95945050505050565b6000811561308e576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4b9190614caa565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161022060405180830381865afa158015612b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbf91906151ab565b60208101519091506000612bdb6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4e9190614caa565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb49190614caa565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161016060405180830381865afa158015612d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2e919061538a565b60e081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c290612d779084906004016157f8565b602060405180830381865af4158015612d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db89190614c65565b15612e24576040516317d5759960e31b81526001600160a01b0386169063beabacc890612ded90879086908d9060040161580f565b600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050613087565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb39190615833565b91509150600088610140015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f249190614caa565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f989190615145565b1015612fbd5786888c6040516333ac6f1760e11b815260040161099d9392919061580f565b6040516317d5759960e31b81526001600160a01b0389169063beabacc890612fed908a908590889060040161580f565b600060405180830381600087803b15801561300757600080fd5b505af115801561301b573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061304f908a908990879060040161580f565b600060405180830381600087803b15801561306957600080fd5b505af115801561307d573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006130aa6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa1580156130f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261312191908101906156d5565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91611eba918a9189908990600401615857565b600061316a61443b565b613174606e6124cc565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ea9190614caa565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561322a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324e9190614caa565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015613291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b59190614c8d565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015613308573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133309190810190615727565b80519091506001600160601b0383811691161461339a5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b606482015260840161099d565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340c9190614c8d565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161022060405180830381865afa158015613451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347591906151ab565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156134de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135029190615833565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161016060405180830381865afa158015613558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061357c919061538a565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615833565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561364f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136739190614c8d565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa1580156136c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ea919061589d565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015613753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137779190615833565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af41580156137e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138059190615833565b5080955050505050945094509450949050565b613820613dba565b600080516020615ac38339815191526000613850600080516020615aa3833981519152546001600160401b031690565b9050600061385c6106fc565b9050816001600160401b03166001036138895760028301805462ffffff191662ffffff83161790556138d7565b600283015462ffffff908116908216116138d75760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b604482015260640161099d565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af415801561398b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139af9190614fc4565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890611d589083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101fb613dba565b600080516020615aa38339815191528054600160401b810460ff1615906001600160401b0316600081158015613af25750825b90506000826001600160401b03166001148015613b0e5750303b155b905081158015613b1c575080155b15613b3a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315613b6457845460ff60401b1916600160401b1785555b600086806020019051810190613b7a9190615933565b600480546001600160a01b039093166001600160a01b0319909316831790559150613ba59089613df3565b60015460408051808201909152600b81526a506f6f6c5365727669636560a81b60208201526001600160a01b039091169063a3bcd81d90613be4612340565b6040518363ffffffff1660e01b8152600401613c01929190615962565b602060405180830381865afa158015613c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c429190614caa565b600580546001600160a01b0319166001600160a01b0392909216919091179055613c72631b4612f160e31b613f49565b613c82632c987bf360e21b613f49565b5083156118e257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b6000808060001985870985870292508281108382030391505080600003613d0b57838281613d0157613d01615987565b049250505061292b565b808411613d525760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161099d565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020615aa383398151915254600160401b900460ff16613df157604051631afcd79f60e31b815260040160405180910390fd5b565b613dfd8282613f6e565b613e05613ffa565b606e60005260036020527f0de2b21138735878e0660eef23d1131fad23d66157bfa1c473a82b60c5169926805467ffffffffffffffff19166001600160401b0392909216919091179055613e57614073565b608c60005260036020527f83339eadc78535e76a031a9a544cf6fa252296becf88992d49fad5f832544a38805467ffffffffffffffff19166001600160401b0392909216919091179055613ea96140af565b607860005260036020527fe372c44748f4c2908ae7c0a1dc553464478b0394f70953faecd55173b039317c805467ffffffffffffffff19166001600160401b0392909216919091179055613efb6140ea565b608260005260036020527fc3d073881ce0daff4d900012573fe3b8d5b283519b2f509e59d1b978e7cf0fc5805467ffffffffffffffff19166001600160401b03929092169190911790555050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6000613f9b60408051808201909152600e81526d50726f647563745365727669636560901b602082015290565b613fa3612340565b604051602001613fb4929190615962565b60405160208183030381529060405290506000613fd084614125565b90506000613fe38583603c848888614190565b613ff3631b4612f160e31b613f49565b5050505050565b6040516368aebf7b60e01b8152610190600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af415801561404f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190615520565b6040516368aebf7b60e01b815261012c600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b6040516368aebf7b60e01b81526064600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b6040516368aebf7b60e01b815260c8600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561416c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190614c8d565b6141d16301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6141db828761425c565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161424b83826159e3565b506118e26303fb044760e21b613f49565b6001600160a01b0382166142b25760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e657220697320300000604482015260640161099d565b600280546001600160a01b0319166001600160a01b0384161790556142d6816142da565b5050565b6001546001600160a01b0316156143135760015460405163fcdbf2d960e01b81526001600160a01b03909116600482015260240161099d565b6001600160a01b03811661433a5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036143705760405163fdeac91f60e01b81526001600160a01b038216600482015260240161099d565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152632eaf856d60e11b60048201526301ffc9a790602401602060405180830381865afa9250505080156143ea575060408051601f3d908101601f191682019092526143e791810190614c65565b60015b6144125760405163fdeac91f60e01b81526001600160a01b038216600482015260240161099d565b806142d65760405163fdeac91f60e01b81526001600160a01b038316600482015260240161099d565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b031681526020016144b2604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561450957600080fd5b81356001600160e01b03198116811461292b57600080fd5b6001600160c01b03198116811461026557600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561456f5761456f614537565b60405290565b60405160e081016001600160401b038111828210171561456f5761456f614537565b60405161020081016001600160401b038111828210171561456f5761456f614537565b60405161016081016001600160401b038111828210171561456f5761456f614537565b60405161010081016001600160401b038111828210171561456f5761456f614537565b60405161012081016001600160401b038111828210171561456f5761456f614537565b604051601f8201601f191681016001600160401b038111828210171561464b5761464b614537565b604052919050565b60006001600160401b0382111561466c5761466c614537565b50601f01601f191660200190565b600082601f83011261468b57600080fd5b813561469e61469982614653565b614623565b8181528460208386010111156146b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156146e357600080fd5b82356146ee81614521565b915060208301356001600160401b0381111561470957600080fd5b6147158582860161467a565b9150509250929050565b6001600160601b038116811461026557600080fd5b60006020828403121561474657600080fd5b813561292b8161471f565b60005b8381101561476c578181015183820152602001614754565b50506000910152565b6000815180845261478d816020860160208601614751565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c085015261308e60e0850182614775565b60408152600061482560408301856147a1565b8281036020840152612ad68185614775565b60208152600061292b6020830184614775565b6001600160a01b038116811461026557600080fd5b60006020828403121561487157600080fd5b813561292b8161484a565b62ffffff8116811461026557600080fd5b60006020828403121561489f57600080fd5b813561292b8161487c565b64ffffffffff8116811461026557600080fd5b600080604083850312156148d057600080fd5b82356148db8161471f565b915060208301356148eb816148aa565b809150509250929050565b6000806040838503121561490957600080fd5b50508035926020909101359150565b801515811461026557600080fd5b60008060006060848603121561493b57600080fd5b83356149468161471f565b9250602084013561495681614918565b91506040840135614966816148aa565b809150509250925092565b60ff8116811461026557600080fd5b6000806040838503121561499357600080fd5b823561499e81614521565b915060208301356148eb81614971565b60008060008060008060c087890312156149c757600080fd5b86356149d281614521565b9550602087013594506040870135935060608701356001600160401b038111156149fb57600080fd5b614a0789828a0161467a565b9350506080870135614a188161471f565b915060a0870135614a2881614521565b809150509295509295509295565b600080600060608486031215614a4b57600080fd5b8335614a568161484a565b92506020840135614a668161484a565b915060408401356001600160401b03811115614a8157600080fd5b614a8d8682870161467a565b9150509250925092565b600060408284031215614aa957600080fd5b614ab161454d565b9050813581526020820135602082015292915050565b60008060808385031215614ada57600080fd5b614ae48484614a97565b9150614af38460408501614a97565b90509250929050565b600060208284031215614b0e57600080fd5b5035919050565b600080600080600080600060e0888a031215614b3057600080fd5b8735614b3b8161484a565b96506020880135614b4b81614521565b9550604088013594506060880135935060808801356001600160401b03811115614b7457600080fd5b614b808a828b0161467a565b93505060a0880135614b918161471f565b915060c0880135614ba181614521565b8091505092959891949750929550565b6001600160601b038151168252600060208201516040602085015261308e6040850182614775565b6001600160401b0360c01b8316815260406020820152600061308e6040830184614bb1565b600060208284031215614c1057600080fd5b815161292b8161487c565b600181811c90821680614c2f57607f821691505b602082108103614c4f57634e487b7160e01b600052602260045260246000fd5b50919050565b8051614c6081614918565b919050565b600060208284031215614c7757600080fd5b815161292b81614918565b8051614c608161471f565b600060208284031215614c9f57600080fd5b815161292b8161471f565b600060208284031215614cbc57600080fd5b815161292b8161484a565b8051614c6081614971565b8051614c608161484a565b600082601f830112614cee57600080fd5b8151614cfc61469982614653565b818152846020838601011115614d1157600080fd5b61308e826020830160208701614751565b600060e08284031215614d3457600080fd5b614d3c614575565b9050614d4782614c82565b8152614d5560208301614c82565b6020820152614d6660408301614cc7565b6040820152614d7760608301614c55565b6060820152614d8860808301614cd2565b6080820152614d9960a08301614cd2565b60a082015260c08201516001600160401b03811115614db757600080fd5b614dc384828501614cdd565b60c08301525092915050565b60008060408385031215614de257600080fd5b82516001600160401b0380821115614df957600080fd5b614e0586838701614d22565b93506020850151915080821115614e1b57600080fd5b5061471585828601614cdd565b8051614c6081614521565b805161ffff81168114614c6057600080fd5b8051614c60816148aa565b600060208284031215614e6257600080fd5b81516001600160401b0380821115614e7957600080fd5b908301906102008286031215614e8e57600080fd5b614e96614597565b614e9f83614c82565b8152614ead60208401614c82565b6020820152614ebe60408401614e28565b6040820152614ecf60608401614e28565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115614f1057600080fd5b614f1c88828701614cdd565b8284015250506101208084015183811115614f3657600080fd5b614f4288828701614cdd565b8284015250506101409150614f58828401614e33565b828201526101609150614f6c828401614e33565b82820152610180915081830151828201526101a09150614f8d828401614e45565b828201526101c09150614fa1828401614e45565b828201526101e09150614fb5828401614e45565b91810191909152949350505050565b600060208284031215614fd657600080fd5b815161292b816148aa565b80516001600160601b031682526000610200602083015161500d60208601826001600160601b03169052565b50604083015161502960408601826001600160c01b0319169052565b50606083015161504560608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151828287015261508683870182614775565b9250505061012080840151858303828701526150a28382614775565b92505050610140808401516150bc8287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b03841681526060602082015260006151326060830185614fe1565b905060ff83166040830152949350505050565b60006020828403121561515757600080fd5b5051919050565b60006020828403121561517057600080fd5b815161292b81614971565b60006040828403121561518d57600080fd5b61519561454d565b9050815181526020820151602082015292915050565b600061022082840312156151be57600080fd5b6151c66145ba565b6151cf83614cd2565b81526151dd60208401614cd2565b60208201526151ee60408401614c82565b60408201526151ff60608401614c82565b6060820152615211846080850161517b565b60808201526152238460c0850161517b565b60a08201526101006152378582860161517b565b60c083015261014061524b8682870161517b565b60e084015261525e86610180870161517b565b82840152615270866101c0870161517b565b6101208401526152836102008601614cd2565b90830152509392505050565b808201808211156112dc57634e487b7160e01b600052601160045260246000fd5b60006001600160601b038087168352808616602084015250608060408301526152e56080830185516001600160601b03169052565b602084810151805160a0850152015160c0830152604084015161014060e084018190526153166101c0850183614775565b915060608601516101008181870152608088015161012087015260a08801518387015260c088015161016087015260e0880151925061535f61018087018464ffffffffff169052565b87015164ffffffffff81166101a087015291506153799050565b5060ff841660608401529050612ad6565b6000610160828403121561539d57600080fd5b6153a56145dd565b6153ae83614c82565b81526153bc60208401614cd2565b6020820152604083015160408201526153d8846060850161517b565b60608201526153ea8460a0850161517b565b60808201526153fc8460e0850161517b565b60a082015261540e6101208401614c55565b60c08201526154206101408401614cd2565b60e08201529392505050565b60006020828403121561543e57600080fd5b81516001600160401b038082111561545557600080fd5b908301906040828603121561546957600080fd5b61547161454d565b825161547c8161471f565b815260208301518281111561549057600080fd5b61549c87828601614cdd565b60208301525095945050505050565b6001600160401b0360c01b841681526060602082015260006151326060830185614bb1565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006155016080830184614775565b9695505050505050565b6001600160401b038116811461026557600080fd5b60006020828403121561553257600080fd5b815161292b8161550b565b80516001600160a01b03168252602081015161556460208401826001600160a01b03169052565b50604081015161557f60408401826001600160601b03169052565b50606081015161559a60608401826001600160601b03169052565b5060808101516155b7608084018280518252602090810151910152565b5060a0810151805160c0840152602081015160e08401525060c08101516101006155ed8185018380518252602090810151910152565b60e0830151915061014061560d8186018480518252602090810151910152565b9083015180516101808601526020908101516101a086015261012084015180516101c087015201516101e08501528201516001600160a01b0381166102008501529050505050565b505050565b6001600160601b03841681526102608101615678602083018561553d565b60ff8316610240830152949350505050565b634e487b7160e01b600052603260045260246000fd5b60208152600061292b60208301846147a1565b6001600160601b038316815260406020820152600061308e6040830184614fe1565b6000602082840312156156e757600080fd5b81516001600160401b038111156156fd57600080fd5b61308e84828501614d22565b6001600160601b0383168152610240810161292b602083018461553d565b60006020828403121561573957600080fd5b81516001600160401b038082111561575057600080fd5b90830190610140828603121561576557600080fd5b61576d614600565b61577683614c82565b8152615785866020850161517b565b602082015260608301518281111561579c57600080fd5b6157a887828601614cdd565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c082015261010091506157e6828401614e45565b60e0820152614fb56101208401614e45565b8151815260208083015190820152604081016112dc565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000806040838503121561584657600080fd5b505080516020909101519092909150565b6001600160601b03851681526080602082015260006158796080830186614775565b828103604084015261588b8186614775565b91505082606083015295945050505050565b600060c082840312156158af57600080fd5b60405160a081018181106001600160401b03821117156158d1576158d1614537565b60405282516158df8161471f565b815260208301516158ef8161484a565b6020820152615901846040850161517b565b6040820152608083015161591481614918565b606082015260a08301516159278161484a565b60808201529392505050565b6000806040838503121561594657600080fd5b82516159518161484a565b60208401519092506148eb8161484a565b6040815260006159756040830185614775565b905060ff831660208301529392505050565b634e487b7160e01b600052601260045260246000fd5b601f82111561565557600081815260208120601f850160051c810160208610156159c45750805b601f850160051c820191505b81811015611f53578281556001016159d0565b81516001600160401b038111156159fc576159fc614537565b615a1081615a0a8454614c1b565b8461599d565b602080601f831160018114615a455760008415615a2d5750858301515b600019600386901b1c1916600185901b178555611f53565b600085815260208120601f198616915b82811015615a7457888601518255948401946001909101908401615a55565b5085821015615a925787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220405c60f953871e86a40f7fb2c14f8ea059d68b889086e609ec82420973f3f25964736f6c63430008140033",
902
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063644c45e01161011a578063b3c65015116100ad578063c2c749871161007c578063c2c7498714610613578063caf4e3d414610626578063cc9fc59a1461062e578063cde749f414610636578063cf7a1d771461065057600080fd5b8063b3c65015146105ba578063b6b412ba146105da578063b88da759146105ed578063bbfbbfba1461060057600080fd5b8063946dfcfe116100e9578063946dfcfe146105185780639cdaa7f91461053f578063a3f4df7e1461057a578063a745e3df146105a757600080fd5b8063644c45e0146104d25780637cef4842146104ea578063893d20e8146104fd5780638f997f6d1461050557600080fd5b80634420e486116101925780635ab1bd53116101615780635ab1bd53146104745780635fd1a5f514610499578063603ccaad146104ac578063630361f6146104bf57600080fd5b80634420e4861461030a5780634d459c90146103355780634d5e16a91461044e5780634f4213331461046157600080fd5b80630fec111c116101ce5780630fec111c14610284578063138461e01461029a57806317d7de7c146102a25780631eff4b22146102d557600080fd5b806301ffc9a714610200578063095e2b72146102425780630aaba8e8146102575780630d8e6e2c14610268575b600080fd5b61022d61020e3660046144f7565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102556102503660046146d0565b610663565b005b610255610265366004614734565b50565b6102706106fc565b60405162ffffff9091168152602001610239565b61028c610786565b604051610239929190614812565b6102556108d9565b60408051808201909152600e81526d50726f647563745365727669636560901b60208201525b6040516102399190614837565b6102fc7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610239565b61031d61031836600461485f565b610afb565b6040516001600160601b039091168152602001610239565b6103f161034336600461488d565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020615ac383398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610239565b61025561045c3660046148bd565b610e62565b61022d61046f36600461488d565b611126565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610239565b6102fc6104a73660046148f6565b6111d9565b6102556104ba366004614734565b6112e2565b6102556104cd366004614926565b611334565b600154600160a01b90046001600160601b031661031d565b6102556104f8366004614980565b61186a565b6104816118eb565b6102556105133660046146d0565b611a05565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546102fc565b61055261054d3660046149ae565b611b2f565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b6102c86040518060400160405280600e81526020016d50726f647563745365727669636560901b81525081565b6102556105b5366004614a36565b611c0d565b6105c2611d67565b6040516001600160401b039091168152602001610239565b6102556105e8366004614ac7565b611d88565b6102706105fb366004614afc565b611ef5565b61025561060e3660046148bd565b611f46565b61031d610621366004614b15565b611f5b565b610481612213565b6104816122c8565b61063e612340565b60405160ff9091168152602001610239565b61025561065e366004614a36565b6123c3565b600080610670606e6124cc565b81516040805180820182526001600160601b03831681526020810188905290516317b0844560e11b8152939550919350916001600160a01b03841690632f61088a906106c29089908590600401614bd9565b600060405180830381600087803b1580156106dc57600080fd5b505af11580156106f0573d6000803e3d6000fd5b50505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190614bfe565b905090565b61078e61443b565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806107da6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016108226118eb565b6001600160a01b0316815260200182600101805461083f90614c1b565b80601f016020809104026020016040519081016040528092919081815260200182805461086b90614c1b565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190614c65565b156109a6576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166109cf5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190614c65565b610a64576040516372657a5160e01b81526001600160a01b038216600482015260240161099d565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190614c8d565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b6000818082610b098261278a565b60ff8116600090815260036020908152604080832054815163379ed74560e21b815291519495506001600160401b0316933393926001600160a01b0388169263de7b5d1492600480830193928290030181865afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190614caa565b9050610b9c6122c8565b6001600160a01b0316639c12c9c78385846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0e9190614c8d565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526001600160401b0390911660248301526001600160601b03166044820152606401602060405180830381865afa158015610c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c949190614c65565b610ccb576040516351302f8160e01b81526001600160401b03841660048201526001600160a01b038316602482015260440161099d565b33886000610cd88261278a565b90506000610ce4612213565b9050610cee61443b565b6060610d028460785b60ff90811691161490565b15610d8a57604051638fbc2d8160e01b81526001600160a01b0386811660048301528781166024830152841690638fbc2d81906044015b6000604051808303816000875af1158015610d58573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d809190810190614dcf565b9092509050610e34565b610d9584606e610cf7565b15610dd057604051635d96628960e01b81526001600160a01b0386811660048301528781166024830152841690635d96628990604401610d39565b610ddb84608c610cf7565b15610e1657604051637286e5e560e01b81526001600160a01b0386811660048301528781166024830152841690637286e5e590604401610d39565b60405163062839b560e01b815260ff8516600482015260240161099d565b81519c506000610e43836127ff565b9050610e508e83836128a1565b50505050505050505050505050919050565b6000610e6e606e6124cc565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed59190614caa565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f509190810190614e50565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614c65565b6110205760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f41435449564154454400604482015260640161099d565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af9190614fc4565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d52906110ed9088908590606490600401615110565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050505050505050565b600080600080516020615ac383398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190615145565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af415801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112529190615145565b905060006112608583612916565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af41580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190615145565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b606482015260840161099d565b600080611341606e6124cc565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190614caa565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa1580156113ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114279190810190614e50565b80519091506001600160601b038381169116146114865760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d41544348000000000000000000604482015260640161099d565b604051639096a1f360e01b81526001600160601b0389166004820152611502906001600160a01b03851690639096a1f390602401602060405180830381865afa1580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb919061515e565b600a610cf7565b61154e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c49454400604482015260640161099d565b6000611558614479565b60405163242bdc1960e21b81526001600160601b038516600482015260009081906001600160a01b038816906390af70649060240161022060405180830381865afa1580156115ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cf91906151ab565b90506115dd88888784612932565b919550935091506115f390508784848e85612ab5565b9150602864ffffffffff8a16156116a657606464ffffffffff8b166101a0870181905260e0870151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190614fc4565b64ffffffffff166101c08601525b8a156116f65760006116c2898b600001518f8960a00151612adf565b90508560a001518660c0018181516116da919061528f565b90525060a0840180518291906116f190839061528f565b905250505b604051634d4b06a960e11b81526001600160a01b03891690639a960d5290611726908f9089908690600401615110565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b505060055460208c01516040516319efcbb760e31b81526001600160a01b03909216935063cf7e5db89250611792918890889060ff906004016152b0565b600060405180830381600087803b1580156117ac57600080fd5b505af11580156117c0573d6000803e3d6000fd5b505084516040516355e343a960e01b81526001600160601b0382166004820152909250600091506001600160a01b038a16906355e343a99060240161016060405180830381865afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d919061538a565b90508060c001511561185a5761185a828f89886040015188613096565b5050505050505050505050505050565b6000611876606e6124cc565b604051633e77a42160e11b81526001600160c01b03198616600482015260ff851660248201529092506001600160a01b0383169150637cef484290604401600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b50505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119749190614c65565b156119f557600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a906024015b602060405180830381865afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190614caa565b506002546001600160a01b031690565b6000611a11606e6124cc565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a789190614caa565b60405163887b1fa960e01b81526001600160c01b0319861660048201529091506000906001600160a01b0383169063887b1fa990602401600060405180830381865afa158015611acc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611af4919081019061542c565b602081018590526040516314eddc0360e31b81529091506001600160a01b0384169063a76ee018906110ed908890859060ff906004016154ab565b600080600080600080611b40613160565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b8152600401611b7694939291906154d0565b602060405180830381865afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190615145565b9050611bc581838b8b61317f565b92985090965094509250611bd9868261528f565b9650611be5848661528f565b611bef908861528f565b9650611bfb838861528f565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c611c2f6106fc565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190615520565b600080516020615aa38339815191528054600160401b900460ff1680611cc6575080546001600160401b03808416911610155b15611ce45760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611d0f8585613818565b611d1883613ab7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610781600080516020615aa3833981519152546001600160401b031690565b600080611d95606e6124cc565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614caa565b835160405163242bdc1960e21b81526001600160601b0382166004820152919250906000906001600160a01b038416906390af70649060240161022060405180830381865afa158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7891906151ab565b60a0810188905260c0810187905260405163156c654b60e01b81529091506001600160a01b0385169063156c654b90611eba908590859060ff9060040161565a565b600060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b5050505050505050505050565b6000600080516020615ac38339815191526001018281548110611f1a57611f1a61568a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611f53606e6124cc565b505050505050565b60008080611f69606e6124cc565b91509150611f75612213565b6001600160a01b0316635c992fed6040518060e00160405280611f96600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b815260040161200f91906156a0565b6020604051808303816000875af115801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190614c8d565b925060006120648a8a8a8a8a8a611b2f565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001612113600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d40009061215990889085906004016156b3565b600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc866121a3600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b5050505050505050979650505050505050565b6000806122286001546001600160a01b031690565b6001600160a01b031663a3bcd81d61223e612340565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e52656769737472795365727669636560881b606482015260ff9091166024820152608401602060405180830381865afa1580156122a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190614caa565b60006122dc6001546001600160a01b031690565b6001600160a01b031663a3bcd81d6122f2612340565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e496e7374616e63655365727669636560881b606482015260ff90911660248201526084016119b4565b600061234a6106fc565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561239f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610781919061515e565b600080516020615aa38339815191528054600160401b810460ff1615906001600160401b03166000811580156123f65750825b90506000826001600160401b031660011480156124125750303b155b905081158015612420575080155b1561243e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561246857845460ff60401b1916600160401b1785555b6124728888613818565b61247c8787613abf565b83156124c257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6124d461443b565b600154604051636939560f60e11b815233600482015260009182916001600160a01b039091169063d272ac1e90602401602060405180830381865afa158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190614c8d565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c49190614c65565b6126105760405162461bcd60e51b815260206004820152601760248201527f4552524f525f434f4d504f4e454e545f554e4b4e4f574e000000000000000000604482015260640161099d565b6001546001600160a01b03166040516305247a1760e51b81526001600160601b03831660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801561266b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261269391908101906156d5565b92506126a983604001518560ff90811691161490565b6126eb5760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b604482015260640161099d565b60006126ff6001546001600160a01b031690565b60208501516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612754573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261277c91908101906156d5565b608001519395939450505050565b600080826001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156127cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127f39190810190614dcf565b50604001519392505050565b6000806128146001546001600160a01b031690565b60208401516040516305247a1760e51b81526001600160601b0390911660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa15801561286d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261289591908101906156d5565b60800151949350505050565b6000828060200190518101906128b791906151ab565b6040516389341cdd60e01b81529091506001600160a01b038316906389341cdd906128e89087908590600401615709565b600060405180830381600087803b15801561290257600080fd5b505af11580156124c2573d6000803e3d6000fd5b600061292b8383670de0b6b3a7640000613cd1565b9392505050565b600061293c614479565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa158015612994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129bc9190810190615727565b805160608601519193506001600160601b03908116911614612a195760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b604482015260640161099d565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161016060405180830381865afa158015612a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a93919061538a565b9050612aa7816040015188608001516111d9565b925050509450945094915050565b612abd614479565b8184608001818151612acf919061528f565b9052508390505b95945050505050565b6000811561308e576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4b9190614caa565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161022060405180830381865afa158015612b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbf91906151ab565b60208101519091506000612bdb6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4e9190614caa565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb49190614caa565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161016060405180830381865afa158015612d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2e919061538a565b60e081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c290612d779084906004016157f8565b602060405180830381865af4158015612d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db89190614c65565b15612e24576040516317d5759960e31b81526001600160a01b0386169063beabacc890612ded90879086908d9060040161580f565b600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050613087565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb39190615833565b91509150600088610140015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f249190614caa565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f989190615145565b1015612fbd5786888c6040516333ac6f1760e11b815260040161099d9392919061580f565b6040516317d5759960e31b81526001600160a01b0389169063beabacc890612fed908a908590889060040161580f565b600060405180830381600087803b15801561300757600080fd5b505af115801561301b573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061304f908a908990879060040161580f565b600060405180830381600087803b15801561306957600080fd5b505af115801561307d573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006130aa6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa1580156130f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261312191908101906156d5565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91611eba918a9189908990600401615857565b600061316a61443b565b613174606e6124cc565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ea9190614caa565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561322a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324e9190614caa565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015613291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b59190614c8d565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015613308573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133309190810190615727565b80519091506001600160601b0383811691161461339a5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b606482015260840161099d565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340c9190614c8d565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161022060405180830381865afa158015613451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347591906151ab565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156134de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135029190615833565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161016060405180830381865afa158015613558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061357c919061538a565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615833565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561364f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136739190614c8d565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa1580156136c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ea919061589d565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015613753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137779190615833565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af41580156137e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138059190615833565b5080955050505050945094509450949050565b613820613dba565b600080516020615ac38339815191526000613850600080516020615aa3833981519152546001600160401b031690565b9050600061385c6106fc565b9050816001600160401b03166001036138895760028301805462ffffff191662ffffff83161790556138d7565b600283015462ffffff908116908216116138d75760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b604482015260640161099d565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af415801561398b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139af9190614fc4565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890611d589083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101fb613dba565b600080516020615aa38339815191528054600160401b810460ff1615906001600160401b0316600081158015613af25750825b90506000826001600160401b03166001148015613b0e5750303b155b905081158015613b1c575080155b15613b3a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315613b6457845460ff60401b1916600160401b1785555b600086806020019051810190613b7a9190615933565b600480546001600160a01b039093166001600160a01b0319909316831790559150613ba59089613df3565b60015460408051808201909152600b81526a506f6f6c5365727669636560a81b60208201526001600160a01b039091169063a3bcd81d90613be4612340565b6040518363ffffffff1660e01b8152600401613c01929190615962565b602060405180830381865afa158015613c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c429190614caa565b600580546001600160a01b0319166001600160a01b0392909216919091179055613c72631b4612f160e31b613f49565b613c82632c987bf360e21b613f49565b5083156118e257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b6000808060001985870985870292508281108382030391505080600003613d0b57838281613d0157613d01615987565b049250505061292b565b808411613d525760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161099d565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020615aa383398151915254600160401b900460ff16613df157604051631afcd79f60e31b815260040160405180910390fd5b565b613dfd8282613f6e565b613e05613ffa565b606e60005260036020527f0de2b21138735878e0660eef23d1131fad23d66157bfa1c473a82b60c5169926805467ffffffffffffffff19166001600160401b0392909216919091179055613e57614073565b608c60005260036020527f83339eadc78535e76a031a9a544cf6fa252296becf88992d49fad5f832544a38805467ffffffffffffffff19166001600160401b0392909216919091179055613ea96140af565b607860005260036020527fe372c44748f4c2908ae7c0a1dc553464478b0394f70953faecd55173b039317c805467ffffffffffffffff19166001600160401b0392909216919091179055613efb6140ea565b608260005260036020527fc3d073881ce0daff4d900012573fe3b8d5b283519b2f509e59d1b978e7cf0fc5805467ffffffffffffffff19166001600160401b03929092169190911790555050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6000613f9b60408051808201909152600e81526d50726f647563745365727669636560901b602082015290565b613fa3612340565b604051602001613fb4929190615962565b60405160208183030381529060405290506000613fd084614125565b90506000613fe38583603c848888614190565b613ff3631b4612f160e31b613f49565b5050505050565b6040516368aebf7b60e01b8152610190600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af415801561404f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190615520565b6040516368aebf7b60e01b815261012c600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b6040516368aebf7b60e01b81526064600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b6040516368aebf7b60e01b815260c8600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401614032565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561416c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190614c8d565b6141d16301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6141db828761425c565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161424b83826159e3565b506118e26303fb044760e21b613f49565b6001600160a01b0382166142b25760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e657220697320300000604482015260640161099d565b600280546001600160a01b0319166001600160a01b0384161790556142d6816142da565b5050565b6001546001600160a01b0316156143135760015460405163fcdbf2d960e01b81526001600160a01b03909116600482015260240161099d565b6001600160a01b03811661433a5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036143705760405163fdeac91f60e01b81526001600160a01b038216600482015260240161099d565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152632eaf856d60e11b60048201526301ffc9a790602401602060405180830381865afa9250505080156143ea575060408051601f3d908101601f191682019092526143e791810190614c65565b60015b6144125760405163fdeac91f60e01b81526001600160a01b038216600482015260240161099d565b806142d65760405163fdeac91f60e01b81526001600160a01b038316600482015260240161099d565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b031681526020016144b2604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561450957600080fd5b81356001600160e01b03198116811461292b57600080fd5b6001600160c01b03198116811461026557600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561456f5761456f614537565b60405290565b60405160e081016001600160401b038111828210171561456f5761456f614537565b60405161020081016001600160401b038111828210171561456f5761456f614537565b60405161016081016001600160401b038111828210171561456f5761456f614537565b60405161010081016001600160401b038111828210171561456f5761456f614537565b60405161012081016001600160401b038111828210171561456f5761456f614537565b604051601f8201601f191681016001600160401b038111828210171561464b5761464b614537565b604052919050565b60006001600160401b0382111561466c5761466c614537565b50601f01601f191660200190565b600082601f83011261468b57600080fd5b813561469e61469982614653565b614623565b8181528460208386010111156146b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156146e357600080fd5b82356146ee81614521565b915060208301356001600160401b0381111561470957600080fd5b6147158582860161467a565b9150509250929050565b6001600160601b038116811461026557600080fd5b60006020828403121561474657600080fd5b813561292b8161471f565b60005b8381101561476c578181015183820152602001614754565b50506000910152565b6000815180845261478d816020860160208601614751565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c085015261308e60e0850182614775565b60408152600061482560408301856147a1565b8281036020840152612ad68185614775565b60208152600061292b6020830184614775565b6001600160a01b038116811461026557600080fd5b60006020828403121561487157600080fd5b813561292b8161484a565b62ffffff8116811461026557600080fd5b60006020828403121561489f57600080fd5b813561292b8161487c565b64ffffffffff8116811461026557600080fd5b600080604083850312156148d057600080fd5b82356148db8161471f565b915060208301356148eb816148aa565b809150509250929050565b6000806040838503121561490957600080fd5b50508035926020909101359150565b801515811461026557600080fd5b60008060006060848603121561493b57600080fd5b83356149468161471f565b9250602084013561495681614918565b91506040840135614966816148aa565b809150509250925092565b60ff8116811461026557600080fd5b6000806040838503121561499357600080fd5b823561499e81614521565b915060208301356148eb81614971565b60008060008060008060c087890312156149c757600080fd5b86356149d281614521565b9550602087013594506040870135935060608701356001600160401b038111156149fb57600080fd5b614a0789828a0161467a565b9350506080870135614a188161471f565b915060a0870135614a2881614521565b809150509295509295509295565b600080600060608486031215614a4b57600080fd5b8335614a568161484a565b92506020840135614a668161484a565b915060408401356001600160401b03811115614a8157600080fd5b614a8d8682870161467a565b9150509250925092565b600060408284031215614aa957600080fd5b614ab161454d565b9050813581526020820135602082015292915050565b60008060808385031215614ada57600080fd5b614ae48484614a97565b9150614af38460408501614a97565b90509250929050565b600060208284031215614b0e57600080fd5b5035919050565b600080600080600080600060e0888a031215614b3057600080fd5b8735614b3b8161484a565b96506020880135614b4b81614521565b9550604088013594506060880135935060808801356001600160401b03811115614b7457600080fd5b614b808a828b0161467a565b93505060a0880135614b918161471f565b915060c0880135614ba181614521565b8091505092959891949750929550565b6001600160601b038151168252600060208201516040602085015261308e6040850182614775565b6001600160401b0360c01b8316815260406020820152600061308e6040830184614bb1565b600060208284031215614c1057600080fd5b815161292b8161487c565b600181811c90821680614c2f57607f821691505b602082108103614c4f57634e487b7160e01b600052602260045260246000fd5b50919050565b8051614c6081614918565b919050565b600060208284031215614c7757600080fd5b815161292b81614918565b8051614c608161471f565b600060208284031215614c9f57600080fd5b815161292b8161471f565b600060208284031215614cbc57600080fd5b815161292b8161484a565b8051614c6081614971565b8051614c608161484a565b600082601f830112614cee57600080fd5b8151614cfc61469982614653565b818152846020838601011115614d1157600080fd5b61308e826020830160208701614751565b600060e08284031215614d3457600080fd5b614d3c614575565b9050614d4782614c82565b8152614d5560208301614c82565b6020820152614d6660408301614cc7565b6040820152614d7760608301614c55565b6060820152614d8860808301614cd2565b6080820152614d9960a08301614cd2565b60a082015260c08201516001600160401b03811115614db757600080fd5b614dc384828501614cdd565b60c08301525092915050565b60008060408385031215614de257600080fd5b82516001600160401b0380821115614df957600080fd5b614e0586838701614d22565b93506020850151915080821115614e1b57600080fd5b5061471585828601614cdd565b8051614c6081614521565b805161ffff81168114614c6057600080fd5b8051614c60816148aa565b600060208284031215614e6257600080fd5b81516001600160401b0380821115614e7957600080fd5b908301906102008286031215614e8e57600080fd5b614e96614597565b614e9f83614c82565b8152614ead60208401614c82565b6020820152614ebe60408401614e28565b6040820152614ecf60608401614e28565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115614f1057600080fd5b614f1c88828701614cdd565b8284015250506101208084015183811115614f3657600080fd5b614f4288828701614cdd565b8284015250506101409150614f58828401614e33565b828201526101609150614f6c828401614e33565b82820152610180915081830151828201526101a09150614f8d828401614e45565b828201526101c09150614fa1828401614e45565b828201526101e09150614fb5828401614e45565b91810191909152949350505050565b600060208284031215614fd657600080fd5b815161292b816148aa565b80516001600160601b031682526000610200602083015161500d60208601826001600160601b03169052565b50604083015161502960408601826001600160c01b0319169052565b50606083015161504560608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151828287015261508683870182614775565b9250505061012080840151858303828701526150a28382614775565b92505050610140808401516150bc8287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b03841681526060602082015260006151326060830185614fe1565b905060ff83166040830152949350505050565b60006020828403121561515757600080fd5b5051919050565b60006020828403121561517057600080fd5b815161292b81614971565b60006040828403121561518d57600080fd5b61519561454d565b9050815181526020820151602082015292915050565b600061022082840312156151be57600080fd5b6151c66145ba565b6151cf83614cd2565b81526151dd60208401614cd2565b60208201526151ee60408401614c82565b60408201526151ff60608401614c82565b6060820152615211846080850161517b565b60808201526152238460c0850161517b565b60a08201526101006152378582860161517b565b60c083015261014061524b8682870161517b565b60e084015261525e86610180870161517b565b82840152615270866101c0870161517b565b6101208401526152836102008601614cd2565b90830152509392505050565b808201808211156112dc57634e487b7160e01b600052601160045260246000fd5b60006001600160601b038087168352808616602084015250608060408301526152e56080830185516001600160601b03169052565b602084810151805160a0850152015160c0830152604084015161014060e084018190526153166101c0850183614775565b915060608601516101008181870152608088015161012087015260a08801518387015260c088015161016087015260e0880151925061535f61018087018464ffffffffff169052565b87015164ffffffffff81166101a087015291506153799050565b5060ff841660608401529050612ad6565b6000610160828403121561539d57600080fd5b6153a56145dd565b6153ae83614c82565b81526153bc60208401614cd2565b6020820152604083015160408201526153d8846060850161517b565b60608201526153ea8460a0850161517b565b60808201526153fc8460e0850161517b565b60a082015261540e6101208401614c55565b60c08201526154206101408401614cd2565b60e08201529392505050565b60006020828403121561543e57600080fd5b81516001600160401b038082111561545557600080fd5b908301906040828603121561546957600080fd5b61547161454d565b825161547c8161471f565b815260208301518281111561549057600080fd5b61549c87828601614cdd565b60208301525095945050505050565b6001600160401b0360c01b841681526060602082015260006151326060830185614bb1565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006155016080830184614775565b9695505050505050565b6001600160401b038116811461026557600080fd5b60006020828403121561553257600080fd5b815161292b8161550b565b80516001600160a01b03168252602081015161556460208401826001600160a01b03169052565b50604081015161557f60408401826001600160601b03169052565b50606081015161559a60608401826001600160601b03169052565b5060808101516155b7608084018280518252602090810151910152565b5060a0810151805160c0840152602081015160e08401525060c08101516101006155ed8185018380518252602090810151910152565b60e0830151915061014061560d8186018480518252602090810151910152565b9083015180516101808601526020908101516101a086015261012084015180516101c087015201516101e08501528201516001600160a01b0381166102008501529050505050565b505050565b6001600160601b03841681526102608101615678602083018561553d565b60ff8316610240830152949350505050565b634e487b7160e01b600052603260045260246000fd5b60208152600061292b60208301846147a1565b6001600160601b038316815260406020820152600061308e6040830184614fe1565b6000602082840312156156e757600080fd5b81516001600160401b038111156156fd57600080fd5b61308e84828501614d22565b6001600160601b0383168152610240810161292b602083018461553d565b60006020828403121561573957600080fd5b81516001600160401b038082111561575057600080fd5b90830190610140828603121561576557600080fd5b61576d614600565b61577683614c82565b8152615785866020850161517b565b602082015260608301518281111561579c57600080fd5b6157a887828601614cdd565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c082015261010091506157e6828401614e45565b60e0820152614fb56101208401614e45565b8151815260208083015190820152604081016112dc565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000806040838503121561584657600080fd5b505080516020909101519092909150565b6001600160601b03851681526080602082015260006158796080830186614775565b828103604084015261588b8186614775565b91505082606083015295945050505050565b600060c082840312156158af57600080fd5b60405160a081018181106001600160401b03821117156158d1576158d1614537565b60405282516158df8161471f565b815260208301516158ef8161484a565b6020820152615901846040850161517b565b6040820152608083015161591481614918565b606082015260a08301516159278161484a565b60808201529392505050565b6000806040838503121561594657600080fd5b82516159518161484a565b60208401519092506148eb8161484a565b6040815260006159756040830185614775565b905060ff831660208301529392505050565b634e487b7160e01b600052601260045260246000fd5b601f82111561565557600081815260208120601f850160051c810160208610156159c45750805b601f850160051c820191505b81811015611f53578281556001016159d0565b81516001600160401b038111156159fc576159fc614537565b615a1081615a0a8454614c1b565b8461599d565b602080601f831160018114615a455760008415615a2d5750858301515b600019600386901b1c1916600185901b178555611f53565b600085815260208120601f198616915b82811015615a7457888601518255948401946001909101908401615a55565b5085821015615a925787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220405c60f953871e86a40f7fb2c14f8ea059d68b889086e609ec82420973f3f25964736f6c63430008140033",
757
+ "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6132a9806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063893d20e8116100c3578063b6b412ba1161007c578063b6b412ba14610454578063b88da75914610467578063caf4e3d41461047a578063cc9fc59a14610482578063cde749f41461048a578063cf7a1d771461049257600080fd5b8063893d20e8146103ca5780638f997f6d146103d2578063946dfcfe146103e5578063a745e3df1461040c578063b3c650151461041f578063b68d18091461043f57600080fd5b80634420e486116101155780634420e486146102235780634d459c901461024e5780634f421333146103675780635ab1bd531461037a578063644c45e01461039f5780637cef4842146103b757600080fd5b806301ffc9a71461015d578063095e2b721461019f5780630d8e6e2c146101b45780630fec111c146101d0578063138461e0146101e65780631eff4b22146101ee575b600080fd5b61018a61016b36600461254a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101b26101ad3660046126c8565b6104a5565b005b6101bc61053e565b60405162ffffff9091168152602001610196565b6101d86105c8565b604051610196929190612765565b6101b261074e565b6102157f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610196565b610236610231366004612821565b610970565b6040516001600160601b039091168152602001610196565b61030a61025c36600461284f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061325483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610196565b61018a61037536600461284f565b610b5b565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610196565b600154600160a01b90046001600160601b0316610236565b6101b26103c536600461287b565b610c0e565b610387610c8f565b6101b26103e03660046126c8565b610da8565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610215565b6101b261041a3660046128b2565b610f0b565b610427611065565b6040516001600160401b039091168152602001610196565b606e5b60405160ff9091168152602001610196565b6101b2610462366004612943565b611086565b6101bc610475366004612978565b6111f3565b610387611244565b6103876112e1565b61044261130b565b6101b26104a03660046128b2565b61138e565b6000806104b2606e611497565b81516040805180820182526001600160601b03831681526020810188905290516317b0844560e11b8152939550919350916001600160a01b03841690632f61088a9061050490899085906004016129c1565b600060405180830381600087803b15801561051e57600080fd5b505af1158015610532573d6000803e3d6000fd5b50505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c391906129e6565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810191909152606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061064f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610697610c8f565b6001600160a01b031681526020018260010180546106b490612a03565b80601f01602080910402602001604051908101604052809291908181526020018280546106e090612a03565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190612a4d565b1561081b576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108445760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612a4d565b6108d9576040516372657a5160e01b81526001600160a01b0382166004820152602401610812565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109479190612a7f565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008080808061098986606e610984611739565b6117b1565b935093509350935060008061099c611244565b604051635d96628960e01b81526001600160a01b03888116600483015287811660248301529190911690635d966289906044016000604051808303816000875af11580156109ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a169190810190612bad565b91509150856001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b5050505081600001519650600080610a8083611b80565b6040516348ffb75560e11b815291935091506001600160a01b038716906391ff6eaa90610ab3908c908590600401612d2c565b600060405180830381600087803b158015610acd57600080fd5b505af1158015610ae1573d6000803e3d6000fd5b50505050610aed6112e1565b6001600160a01b03166386ebbf42868c856040518463ffffffff1660e01b8152600401610b1c93929190612d4a565b600060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050505050505050505050919050565b60008060008051602061325483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190612d7d565b1192915050565b6000610c1a606e611497565b604051633e77a42160e11b81526001600160c01b03198616600482015260ff851660248201529092506001600160a01b0383169150637cef484290604401600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b50505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d189190612a4d565b15610d9857600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190612d96565b506002546001600160a01b031690565b6000610db4606e611497565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612d96565b60405163887b1fa960e01b81526001600160c01b0319861660048201529091506000906001600160a01b0383169063887b1fa990602401600060405180830381865afa158015610e6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e979190810190612db3565b602081018590526040516314eddc0360e31b81529091506001600160a01b0384169063a76ee01890610ed2908890859060ff90600401612e30565b600060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610f2d61053e565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f919190612e7d565b6000805160206132348339815191528054600160401b900460ff1680610fc4575080546001600160401b03808416911610155b15610fe25760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561100d8585611c5b565b61101683611efa565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105c3600080516020613234833981519152546001600160401b031690565b600080611093606e611497565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612d96565b835160405163242bdc1960e21b81526001600160601b0382166004820152919250906000906001600160a01b038416906390af70649060240161024060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190612fc2565b60a0810188905260c081018790526040516354e750a160e11b81529091506001600160a01b0385169063a9cea142906111b8908590859060ff90600401612fdf565b600060405180830381600087803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b5050505050505050505050565b600060008051602061325483398151915260010182815481106112185761121861300f565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000806112596001546001600160a01b031690565b6001600160a01b031663d39e604360285b61127261130b565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156112b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db9190612d96565b92915050565b6000806112f66001546001600160a01b031690565b6001600160a01b031663d39e6043604661126a565b600061131561053e565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561136a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190613025565b6000805160206132348339815191528054600160401b810460ff1615906001600160401b03166000811580156113c15750825b90506000826001600160401b031660011480156113dd5750303b155b9050811580156113eb575080155b156114095760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561143357845460ff60401b1916600160401b1785555b61143d8888611c5b565b6114478787611f02565b831561148d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260015490919081906001600160a01b03166040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015611526573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261154e9190810190613042565b925061156483604001518560ff90811691161490565b6115a65760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b6044820152606401610812565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156115fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116249190810190613042565b6080015190508092506000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116919190612d96565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117029190612a4d565b1561173157608085015160405163d53987e560e01b81526001600160a01b039091166004820152602401610812565b505050915091565b6040516368aebf7b60e01b8152610190600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af415801561178d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190612e7d565b600154604051636939560f60e11b81526001600160a01b038581166004830152600092339284928392839291169063d272ac1e90602401602060405180830381865afa158015611805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118299190612a7f565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a89190612a4d565b156118df5760405162b8422b60e71b81526001600160a01b03891660048201526001600160601b0382166024820152604401610812565b6040516301ffc9a760e01b8152635164f3d960e01b60048201528895506001600160a01b038616906301ffc9a790602401602060405180830381865afa15801561192d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119519190612a4d565b611979576040516359bff0e360e11b81526001600160a01b0389166004820152602401610812565b6000856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156119b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e19190810190612bad565b5090506119f981604001518960ff9081169116141590565b15611a39576040808201519051634a2e948760e11b81526001600160a01b038b16600482015260ff808b1660248301529091166044820152606401610812565b60a08101516001600160a01b0386811690821614611a8b5760a0820151604051632b50a20960e21b81526001600160a01b03808d16600483015291821660248201529087166044820152606401610812565b81602001519350611a9b846120d1565b94506000611aa76112e1565b60405163081deaed60e11b81526001600160a01b0389811660048301526001600160401b038c1660248301528881166044830152919091169063103bd5da90606401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612a4d565b905080611b7357604051636af540d960e01b81526001600160601b03861660048201526001600160401b038a1660248201526001600160a01b0388166044820152606401610812565b5050505093509350935093565b6060611c3d604080516101808101825260008082526020808301829052828401829052606083018290528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e084015283518085018552828152808201839052610100840152835180850190945281845283015290610120820190815260006020820181905260409091015290565b82806020019051810190611c519190613076565b9094909350915050565b611c63612168565b6000805160206132548339815191526000611c93600080516020613234833981519152546001600160401b031690565b90506000611c9f61053e565b9050816001600160401b0316600103611ccc5760028301805462ffffff191662ffffff8316179055611d1a565b600283015462ffffff90811690821611611d1a5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610812565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df291906130d0565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906110569083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b610158612168565b6000805160206132348339815191528054600160401b810460ff1615906001600160401b0316600081158015611f355750825b90506000826001600160401b03166001148015611f515750303b155b905081158015611f5f575080155b15611f7d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611fa757845460ff60401b1916600160401b1785555b60008087806020019051810190611fbe91906130f7565b9092509050611fcd828a6121a1565b6001546001600160a01b031663d39e6043608c611fe861130b565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120519190612d96565b600380546001600160a01b0319166001600160a01b03929092169190911790556120816308bcea6160e01b61220c565b50508315610c8657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b6000806120e66001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03851660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612135573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215d9190810190613042565b608001519392505050565b60008051602061323483398151915254600160401b900460ff1661219f57604051631afcd79f60e31b815260040160405180910390fd5b565b6000606e6121ad61130b565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006121e284612231565b905060006121f58583603c84888861229c565b612205637b6a51fd60e01b61220c565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db9190612a7f565b6122dd6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6122e78287612368565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016123578382613174565b50610c866303fb044760e21b61220c565b6001600160a01b0382166123be5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610812565b600280546001600160a01b0319166001600160a01b0384161790556123e2816123e6565b5050565b6001546001600160a01b03161561241f5760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610812565b6001600160a01b0381166124465760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b60000361247c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610812565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa9250505080156124f6575060408051601f3d908101601f191682019092526124f391810190612a4d565b60015b61251e5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610812565b806123e25760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610812565b50565b60006020828403121561255c57600080fd5b81356001600160e01b03198116811461257457600080fd5b9392505050565b80356001600160c01b03198116811461259357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156125d0576125d0612598565b60405290565b60405160e081016001600160401b03811182821017156125d0576125d0612598565b60405161018081016001600160401b03811182821017156125d0576125d0612598565b604051601f8201601f191681016001600160401b038111828210171561264357612643612598565b604052919050565b60006001600160401b0382111561266457612664612598565b50601f01601f191660200190565b600082601f83011261268357600080fd5b81356126966126918261264b565b61261b565b8181528460208386010111156126ab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156126db57600080fd5b6126e48361257b565b915060208301356001600160401b038111156126ff57600080fd5b61270b85828601612672565b9150509250929050565b60005b83811015612730578181015183820152602001612718565b50506000910152565b60008151808452612751816020860160208601612715565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff604085015116608083015260608401516127a960a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526127ef610120840182612739565b905082810360208401526128038185612739565b95945050505050565b6001600160a01b038116811461254757600080fd5b60006020828403121561283357600080fd5b81356125748161280c565b62ffffff8116811461254757600080fd5b60006020828403121561286157600080fd5b81356125748161283e565b60ff8116811461254757600080fd5b6000806040838503121561288e57600080fd5b6128978361257b565b915060208301356128a78161286c565b809150509250929050565b6000806000606084860312156128c757600080fd5b83356128d28161280c565b925060208401356128e28161280c565b915060408401356001600160401b038111156128fd57600080fd5b61290986828701612672565b9150509250925092565b60006040828403121561292557600080fd5b61292d6125ae565b9050813581526020820135602082015292915050565b6000806080838503121561295657600080fd5b6129608484612913565b915061296f8460408501612913565b90509250929050565b60006020828403121561298a57600080fd5b5035919050565b6001600160601b03815116825260006020820151604060208501526129b96040850182612739565b949350505050565b6001600160401b0360c01b831681526040602082015260006129b96040830184612991565b6000602082840312156129f857600080fd5b81516125748161283e565b600181811c90821680612a1757607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b50919050565b8051801515811461259357600080fd5b600060208284031215612a5f57600080fd5b61257482612a3d565b80516001600160601b038116811461259357600080fd5b600060208284031215612a9157600080fd5b61257482612a68565b80516125938161286c565b80516125938161280c565b6000612abe6126918461264b565b9050828152838383011115612ad257600080fd5b612574836020830184612715565b600082601f830112612af157600080fd5b61257483835160208501612ab0565b600060e08284031215612b1257600080fd5b612b1a6125d6565b9050612b2582612a68565b8152612b3360208301612a68565b6020820152612b4460408301612a9a565b6040820152612b5560608301612a3d565b6060820152612b6660808301612aa5565b6080820152612b7760a08301612aa5565b60a082015260c08201516001600160401b03811115612b9557600080fd5b612ba184828501612ae0565b60c08301525092915050565b60008060408385031215612bc057600080fd5b82516001600160401b0380821115612bd757600080fd5b612be386838701612b00565b93506020850151915080821115612bf957600080fd5b5061270b85828601612ae0565b80516001600160a01b031682526020810151612c2d60208401826001600160a01b03169052565b506040810151612c4860408401826001600160601b03169052565b506060810151612c6360608401826001600160601b03169052565b506080810151612c80608084018280518252602090810151910152565b5060a0810151805160c0840152602081015160e08401525060c0810151610100612cb68185018380518252602090810151910152565b60e08301519150610140612cd68186018480518252602090810151910152565b9083015180516101808601526020908101516101a086015261012084015180516101c087015201516101e085015282015115156102008401525061016001516001600160a01b031661022090910152565b505050565b6001600160601b038316815261026081016125746020830184612c06565b6001600160601b03841681526001600160a01b038316602082015260606040820181905260009061280390830184612739565b600060208284031215612d8f57600080fd5b5051919050565b600060208284031215612da857600080fd5b81516125748161280c565b600060208284031215612dc557600080fd5b81516001600160401b0380821115612ddc57600080fd5b9083019060408286031215612df057600080fd5b612df86125ae565b612e0183612a68565b8152602083015182811115612e1557600080fd5b612e2187828601612ae0565b60208301525095945050505050565b6001600160401b0360c01b84168152606060208201526000612e556060830185612991565b905060ff83166040830152949350505050565b6001600160401b038116811461254757600080fd5b600060208284031215612e8f57600080fd5b815161257481612e68565b600060408284031215612eac57600080fd5b612eb46125ae565b9050815181526020820151602082015292915050565b60006102408284031215612edd57600080fd5b612ee56125f8565b9050612ef082612aa5565b8152612efe60208301612aa5565b6020820152612f0f60408301612a68565b6040820152612f2060608301612a68565b6060820152612f328360808401612e9a565b6080820152612f448360c08401612e9a565b60a0820152610100612f5884828501612e9a565b60c0830152610140612f6c85828601612e9a565b60e0840152612f7f856101808601612e9a565b82840152612f91856101c08601612e9a565b610120840152612fa46102008501612a3d565b9083015250612fb66102208301612aa5565b61016082015292915050565b60006102408284031215612fd557600080fd5b6125748383612eca565b6001600160601b03841681526102808101612ffd6020830185612c06565b60ff8316610260830152949350505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561303757600080fd5b81516125748161286c565b60006020828403121561305457600080fd5b81516001600160401b0381111561306a57600080fd5b6129b984828501612b00565b600080610260838503121561308a57600080fd5b82516001600160401b038111156130a057600080fd5b8301601f810185136130b157600080fd5b6130c085825160208401612ab0565b92505061296f8460208501612eca565b6000602082840312156130e257600080fd5b815164ffffffffff8116811461257457600080fd5b6000806040838503121561310a57600080fd5b82516131158161280c565b60208401519092506128a78161280c565b601f821115612d2757600081815260208120601f850160051c8101602086101561314d5750805b601f850160051c820191505b8181101561316c57828155600101613159565b505050505050565b81516001600160401b0381111561318d5761318d612598565b6131a18161319b8454612a03565b84613126565b602080601f8311600181146131d657600084156131be5750858301515b600019600386901b1c1916600185901b17855561316c565b600085815260208120601f198616915b82811015613205578886015182559484019460019091019084016131e6565b50858210156132235787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220f0e918cb38c17462a2eb0016b0034b53fb596242b74ba9904979874f1eaa115064736f6c63430008140033",
758
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063893d20e8116100c3578063b6b412ba1161007c578063b6b412ba14610454578063b88da75914610467578063caf4e3d41461047a578063cc9fc59a14610482578063cde749f41461048a578063cf7a1d771461049257600080fd5b8063893d20e8146103ca5780638f997f6d146103d2578063946dfcfe146103e5578063a745e3df1461040c578063b3c650151461041f578063b68d18091461043f57600080fd5b80634420e486116101155780634420e486146102235780634d459c901461024e5780634f421333146103675780635ab1bd531461037a578063644c45e01461039f5780637cef4842146103b757600080fd5b806301ffc9a71461015d578063095e2b721461019f5780630d8e6e2c146101b45780630fec111c146101d0578063138461e0146101e65780631eff4b22146101ee575b600080fd5b61018a61016b36600461254a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101b26101ad3660046126c8565b6104a5565b005b6101bc61053e565b60405162ffffff9091168152602001610196565b6101d86105c8565b604051610196929190612765565b6101b261074e565b6102157f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610196565b610236610231366004612821565b610970565b6040516001600160601b039091168152602001610196565b61030a61025c36600461284f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061325483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610196565b61018a61037536600461284f565b610b5b565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610196565b600154600160a01b90046001600160601b0316610236565b6101b26103c536600461287b565b610c0e565b610387610c8f565b6101b26103e03660046126c8565b610da8565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610215565b6101b261041a3660046128b2565b610f0b565b610427611065565b6040516001600160401b039091168152602001610196565b606e5b60405160ff9091168152602001610196565b6101b2610462366004612943565b611086565b6101bc610475366004612978565b6111f3565b610387611244565b6103876112e1565b61044261130b565b6101b26104a03660046128b2565b61138e565b6000806104b2606e611497565b81516040805180820182526001600160601b03831681526020810188905290516317b0844560e11b8152939550919350916001600160a01b03841690632f61088a9061050490899085906004016129c1565b600060405180830381600087803b15801561051e57600080fd5b505af1158015610532573d6000803e3d6000fd5b50505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c391906129e6565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810191909152606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061064f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610697610c8f565b6001600160a01b031681526020018260010180546106b490612a03565b80601f01602080910402602001604051908101604052809291908181526020018280546106e090612a03565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190612a4d565b1561081b576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108445760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612a4d565b6108d9576040516372657a5160e01b81526001600160a01b0382166004820152602401610812565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109479190612a7f565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008080808061098986606e610984611739565b6117b1565b935093509350935060008061099c611244565b604051635d96628960e01b81526001600160a01b03888116600483015287811660248301529190911690635d966289906044016000604051808303816000875af11580156109ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a169190810190612bad565b91509150856001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b5050505081600001519650600080610a8083611b80565b6040516348ffb75560e11b815291935091506001600160a01b038716906391ff6eaa90610ab3908c908590600401612d2c565b600060405180830381600087803b158015610acd57600080fd5b505af1158015610ae1573d6000803e3d6000fd5b50505050610aed6112e1565b6001600160a01b03166386ebbf42868c856040518463ffffffff1660e01b8152600401610b1c93929190612d4a565b600060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050505050505050505050919050565b60008060008051602061325483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190612d7d565b1192915050565b6000610c1a606e611497565b604051633e77a42160e11b81526001600160c01b03198616600482015260ff851660248201529092506001600160a01b0383169150637cef484290604401600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b50505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d189190612a4d565b15610d9857600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190612d96565b506002546001600160a01b031690565b6000610db4606e611497565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612d96565b60405163887b1fa960e01b81526001600160c01b0319861660048201529091506000906001600160a01b0383169063887b1fa990602401600060405180830381865afa158015610e6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e979190810190612db3565b602081018590526040516314eddc0360e31b81529091506001600160a01b0384169063a76ee01890610ed2908890859060ff90600401612e30565b600060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610f2d61053e565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f919190612e7d565b6000805160206132348339815191528054600160401b900460ff1680610fc4575080546001600160401b03808416911610155b15610fe25760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561100d8585611c5b565b61101683611efa565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105c3600080516020613234833981519152546001600160401b031690565b600080611093606e611497565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612d96565b835160405163242bdc1960e21b81526001600160601b0382166004820152919250906000906001600160a01b038416906390af70649060240161024060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190612fc2565b60a0810188905260c081018790526040516354e750a160e11b81529091506001600160a01b0385169063a9cea142906111b8908590859060ff90600401612fdf565b600060405180830381600087803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b5050505050505050505050565b600060008051602061325483398151915260010182815481106112185761121861300f565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000806112596001546001600160a01b031690565b6001600160a01b031663d39e604360285b61127261130b565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156112b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db9190612d96565b92915050565b6000806112f66001546001600160a01b031690565b6001600160a01b031663d39e6043604661126a565b600061131561053e565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561136a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190613025565b6000805160206132348339815191528054600160401b810460ff1615906001600160401b03166000811580156113c15750825b90506000826001600160401b031660011480156113dd5750303b155b9050811580156113eb575080155b156114095760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561143357845460ff60401b1916600160401b1785555b61143d8888611c5b565b6114478787611f02565b831561148d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260015490919081906001600160a01b03166040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015611526573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261154e9190810190613042565b925061156483604001518560ff90811691161490565b6115a65760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b6044820152606401610812565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156115fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116249190810190613042565b6080015190508092506000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116919190612d96565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117029190612a4d565b1561173157608085015160405163d53987e560e01b81526001600160a01b039091166004820152602401610812565b505050915091565b6040516368aebf7b60e01b8152610190600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af415801561178d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190612e7d565b600154604051636939560f60e11b81526001600160a01b038581166004830152600092339284928392839291169063d272ac1e90602401602060405180830381865afa158015611805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118299190612a7f565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a89190612a4d565b156118df5760405162b8422b60e71b81526001600160a01b03891660048201526001600160601b0382166024820152604401610812565b6040516301ffc9a760e01b8152635164f3d960e01b60048201528895506001600160a01b038616906301ffc9a790602401602060405180830381865afa15801561192d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119519190612a4d565b611979576040516359bff0e360e11b81526001600160a01b0389166004820152602401610812565b6000856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156119b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e19190810190612bad565b5090506119f981604001518960ff9081169116141590565b15611a39576040808201519051634a2e948760e11b81526001600160a01b038b16600482015260ff808b1660248301529091166044820152606401610812565b60a08101516001600160a01b0386811690821614611a8b5760a0820151604051632b50a20960e21b81526001600160a01b03808d16600483015291821660248201529087166044820152606401610812565b81602001519350611a9b846120d1565b94506000611aa76112e1565b60405163081deaed60e11b81526001600160a01b0389811660048301526001600160401b038c1660248301528881166044830152919091169063103bd5da90606401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612a4d565b905080611b7357604051636af540d960e01b81526001600160601b03861660048201526001600160401b038a1660248201526001600160a01b0388166044820152606401610812565b5050505093509350935093565b6060611c3d604080516101808101825260008082526020808301829052828401829052606083018290528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e084015283518085018552828152808201839052610100840152835180850190945281845283015290610120820190815260006020820181905260409091015290565b82806020019051810190611c519190613076565b9094909350915050565b611c63612168565b6000805160206132548339815191526000611c93600080516020613234833981519152546001600160401b031690565b90506000611c9f61053e565b9050816001600160401b0316600103611ccc5760028301805462ffffff191662ffffff8316179055611d1a565b600283015462ffffff90811690821611611d1a5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610812565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df291906130d0565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906110569083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b610158612168565b6000805160206132348339815191528054600160401b810460ff1615906001600160401b0316600081158015611f355750825b90506000826001600160401b03166001148015611f515750303b155b905081158015611f5f575080155b15611f7d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611fa757845460ff60401b1916600160401b1785555b60008087806020019051810190611fbe91906130f7565b9092509050611fcd828a6121a1565b6001546001600160a01b031663d39e6043608c611fe861130b565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120519190612d96565b600380546001600160a01b0319166001600160a01b03929092169190911790556120816308bcea6160e01b61220c565b50508315610c8657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b6000806120e66001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03851660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612135573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215d9190810190613042565b608001519392505050565b60008051602061323483398151915254600160401b900460ff1661219f57604051631afcd79f60e31b815260040160405180910390fd5b565b6000606e6121ad61130b565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006121e284612231565b905060006121f58583603c84888861229c565b612205637b6a51fd60e01b61220c565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db9190612a7f565b6122dd6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6122e78287612368565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016123578382613174565b50610c866303fb044760e21b61220c565b6001600160a01b0382166123be5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610812565b600280546001600160a01b0319166001600160a01b0384161790556123e2816123e6565b5050565b6001546001600160a01b03161561241f5760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610812565b6001600160a01b0381166124465760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b60000361247c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610812565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa9250505080156124f6575060408051601f3d908101601f191682019092526124f391810190612a4d565b60015b61251e5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610812565b806123e25760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610812565b50565b60006020828403121561255c57600080fd5b81356001600160e01b03198116811461257457600080fd5b9392505050565b80356001600160c01b03198116811461259357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156125d0576125d0612598565b60405290565b60405160e081016001600160401b03811182821017156125d0576125d0612598565b60405161018081016001600160401b03811182821017156125d0576125d0612598565b604051601f8201601f191681016001600160401b038111828210171561264357612643612598565b604052919050565b60006001600160401b0382111561266457612664612598565b50601f01601f191660200190565b600082601f83011261268357600080fd5b81356126966126918261264b565b61261b565b8181528460208386010111156126ab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156126db57600080fd5b6126e48361257b565b915060208301356001600160401b038111156126ff57600080fd5b61270b85828601612672565b9150509250929050565b60005b83811015612730578181015183820152602001612718565b50506000910152565b60008151808452612751816020860160208601612715565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff604085015116608083015260608401516127a960a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526127ef610120840182612739565b905082810360208401526128038185612739565b95945050505050565b6001600160a01b038116811461254757600080fd5b60006020828403121561283357600080fd5b81356125748161280c565b62ffffff8116811461254757600080fd5b60006020828403121561286157600080fd5b81356125748161283e565b60ff8116811461254757600080fd5b6000806040838503121561288e57600080fd5b6128978361257b565b915060208301356128a78161286c565b809150509250929050565b6000806000606084860312156128c757600080fd5b83356128d28161280c565b925060208401356128e28161280c565b915060408401356001600160401b038111156128fd57600080fd5b61290986828701612672565b9150509250925092565b60006040828403121561292557600080fd5b61292d6125ae565b9050813581526020820135602082015292915050565b6000806080838503121561295657600080fd5b6129608484612913565b915061296f8460408501612913565b90509250929050565b60006020828403121561298a57600080fd5b5035919050565b6001600160601b03815116825260006020820151604060208501526129b96040850182612739565b949350505050565b6001600160401b0360c01b831681526040602082015260006129b96040830184612991565b6000602082840312156129f857600080fd5b81516125748161283e565b600181811c90821680612a1757607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b50919050565b8051801515811461259357600080fd5b600060208284031215612a5f57600080fd5b61257482612a3d565b80516001600160601b038116811461259357600080fd5b600060208284031215612a9157600080fd5b61257482612a68565b80516125938161286c565b80516125938161280c565b6000612abe6126918461264b565b9050828152838383011115612ad257600080fd5b612574836020830184612715565b600082601f830112612af157600080fd5b61257483835160208501612ab0565b600060e08284031215612b1257600080fd5b612b1a6125d6565b9050612b2582612a68565b8152612b3360208301612a68565b6020820152612b4460408301612a9a565b6040820152612b5560608301612a3d565b6060820152612b6660808301612aa5565b6080820152612b7760a08301612aa5565b60a082015260c08201516001600160401b03811115612b9557600080fd5b612ba184828501612ae0565b60c08301525092915050565b60008060408385031215612bc057600080fd5b82516001600160401b0380821115612bd757600080fd5b612be386838701612b00565b93506020850151915080821115612bf957600080fd5b5061270b85828601612ae0565b80516001600160a01b031682526020810151612c2d60208401826001600160a01b03169052565b506040810151612c4860408401826001600160601b03169052565b506060810151612c6360608401826001600160601b03169052565b506080810151612c80608084018280518252602090810151910152565b5060a0810151805160c0840152602081015160e08401525060c0810151610100612cb68185018380518252602090810151910152565b60e08301519150610140612cd68186018480518252602090810151910152565b9083015180516101808601526020908101516101a086015261012084015180516101c087015201516101e085015282015115156102008401525061016001516001600160a01b031661022090910152565b505050565b6001600160601b038316815261026081016125746020830184612c06565b6001600160601b03841681526001600160a01b038316602082015260606040820181905260009061280390830184612739565b600060208284031215612d8f57600080fd5b5051919050565b600060208284031215612da857600080fd5b81516125748161280c565b600060208284031215612dc557600080fd5b81516001600160401b0380821115612ddc57600080fd5b9083019060408286031215612df057600080fd5b612df86125ae565b612e0183612a68565b8152602083015182811115612e1557600080fd5b612e2187828601612ae0565b60208301525095945050505050565b6001600160401b0360c01b84168152606060208201526000612e556060830185612991565b905060ff83166040830152949350505050565b6001600160401b038116811461254757600080fd5b600060208284031215612e8f57600080fd5b815161257481612e68565b600060408284031215612eac57600080fd5b612eb46125ae565b9050815181526020820151602082015292915050565b60006102408284031215612edd57600080fd5b612ee56125f8565b9050612ef082612aa5565b8152612efe60208301612aa5565b6020820152612f0f60408301612a68565b6040820152612f2060608301612a68565b6060820152612f328360808401612e9a565b6080820152612f448360c08401612e9a565b60a0820152610100612f5884828501612e9a565b60c0830152610140612f6c85828601612e9a565b60e0840152612f7f856101808601612e9a565b82840152612f91856101c08601612e9a565b610120840152612fa46102008501612a3d565b9083015250612fb66102208301612aa5565b61016082015292915050565b60006102408284031215612fd557600080fd5b6125748383612eca565b6001600160601b03841681526102808101612ffd6020830185612c06565b60ff8316610260830152949350505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561303757600080fd5b81516125748161286c565b60006020828403121561305457600080fd5b81516001600160401b0381111561306a57600080fd5b6129b984828501612b00565b600080610260838503121561308a57600080fd5b82516001600160401b038111156130a057600080fd5b8301601f810185136130b157600080fd5b6130c085825160208401612ab0565b92505061296f8460208501612eca565b6000602082840312156130e257600080fd5b815164ffffffffff8116811461257457600080fd5b6000806040838503121561310a57600080fd5b82516131158161280c565b60208401519092506128a78161280c565b601f821115612d2757600081815260208120601f850160051c8101602086101561314d5750805b601f850160051c820191505b8181101561316c57828155600101613159565b505050505050565b81516001600160401b0381111561318d5761318d612598565b6131a18161319b8454612a03565b84613126565b602080601f8311600181146131d657600084156131be5750858301515b600019600386901b1c1916600185901b17855561316c565b600085815260208120601f198616915b82811015613205578886015182559484019460019091019084016131e6565b50858210156132235787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220f0e918cb38c17462a2eb0016b0034b53fb596242b74ba9904979874f1eaa115064736f6c63430008140033",
903
759
  "linkReferences": {
904
760
  "contracts/types/Blocknumber.sol": {
905
761
  "BlocknumberLib": [
906
762
  {
907
763
  "length": 20,
908
- "start": 4782
909
- }
910
- ]
911
- },
912
- "contracts/types/Fee.sol": {
913
- "FeeLib": [
914
- {
915
- "length": 20,
916
- "start": 11913
917
- },
918
- {
919
- "length": 20,
920
- "start": 12176
921
- },
922
- {
923
- "length": 20,
924
- "start": 13791
925
- },
926
- {
927
- "length": 20,
928
- "start": 14054
929
- },
930
- {
931
- "length": 20,
932
- "start": 14420
933
- },
934
- {
935
- "length": 20,
936
- "start": 14560
764
+ "start": 3299
937
765
  }
938
766
  ]
939
767
  },
@@ -941,15 +769,15 @@
941
769
  "NftIdLib": [
942
770
  {
943
771
  "length": 20,
944
- "start": 2619
772
+ "start": 2224
945
773
  },
946
774
  {
947
775
  "length": 20,
948
- "start": 6736
776
+ "start": 3572
949
777
  },
950
778
  {
951
779
  "length": 20,
952
- "start": 9888
780
+ "start": 6532
953
781
  }
954
782
  ]
955
783
  },
@@ -957,19 +785,7 @@
957
785
  "RoleIdLib": [
958
786
  {
959
787
  "length": 20,
960
- "start": 16718
961
- },
962
- {
963
- "length": 20,
964
- "start": 16839
965
- },
966
- {
967
- "length": 20,
968
- "start": 16898
969
- },
970
- {
971
- "length": 20,
972
- "start": 16957
788
+ "start": 6285
973
789
  }
974
790
  ]
975
791
  },
@@ -977,31 +793,7 @@
977
793
  "TimestampLib": [
978
794
  {
979
795
  "length": 20,
980
- "start": 4272
981
- },
982
- {
983
- "length": 20,
984
- "start": 4491
985
- },
986
- {
987
- "length": 20,
988
- "start": 6004
989
- },
990
- {
991
- "length": 20,
992
- "start": 14987
993
- }
994
- ]
995
- },
996
- "contracts/types/UFixed.sol": {
997
- "UFixedLib": [
998
- {
999
- "length": 20,
1000
- "start": 4910
1001
- },
1002
- {
1003
- "length": 20,
1004
- "start": 5043
796
+ "start": 7886
1005
797
  }
1006
798
  ]
1007
799
  },
@@ -1009,15 +801,15 @@
1009
801
  "VersionLib": [
1010
802
  {
1011
803
  "length": 20,
1012
- "start": 2141
804
+ "start": 1695
1013
805
  },
1014
806
  {
1015
807
  "length": 20,
1016
- "start": 7497
808
+ "start": 4167
1017
809
  },
1018
810
  {
1019
811
  "length": 20,
1020
- "start": 9375
812
+ "start": 5226
1021
813
  }
1022
814
  ]
1023
815
  }
@@ -1027,35 +819,7 @@
1027
819
  "BlocknumberLib": [
1028
820
  {
1029
821
  "length": 20,
1030
- "start": 4468
1031
- }
1032
- ]
1033
- },
1034
- "contracts/types/Fee.sol": {
1035
- "FeeLib": [
1036
- {
1037
- "length": 20,
1038
- "start": 11599
1039
- },
1040
- {
1041
- "length": 20,
1042
- "start": 11862
1043
- },
1044
- {
1045
- "length": 20,
1046
- "start": 13477
1047
- },
1048
- {
1049
- "length": 20,
1050
- "start": 13740
1051
- },
1052
- {
1053
- "length": 20,
1054
- "start": 14106
1055
- },
1056
- {
1057
- "length": 20,
1058
- "start": 14246
822
+ "start": 2985
1059
823
  }
1060
824
  ]
1061
825
  },
@@ -1063,15 +827,15 @@
1063
827
  "NftIdLib": [
1064
828
  {
1065
829
  "length": 20,
1066
- "start": 2305
830
+ "start": 1910
1067
831
  },
1068
832
  {
1069
833
  "length": 20,
1070
- "start": 6422
834
+ "start": 3258
1071
835
  },
1072
836
  {
1073
837
  "length": 20,
1074
- "start": 9574
838
+ "start": 6218
1075
839
  }
1076
840
  ]
1077
841
  },
@@ -1079,19 +843,7 @@
1079
843
  "RoleIdLib": [
1080
844
  {
1081
845
  "length": 20,
1082
- "start": 16404
1083
- },
1084
- {
1085
- "length": 20,
1086
- "start": 16525
1087
- },
1088
- {
1089
- "length": 20,
1090
- "start": 16584
1091
- },
1092
- {
1093
- "length": 20,
1094
- "start": 16643
846
+ "start": 5971
1095
847
  }
1096
848
  ]
1097
849
  },
@@ -1099,31 +851,7 @@
1099
851
  "TimestampLib": [
1100
852
  {
1101
853
  "length": 20,
1102
- "start": 3958
1103
- },
1104
- {
1105
- "length": 20,
1106
- "start": 4177
1107
- },
1108
- {
1109
- "length": 20,
1110
- "start": 5690
1111
- },
1112
- {
1113
- "length": 20,
1114
- "start": 14673
1115
- }
1116
- ]
1117
- },
1118
- "contracts/types/UFixed.sol": {
1119
- "UFixedLib": [
1120
- {
1121
- "length": 20,
1122
- "start": 4596
1123
- },
1124
- {
1125
- "length": 20,
1126
- "start": 4729
854
+ "start": 7572
1127
855
  }
1128
856
  ]
1129
857
  },
@@ -1131,15 +859,15 @@
1131
859
  "VersionLib": [
1132
860
  {
1133
861
  "length": 20,
1134
- "start": 1827
862
+ "start": 1381
1135
863
  },
1136
864
  {
1137
865
  "length": 20,
1138
- "start": 7183
866
+ "start": 3853
1139
867
  },
1140
868
  {
1141
869
  "length": 20,
1142
- "start": 9061
870
+ "start": 4912
1143
871
  }
1144
872
  ]
1145
873
  }