@tradetrust-yl/token-registry 5.1.2 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/dist/app.js +566 -0
  2. package/dist/artifacts/TitleEscrow.sol/TitleEscrow.json +83 -9
  3. package/dist/artifacts/TitleEscrowFactory.sol/TitleEscrowFactory.json +22 -3
  4. package/dist/artifacts/TradeTrustToken.sol/TradeTrustToken.json +125 -2
  5. package/dist/artifacts/base/RegistryAccess.sol/RegistryAccess.dbg.json +1 -1
  6. package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.dbg.json +1 -1
  7. package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.json +2 -2
  8. package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.dbg.json +1 -1
  9. package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.json +43 -0
  10. package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.dbg.json +1 -1
  11. package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.json +86 -0
  12. package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.dbg.json +1 -1
  13. package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.json +43 -0
  14. package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.dbg.json +1 -1
  15. package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.json +43 -0
  16. package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.dbg.json +1 -1
  17. package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.json +86 -0
  18. package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.dbg.json +1 -1
  19. package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.json +43 -0
  20. package/dist/artifacts/interfaces/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.dbg.json +1 -1
  21. package/dist/artifacts/interfaces/ISBTUpgradeable.sol/ISBTUpgradeable.dbg.json +1 -1
  22. package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.dbg.json +1 -1
  23. package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.json +42 -6
  24. package/dist/artifacts/interfaces/ITitleEscrowFactory.sol/ITitleEscrowFactory.dbg.json +1 -1
  25. package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.dbg.json +1 -1
  26. package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.json +42 -6
  27. package/dist/artifacts/interfaces/ITradeTrustSBT.sol/ITradeTrustSBT.dbg.json +1 -1
  28. package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.dbg.json +1 -1
  29. package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.json +18 -0
  30. package/dist/artifacts/interfaces/ITradeTrustTokenBurnable.sol/ITradeTrustTokenBurnable.dbg.json +1 -1
  31. package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.dbg.json +1 -1
  32. package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.json +18 -0
  33. package/dist/artifacts/interfaces/ITradeTrustTokenRestorable.sol/ITradeTrustTokenRestorable.dbg.json +1 -1
  34. package/dist/artifacts/interfaces/RegistryAccessErrors.sol/RegistryAccessErrors.dbg.json +1 -1
  35. package/dist/artifacts/interfaces/SigHelperErrors.sol/SigHelperErrors.dbg.json +1 -1
  36. package/dist/artifacts/interfaces/TDocDeployerErrors.sol/TDocDeployerErrors.dbg.json +1 -1
  37. package/dist/artifacts/interfaces/TitleEscrowErrors.sol/TitleEscrowErrors.dbg.json +1 -1
  38. package/dist/artifacts/interfaces/TitleEscrowFactoryErrors.sol/TitleEscrowFactoryErrors.dbg.json +1 -1
  39. package/dist/artifacts/interfaces/TitleEscrowSignableErrors.sol/TitleEscrowSignableErrors.dbg.json +1 -1
  40. package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.dbg.json +1 -1
  41. package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.json +5 -0
  42. package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.dbg.json +1 -1
  43. package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +2 -2
  44. package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.dbg.json +1 -1
  45. package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.json +2 -2
  46. package/dist/artifacts/mocks/SigHelperMock.sol/SigHelperMock.dbg.json +1 -1
  47. package/dist/artifacts/mocks/SimpleCaller.sol/SimpleCaller.dbg.json +1 -1
  48. package/dist/artifacts/mocks/TitleEscrowFactoryCallerMock.sol/TitleEscrowFactoryCallerMock.dbg.json +1 -1
  49. package/dist/artifacts/mocks/TitleEscrowFactoryGetterMock.sol/TitleEscrowFactoryGetterMock.dbg.json +1 -1
  50. package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.dbg.json +1 -1
  51. package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.json +83 -9
  52. package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.dbg.json +1 -1
  53. package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.json +125 -2
  54. package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.dbg.json +1 -1
  55. package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.json +87 -8
  56. package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.dbg.json +1 -1
  57. package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.json +88 -2
  58. package/dist/artifacts/utils/SigHelper.sol/SigHelper.dbg.json +1 -1
  59. package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.dbg.json +1 -1
  60. package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.json +2 -2
  61. package/dist/constants/default-address.js +5 -3
  62. package/dist/constants/role-hash.js +5 -3
  63. package/dist/contracts/@openzeppelin/contracts/index.ts +2 -0
  64. package/dist/contracts/@openzeppelin/contracts/metatx/ERC2771Context.js +5 -0
  65. package/dist/contracts/@openzeppelin/contracts/metatx/ERC2771Context.ts +111 -0
  66. package/dist/contracts/@openzeppelin/contracts/metatx/index.js +5 -0
  67. package/dist/contracts/@openzeppelin/contracts/{proxy/utils → metatx}/index.ts +1 -1
  68. package/dist/contracts/@openzeppelin/contracts/proxy/Clones.js +5 -0
  69. package/dist/contracts/@openzeppelin/contracts/proxy/Clones.ts +70 -0
  70. package/dist/contracts/@openzeppelin/contracts/proxy/index.ts +1 -2
  71. package/dist/contracts/@openzeppelin/contracts/utils/Create2.js +5 -0
  72. package/dist/contracts/@openzeppelin/contracts/utils/Create2.ts +70 -0
  73. package/dist/contracts/@openzeppelin/contracts/utils/index.ts +1 -0
  74. package/dist/contracts/@openzeppelin/contracts-upgradeable/index.ts +2 -0
  75. package/dist/contracts/@openzeppelin/{contracts/proxy/utils/Initializable.ts → contracts-upgradeable/metatx/ERC2771ContextUpgradeable.ts} +46 -5
  76. package/dist/contracts/@openzeppelin/contracts-upgradeable/metatx/index.ts +5 -0
  77. package/dist/contracts/contracts/TitleEscrow.ts +62 -12
  78. package/dist/contracts/contracts/TitleEscrowFactory.ts +18 -1
  79. package/dist/contracts/contracts/TradeTrustToken.js +2 -1
  80. package/dist/contracts/contracts/TradeTrustToken.ts +120 -0
  81. package/dist/contracts/contracts/base/TradeTrustSBT.ts +29 -0
  82. package/dist/contracts/contracts/base/TradeTrustTokenBase.js +2 -1
  83. package/dist/contracts/contracts/base/TradeTrustTokenBase.ts +88 -0
  84. package/dist/contracts/contracts/base/TradeTrustTokenBaseURI.ts +29 -0
  85. package/dist/contracts/contracts/base/TradeTrustTokenBurnable.ts +29 -0
  86. package/dist/contracts/contracts/base/TradeTrustTokenMintable.js +2 -1
  87. package/dist/contracts/contracts/base/TradeTrustTokenMintable.ts +88 -0
  88. package/dist/contracts/contracts/base/TradeTrustTokenRestorable.ts +29 -0
  89. package/dist/contracts/contracts/interfaces/ITitleEscrow.ts +30 -12
  90. package/dist/contracts/contracts/interfaces/ITitleEscrowSignable.ts +30 -12
  91. package/dist/contracts/contracts/interfaces/ITradeTrustToken.ts +22 -0
  92. package/dist/contracts/contracts/interfaces/ITradeTrustTokenMintable.ts +22 -1
  93. package/dist/contracts/contracts/mocks/TitleEscrowMock.ts +62 -12
  94. package/dist/contracts/contracts/mocks/TradeTrustTokenMock.js +2 -1
  95. package/dist/contracts/contracts/mocks/TradeTrustTokenMock.ts +120 -0
  96. package/dist/contracts/contracts/presets/TitleEscrowSignable.ts +62 -12
  97. package/dist/contracts/contracts/presets/TradeTrustTokenStandard.js +2 -1
  98. package/dist/contracts/contracts/presets/TradeTrustTokenStandard.ts +88 -0
  99. package/dist/contracts/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +3 -1
  100. package/dist/contracts/factories/@openzeppelin/contracts/index.js +4 -3
  101. package/dist/contracts/factories/@openzeppelin/contracts/index.ts +1 -0
  102. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.js +3 -1
  103. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +3 -1
  104. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/index.js +1 -2
  105. package/dist/contracts/factories/@openzeppelin/contracts/metatx/ERC2771Context__factory.js +45 -0
  106. package/dist/contracts/factories/@openzeppelin/contracts/metatx/ERC2771Context__factory.ts +58 -0
  107. package/dist/contracts/factories/@openzeppelin/contracts/metatx/index.js +12 -0
  108. package/dist/contracts/factories/@openzeppelin/contracts/{proxy/utils → metatx}/index.ts +1 -1
  109. package/dist/contracts/factories/@openzeppelin/contracts/proxy/Clones__factory.js +44 -0
  110. package/dist/contracts/factories/@openzeppelin/contracts/proxy/Clones__factory.ts +70 -0
  111. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.js +4 -2
  112. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +1 -1
  113. package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +3 -1
  114. package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.js +9 -5
  115. package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.ts +1 -1
  116. package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +3 -1
  117. package/dist/contracts/factories/@openzeppelin/contracts/token/index.js +1 -2
  118. package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.js +4 -2
  119. package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.ts +1 -1
  120. package/dist/contracts/factories/@openzeppelin/contracts/utils/Create2__factory.js +44 -0
  121. package/dist/contracts/factories/@openzeppelin/contracts/utils/Create2__factory.ts +70 -0
  122. package/dist/contracts/factories/@openzeppelin/contracts/utils/Errors__factory.js +3 -1
  123. package/dist/contracts/factories/@openzeppelin/contracts/utils/Pausable__factory.js +3 -1
  124. package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.js +12 -2
  125. package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.ts +11 -1
  126. package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +3 -1
  127. package/dist/contracts/factories/@openzeppelin/contracts/utils/index.js +8 -2
  128. package/dist/contracts/factories/@openzeppelin/contracts/utils/index.ts +1 -0
  129. package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +3 -1
  130. package/dist/contracts/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js +3 -1
  131. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.js +3 -1
  132. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +3 -1
  133. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.js +4 -3
  134. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.ts +1 -0
  135. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable__factory.js +63 -0
  136. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable__factory.ts +85 -0
  137. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/index.js +12 -0
  138. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/index.ts +5 -0
  139. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +1 -2
  140. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +3 -1
  141. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.js +3 -1
  142. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +3 -1
  143. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.js +3 -1
  144. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/index.js +1 -2
  145. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.js +3 -1
  146. package/dist/contracts/factories/@openzeppelin/index.js +1 -2
  147. package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.js +23 -7
  148. package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.ts +34 -6
  149. package/dist/contracts/factories/contracts/TitleEscrow__factory.js +72 -12
  150. package/dist/contracts/factories/contracts/TitleEscrow__factory.ts +95 -12
  151. package/dist/contracts/factories/contracts/TradeTrustToken__factory.js +102 -6
  152. package/dist/contracts/factories/contracts/TradeTrustToken__factory.ts +128 -1
  153. package/dist/contracts/factories/contracts/base/RegistryAccess__factory.js +3 -1
  154. package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.js +4 -2
  155. package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.ts +1 -1
  156. package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.js +35 -1
  157. package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.ts +43 -0
  158. package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.js +35 -1
  159. package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.ts +43 -0
  160. package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.js +69 -1
  161. package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.ts +86 -0
  162. package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.js +35 -1
  163. package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.ts +43 -0
  164. package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.js +69 -1
  165. package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.ts +86 -0
  166. package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.js +35 -1
  167. package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.ts +43 -0
  168. package/dist/contracts/factories/contracts/index.js +1 -2
  169. package/dist/contracts/factories/contracts/interfaces/IERC721MetadataUpgradeable__factory.js +3 -1
  170. package/dist/contracts/factories/contracts/interfaces/ISBTUpgradeable__factory.js +3 -1
  171. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowFactory__factory.js +3 -1
  172. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.js +38 -6
  173. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.ts +42 -6
  174. package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.js +38 -6
  175. package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.ts +42 -6
  176. package/dist/contracts/factories/contracts/interfaces/ITradeTrustSBT__factory.js +3 -1
  177. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenBurnable__factory.js +3 -1
  178. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.js +17 -1
  179. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.ts +18 -0
  180. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenRestorable__factory.js +3 -1
  181. package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.js +17 -1
  182. package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.ts +18 -0
  183. package/dist/contracts/factories/contracts/interfaces/RegistryAccessErrors__factory.js +3 -1
  184. package/dist/contracts/factories/contracts/interfaces/SigHelperErrors__factory.js +3 -1
  185. package/dist/contracts/factories/contracts/interfaces/TDocDeployerErrors__factory.js +3 -1
  186. package/dist/contracts/factories/contracts/interfaces/TitleEscrowErrors__factory.js +3 -1
  187. package/dist/contracts/factories/contracts/interfaces/TitleEscrowFactoryErrors__factory.js +3 -1
  188. package/dist/contracts/factories/contracts/interfaces/TitleEscrowSignableErrors__factory.js +3 -1
  189. package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.js +7 -1
  190. package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.ts +5 -0
  191. package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.js +4 -2
  192. package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.ts +1 -1
  193. package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.js +4 -2
  194. package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.ts +1 -1
  195. package/dist/contracts/factories/contracts/mocks/SigHelperMock__factory.js +3 -1
  196. package/dist/contracts/factories/contracts/mocks/SimpleCaller__factory.js +3 -1
  197. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryCallerMock__factory.js +3 -1
  198. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryGetterMock__factory.js +3 -1
  199. package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.js +72 -12
  200. package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.ts +95 -12
  201. package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.js +102 -6
  202. package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.ts +128 -1
  203. package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.js +75 -11
  204. package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.ts +99 -11
  205. package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.js +70 -2
  206. package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.ts +87 -1
  207. package/dist/contracts/factories/contracts/utils/SigHelper__factory.js +3 -1
  208. package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.js +4 -2
  209. package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.ts +1 -1
  210. package/dist/contracts/factories/index.js +1 -2
  211. package/dist/contracts/hardhat.d.ts +70 -16
  212. package/dist/contracts/index.js +29 -2
  213. package/dist/contracts/index.ts +8 -0
  214. package/dist/index.js +1 -2
  215. package/dist/models/common.js +5 -0
  216. package/dist/models/freightForwarder.js +5 -0
  217. package/dist/models/shipOwner.js +5 -0
  218. package/dist/services/admin/adminRepository.js +77 -0
  219. package/dist/services/crypto.js +215 -0
  220. package/dist/services/database.js +36 -0
  221. package/dist/services/freightForwarder/freightForwarderRepository.js +94 -0
  222. package/dist/services/shipOwner/shipOwnerController.js +77 -0
  223. package/dist/services/shipOwner/shipOwnerRepository.js +94 -0
  224. package/dist/services/shipOwner/shipOwnerRoutes.js +18 -0
  225. package/dist/types/app.d.ts +1 -0
  226. package/dist/types/constants/contract-address.d.ts +43 -3
  227. package/dist/types/models/common.d.ts +23 -0
  228. package/dist/types/models/freightForwarder.d.ts +15 -0
  229. package/dist/types/models/shipOwner.d.ts +25 -0
  230. package/dist/types/services/admin/adminRepository.d.ts +9 -0
  231. package/dist/types/services/crypto.d.ts +27 -0
  232. package/dist/types/services/database.d.ts +3 -0
  233. package/dist/types/services/freightForwarder/freightForwarderRepository.d.ts +10 -0
  234. package/dist/types/services/shipOwner/shipOwnerController.d.ts +6 -0
  235. package/dist/types/services/shipOwner/shipOwnerRepository.d.ts +10 -0
  236. package/dist/types/services/shipOwner/shipOwnerRoutes.d.ts +2 -0
  237. package/dist/types/utils/extractFactoryAddress.d.ts +10 -0
  238. package/dist/types/utils/extractTokenAddress.d.ts +10 -0
  239. package/dist/types/utils/get-event-from-receipt.d.ts +1 -1
  240. package/dist/types/utils/index.d.ts +1 -0
  241. package/dist/types/utils/run.d.ts +9 -0
  242. package/dist/utils/compute-interface-id.js +5 -3
  243. package/dist/utils/compute-title-escrow-address.js +5 -3
  244. package/dist/utils/encode-init-params.js +5 -3
  245. package/dist/utils/extractFactoryAddress.js +58 -0
  246. package/dist/utils/extractTokenAddress.js +58 -0
  247. package/dist/utils/get-event-from-receipt.js +5 -3
  248. package/dist/utils/index.js +11 -0
  249. package/dist/utils/run.js +36 -0
  250. package/package.json +16 -3
  251. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.js +0 -37
  252. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts +0 -49
  253. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/index.js +0 -12
  254. /package/dist/contracts/@openzeppelin/{contracts/proxy/utils/Initializable.js → contracts-upgradeable/metatx/ERC2771ContextUpgradeable.js} +0 -0
  255. /package/dist/contracts/@openzeppelin/{contracts/proxy/utils → contracts-upgradeable/metatx}/index.js +0 -0
@@ -38,6 +38,11 @@ const _abi = [
38
38
  name: "escrowFactory",
39
39
  type: "address",
40
40
  },
41
+ {
42
+ internalType: "address",
43
+ name: "trustedForwarder",
44
+ type: "address",
45
+ },
41
46
  ],
42
47
  stateMutability: "nonpayable",
43
48
  type: "constructor",
@@ -93,6 +98,11 @@ const _abi = [
93
98
  name: "NotInitializing",
94
99
  type: "error",
95
100
  },
101
+ {
102
+ inputs: [],
103
+ name: "NotTokenIssuer",
104
+ type: "error",
105
+ },
96
106
  {
97
107
  inputs: [],
98
108
  name: "RemarkLengthExceeded",
@@ -233,6 +243,31 @@ const _abi = [
233
243
  name: "RoleRevoked",
234
244
  type: "event",
235
245
  },
246
+ {
247
+ anonymous: false,
248
+ inputs: [
249
+ {
250
+ indexed: true,
251
+ internalType: "address",
252
+ name: "actor",
253
+ type: "address",
254
+ },
255
+ {
256
+ indexed: true,
257
+ internalType: "uint256",
258
+ name: "tokenId",
259
+ type: "uint256",
260
+ },
261
+ {
262
+ indexed: true,
263
+ internalType: "address",
264
+ name: "accepter",
265
+ type: "address",
266
+ },
267
+ ],
268
+ name: "TokenAccepterAssigned",
269
+ type: "event",
270
+ },
236
271
  {
237
272
  anonymous: false,
238
273
  inputs: [
@@ -466,6 +501,44 @@ const _abi = [
466
501
  stateMutability: "view",
467
502
  type: "function",
468
503
  },
504
+ {
505
+ inputs: [
506
+ {
507
+ internalType: "address",
508
+ name: "forwarder",
509
+ type: "address",
510
+ },
511
+ ],
512
+ name: "isTrustedForwarder",
513
+ outputs: [
514
+ {
515
+ internalType: "bool",
516
+ name: "",
517
+ type: "bool",
518
+ },
519
+ ],
520
+ stateMutability: "view",
521
+ type: "function",
522
+ },
523
+ {
524
+ inputs: [
525
+ {
526
+ internalType: "uint256",
527
+ name: "tokenId",
528
+ type: "uint256",
529
+ },
530
+ ],
531
+ name: "issuerOf",
532
+ outputs: [
533
+ {
534
+ internalType: "address",
535
+ name: "",
536
+ type: "address",
537
+ },
538
+ ],
539
+ stateMutability: "view",
540
+ type: "function",
541
+ },
469
542
  {
470
543
  inputs: [
471
544
  {
@@ -720,6 +793,24 @@ const _abi = [
720
793
  stateMutability: "nonpayable",
721
794
  type: "function",
722
795
  },
796
+ {
797
+ inputs: [
798
+ {
799
+ internalType: "uint256",
800
+ name: "tokenId",
801
+ type: "uint256",
802
+ },
803
+ {
804
+ internalType: "address",
805
+ name: "accepter",
806
+ type: "address",
807
+ },
808
+ ],
809
+ name: "setTokenAccepter",
810
+ outputs: [],
811
+ stateMutability: "nonpayable",
812
+ type: "function",
813
+ },
723
814
  {
724
815
  inputs: [
725
816
  {
@@ -765,6 +856,25 @@ const _abi = [
765
856
  stateMutability: "view",
766
857
  type: "function",
767
858
  },
859
+ {
860
+ inputs: [
861
+ {
862
+ internalType: "uint256",
863
+ name: "tokenId",
864
+ type: "uint256",
865
+ },
866
+ ],
867
+ name: "tokenAccepterOf",
868
+ outputs: [
869
+ {
870
+ internalType: "address",
871
+ name: "",
872
+ type: "address",
873
+ },
874
+ ],
875
+ stateMutability: "view",
876
+ type: "function",
877
+ },
768
878
  {
769
879
  inputs: [
770
880
  {
@@ -812,6 +922,19 @@ const _abi = [
812
922
  stateMutability: "nonpayable",
813
923
  type: "function",
814
924
  },
925
+ {
926
+ inputs: [],
927
+ name: "trustedForwarder",
928
+ outputs: [
929
+ {
930
+ internalType: "address",
931
+ name: "",
932
+ type: "address",
933
+ },
934
+ ],
935
+ stateMutability: "view",
936
+ type: "function",
937
+ },
815
938
  {
816
939
  inputs: [
817
940
  {
@@ -828,7 +951,7 @@ const _abi = [
828
951
  ] as const;
829
952
 
830
953
  const _bytecode =
831
- "0x60c06040523480156200001157600080fd5b5060405162004e2d38038062004e2d83398181016040528101906200003791906200092f565b8282824360a081815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200009883836200008c620000a460201b60201c565b620000ac60201b60201c565b50505050505062000d6f565b600033905090565b6000620000be6200025760201b60201c565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156200010d5750825b9050600060018367ffffffffffffffff1614801562000143575060003073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801562000152575080155b156200018a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315620001db5760018560000160086101000a81548160ff0219169083151502179055505b620001ee8888886200027f60201b60201c565b83156200024d5760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405162000244919062000a2a565b60405180910390a15b5050505050505050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6200028f620002b760201b60201c565b620002a183836200030060201b60201c565b620002b2816200033660201b60201c565b505050565b620002c76200045f60201b60201c565b620002fe576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b62000310620002b760201b60201c565b6200032282826200048760201b60201c565b62000332620004ad60201b60201c565b5050565b62000346620002b760201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620003ad576040517f05bb467c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620003c26000801b82620004cf60201b60201c565b50620003f57f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682620004cf60201b60201c565b50620004287f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad82620004cf60201b60201c565b506200045b7fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb82620004cf60201b60201c565b5050565b6000620004716200025760201b60201c565b60000160089054906101000a900460ff16905090565b62000497620002b760201b60201c565b620004a98282620005ea60201b60201c565b5050565b620004bd620002b760201b60201c565b620004cd6200062260201b60201c565b565b600080620004e26200066660201b60201c565b9050620004f684846200068e60201b60201c565b620005de57600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000579620000a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050620005e4565b60009150505b92915050565b620005fa620002b760201b60201c565b81600090816200060b919062000c88565b5080600190816200061d919062000c88565b505050565b62000632620002b760201b60201c565b6000620006446200070f60201b60201c565b905060008160000160006101000a81548160ff02191690831515021790555050565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b600080620006a16200066660201b60201c565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620007a08262000755565b810181811067ffffffffffffffff82111715620007c257620007c162000766565b5b80604052505050565b6000620007d762000737565b9050620007e5828262000795565b919050565b600067ffffffffffffffff82111562000808576200080762000766565b5b620008138262000755565b9050602081019050919050565b60005b838110156200084057808201518184015260208101905062000823565b60008484015250505050565b6000620008636200085d84620007ea565b620007cb565b90508281526020810184848401111562000882576200088162000750565b5b6200088f84828562000820565b509392505050565b600082601f830112620008af57620008ae6200074b565b5b8151620008c18482602086016200084c565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f782620008ca565b9050919050565b6200090981620008ea565b81146200091557600080fd5b50565b6000815190506200092981620008fe565b92915050565b6000806000606084860312156200094b576200094a62000741565b5b600084015167ffffffffffffffff8111156200096c576200096b62000746565b5b6200097a8682870162000897565b935050602084015167ffffffffffffffff8111156200099e576200099d62000746565b5b620009ac8682870162000897565b9250506040620009bf8682870162000918565b9150509250925092565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600062000a1262000a0c62000a0684620009c9565b620009e7565b620009d3565b9050919050565b62000a2481620009f1565b82525050565b600060208201905062000a41600083018462000a19565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9a57607f821691505b60208210810362000ab05762000aaf62000a52565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000adb565b62000b26868362000adb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b6962000b6362000b5d8462000b3e565b620009e7565b62000b3e565b9050919050565b6000819050919050565b62000b858362000b48565b62000b9d62000b948262000b70565b84845462000ae8565b825550505050565b600090565b62000bb462000ba5565b62000bc181848462000b7a565b505050565b5b8181101562000be95762000bdd60008262000baa565b60018101905062000bc7565b5050565b601f82111562000c385762000c028162000ab6565b62000c0d8462000acb565b8101602085101562000c1d578190505b62000c3562000c2c8562000acb565b83018262000bc6565b50505b505050565b600082821c905092915050565b600062000c5d6000198460080262000c3d565b1980831691505092915050565b600062000c78838362000c4a565b9150826002028217905092915050565b62000c938262000a47565b67ffffffffffffffff81111562000caf5762000cae62000766565b5b62000cbb825462000a81565b62000cc882828562000bed565b600060209050601f83116001811462000d00576000841562000ceb578287015190505b62000cf7858262000c6a565b86555062000d67565b601f19841662000d108662000ab6565b60005b8281101562000d3a5784890151825560018201915060208501945060208101905062000d13565b8683101562000d5a578489015162000d56601f89168262000c4a565b8355505b6001600288020188555050505b505050505050565b60805160a05161409862000d956000396000610e9f0152600061084001526140986000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063ab67aa58116100a2578063d547741f11610071578063d547741f14610593578063df4fbfff146105af578063e2339ea3146105cb578063fe9d9303146105e7576101da565b8063ab67aa58146104f9578063c87b56dd14610515578063d4d92b1414610545578063d539139314610575576101da565b806395d89b41116100de57806395d89b4114610481578063a217fddf1461049f578063a47d1f5e146104bd578063a7f0b3de146104db576101da565b806370a08231146104035780637fb2977d1461043357806391d1485414610451576101da565b80632f2ff15d1161017c5780635c975abb1161014b5780635c975abb146103555780635e089da7146103735780636010a5e7146103a35780636352211e146103d3576101da565b80632f2ff15d146102e3578063325689f9146102ff57806336568abe1461031d57806355f804b314610339576101da565b806314e30d20116101b857806314e30d201461024b578063150b7a02146102675780631e4e009114610297578063248a9ca3146102b3576101da565b806301ffc9a7146101df57806306fdde031461020f57806311d4d7b51461022d575b600080fd5b6101f960048036038101906101f49190612aef565b610603565b6040516102069190612b37565b60405180910390f35b61021761065d565b6040516102249190612be2565b60405180910390f35b6102356106ef565b6040516102429190612c1d565b60405180910390f35b61026560048036038101906102609190612c9d565b610713565b005b610281600480360381019061027c9190612eae565b6107bc565b60405161028e9190612f40565b60405180910390f35b6102b160048036038101906102ac9190612f87565b6107d0565b005b6102cd60048036038101906102c89190612fc7565b6107ec565b6040516102da9190612c1d565b60405180910390f35b6102fd60048036038101906102f89190612ff4565b61081a565b005b61030761083c565b6040516103149190613093565b60405180910390f35b61033760048036038101906103329190612ff4565b610864565b005b610353600480360381019061034e919061314f565b6108df565b005b61035d6108f9565b60405161036a9190612b37565b60405180910390f35b61038d60048036038101906103889190613198565b61091e565b60405161039a9190613207565b60405180910390f35b6103bd60048036038101906103b89190613222565b610b22565b6040516103ca9190613207565b60405180910390f35b6103ed60048036038101906103e891906132aa565b610b6f565b6040516103fa9190613207565b60405180910390f35b61041d600480360381019061041891906132d7565b610c20565b60405161042a9190613313565b60405180910390f35b61043b610cd7565b6040516104489190612c1d565b60405180910390f35b61046b60048036038101906104669190612ff4565b610cfb565b6040516104789190612b37565b60405180910390f35b610489610d74565b6040516104969190612be2565b60405180910390f35b6104a7610e06565b6040516104b49190612c1d565b60405180910390f35b6104c5610e0d565b6040516104d29190613383565b60405180910390f35b6104e3610e9b565b6040516104f09190613313565b60405180910390f35b610513600480360381019061050e9190612eae565b610ec3565b005b61052f600480360381019061052a91906132aa565b610f25565b60405161053c9190612be2565b60405180910390f35b61055f600480360381019061055a91906133a5565b610fcc565b60405161056c9190612b37565b60405180910390f35b61057d61100d565b60405161058a9190612c1d565b60405180910390f35b6105ad60048036038101906105a89190612ff4565b611031565b005b6105c960048036038101906105c491906132aa565b611053565b005b6105e560048036038101906105e09190612c9d565b61105f565b005b61060160048036038101906105fc9190613198565b611108565b005b6000807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065657506106558261118d565b5b9050919050565b60606000805461066c90613414565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613414565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b7f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad81565b6000801b61072081611207565b82826078828290501115610760576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61076861121b565b8484600291826107799291906135f2565b507f2dfab123508590223226491c2b89d1862427468e1b0c1cd660e5622e63eaf3eb3386866040516107ad939291906136ef565b60405180910390a15050505050565b600063150b7a0260e01b9050949350505050565b6000801b6107dd81611207565b6107e7838361128d565b505050565b6000806107f76112f8565b905080600001600084815260200190815260200160002060010154915050919050565b610823826107ec565b61082c81611207565b6108368383611320565b50505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b61086c611421565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108da8282611429565b505050565b6000801b6108ec81611207565b6108f58261152b565b5050565b60008061090461153e565b90508060000160009054906101000a900460ff1691505090565b6000610928611566565b7f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad61095281611207565b83836078828290501115610992576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61099b876115a7565b6109d1576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff166109f188610b6f565b73ffffffffffffffffffffffffffffffffffffffff1614610a3e576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a4861083c565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f308a6040518363ffffffff1660e01b8152600401610a82929190613721565b602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac3919061375f565b9050610b14818989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611613565b809450505050509392505050565b6000610b2c611566565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b5681611207565b610b638787878787611689565b91505095945050505050565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e906137fe565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613890565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb81565b600080610d066112f8565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b606060018054610d8390613414565b80601f0160208091040260200160405190810160405280929190818152602001828054610daf90613414565b8015610dfc5780601f10610dd157610100808354040283529160200191610dfc565b820191906000526020600020905b815481529060010190602001808311610ddf57829003601f168201915b5050505050905090565b6000801b81565b60028054610e1a90613414565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4690613414565b8015610e935780601f10610e6857610100808354040283529160200191610e93565b820191906000526020600020905b815481529060010190602001808311610e7657829003601f168201915b505050505081565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b610ed4610ece611421565b836117d1565b610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90613922565b60405180910390fd5b610f1f84848484611860565b50505050565b6060610f30826115a7565b610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906139b4565b60405180910390fd5b6000610f796118bc565b90506000815111610f995760405180602001604052806000815250610fc4565b80610fa3846118cb565b604051602001610fb4929190613a10565b6040516020818303038152906040525b915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610ff881611207565b6110028484611999565b600191505092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61103a826107ec565b61104381611207565b61104d8383611429565b50505050565b61105c816119b7565b50565b6000801b61106c81611207565b828260788282905011156110ac576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110b4611ac9565b8484600291826110c59291906135f2565b507f861794963cbbb129f46f21f0076eb396185f0dcecba7890e911f3d6508d8d45f3386866040516110f9939291906136ef565b60405180910390a15050505050565b611110611566565b7fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb61113a81611207565b8282607882829050111561117a576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611185868686611b3b565b505050505050565b60007f5e089da7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061120057506111ff82611c51565b5b9050919050565b61121881611213611421565b611ccb565b50565b611223611d1c565b600061122d61153e565b905060008160000160006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611275611421565b6040516112829190613207565b60405180910390a150565b60006112976112f8565b905060006112a4846107ec565b905082826000016000868152602001908152602001600020600101819055508281857fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a450505050565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b60008061132b6112f8565b90506113378484610cfb565b61141557600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b1611421565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061141b565b60009150505b92915050565b600033905090565b6000806114346112f8565b90506114408484610cfb565b1561151f57600081600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114bb611421565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050611525565b60009150505b92915050565b806033908161153a9190613a8f565b5050565b60007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300905090565b61156e6108f9565b156115a5576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663ab67aa58308585856040518563ffffffff1660e01b81526004016116529493929190613b61565b600060405180830381600087803b15801561166c57600080fd5b505af1158015611680573d6000803e3d6000fd5b50505050505050565b6000828260788282905011156116cb576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116d4866115a7565b1561170b576040517f55c7e8ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061171561083c565b73ffffffffffffffffffffffffffffffffffffffff1663780900dc886040518263ffffffff1660e01b815260040161174d9190613313565b6020604051808303816000875af115801561176c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611790919061375f565b90506117c281888b8b8a8a6040516020016117ae9493929190613bad565b604051602081830303815290604052611d5c565b80935050505095945050505050565b60006117dc826115a7565b61181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181290613c5f565b60405180910390fd5b600061182683610b6f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161491505092915050565b61186b848484611db7565b61187784848484612012565b6118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90613cf1565b60405180910390fd5b50505050565b60606118c6612194565b905090565b6060600060016118da84612226565b01905060008167ffffffffffffffff8111156118f9576118f8612d83565b5b6040519080825280601f01601f19166020018201604052801561192b5781602001600182028036833780820191505090505b509050600082602001820190505b60011561198e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161198257611981613d11565b5b04945060008503611939575b819350505050919050565b6119b3828260405180602001604052806000815250611d5c565b5050565b60006119c282610b6f565b90506119d081600084612379565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a209190613d6f565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ac5816000846124f2565b5050565b611ad1611566565b6000611adb61153e565b905060018160000160006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b23611421565b604051611b309190613207565b60405180910390a150565b6000611b4561083c565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f30866040518363ffffffff1660e01b8152600401611b7f929190613721565b602060405180830381865afa158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc0919061375f565b90508073ffffffffffffffffffffffffffffffffffffffff16638fb33c3c84846040518363ffffffff1660e01b8152600401611bfd929190613da3565b600060405180830381600087803b158015611c1757600080fd5b505af1158015611c2b573d6000803e3d6000fd5b50505050611c4b61dead8560405180602001604052806000815250611613565b50505050565b60007f6010a5e7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611cc45750611cc3826124f7565b5b9050919050565b611cd58282610cfb565b611d185780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401611d0f929190613dc7565b60405180910390fd5b5050565b611d246108f9565b611d5a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611d668383612571565b611d736000848484612012565b611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613cf1565b60405180910390fd5b505050565b8273ffffffffffffffffffffffffffffffffffffffff16611dd782610b6f565b73ffffffffffffffffffffffffffffffffffffffff1614611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2490613e62565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9390613ef4565b60405180910390fd5b611ea7838383612379565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ef79190613d6f565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f4e9190613f14565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461200d8383836124f2565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b1115612187578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612057611421565b8786866040518563ffffffff1660e01b81526004016120799493929190613b61565b6020604051808303816000875af19250505080156120b557506040513d601f19601f820116820180604052508101906120b29190613f5d565b60015b612137573d80600081146120e5576040519150601f19603f3d011682016040523d82523d6000602084013e6120ea565b606091505b50600081510361212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613cf1565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061218c565b600190505b949350505050565b6060603380546121a390613414565b80601f01602080910402602001604051908101604052809291908181526020018280546121cf90613414565b801561221c5780601f106121f15761010080835404028352916020019161221c565b820191906000526020600020905b8154815290600101906020018083116121ff57829003601f168201915b5050505050905090565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612284577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161227a57612279613d11565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106122c1576d04ee2d6d415b85acef810000000083816122b7576122b6613d11565b5b0492506020810190505b662386f26fc1000083106122f057662386f26fc1000083816122e6576122e5613d11565b5b0492506010810190505b6305f5e1008310612319576305f5e100838161230f5761230e613d11565b5b0492506008810190505b612710831061233e57612710838161233457612333613d11565b5b0492506004810190505b60648310612361576064838161235757612356613d11565b5b0492506002810190505b600a8310612370576001810190505b80915050919050565b612381611566565b61238c83838361274a565b600061239661083c565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f30846040518363ffffffff1660e01b81526004016123d0929190613721565b602060405180830381865afa1580156123ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612411919061375f565b90503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561247b57508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124b5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124ec576040517ff7e6817a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b505050565b60007ffe9d9303000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256a575061256982612802565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d790613fd6565b60405180910390fd5b6125e9816115a7565b15612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262090614042565b60405180910390fd5b61263560008383612379565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126859190613f14565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612746600083836124f2565b5050565b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156127bb57503073ffffffffffffffffffffffffffffffffffffffff166127a282610b6f565b73ffffffffffffffffffffffffffffffffffffffff1614155b156127f2576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127fd838383612814565b505050565b600061280d8261282c565b9050919050565b61281c611566565b61282783838361283e565b505050565b600061283782612843565b9050919050565b505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806128b657506128b5826128bd565b5b9050919050565b60007f95a63a27000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612930575061292f82612937565b5b9050919050565b60007fb8950977000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612a0257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612a125750612a1182612a19565b5b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612acc81612a97565b8114612ad757600080fd5b50565b600081359050612ae981612ac3565b92915050565b600060208284031215612b0557612b04612a8d565b5b6000612b1384828501612ada565b91505092915050565b60008115159050919050565b612b3181612b1c565b82525050565b6000602082019050612b4c6000830184612b28565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b8c578082015181840152602081019050612b71565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bb482612b52565b612bbe8185612b5d565b9350612bce818560208601612b6e565b612bd781612b98565b840191505092915050565b60006020820190508181036000830152612bfc8184612ba9565b905092915050565b6000819050919050565b612c1781612c04565b82525050565b6000602082019050612c326000830184612c0e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c5d57612c5c612c38565b5b8235905067ffffffffffffffff811115612c7a57612c79612c3d565b5b602083019150836001820283011115612c9657612c95612c42565b5b9250929050565b60008060208385031215612cb457612cb3612a8d565b5b600083013567ffffffffffffffff811115612cd257612cd1612a92565b5b612cde85828601612c47565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d1582612cea565b9050919050565b612d2581612d0a565b8114612d3057600080fd5b50565b600081359050612d4281612d1c565b92915050565b6000819050919050565b612d5b81612d48565b8114612d6657600080fd5b50565b600081359050612d7881612d52565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dbb82612b98565b810181811067ffffffffffffffff82111715612dda57612dd9612d83565b5b80604052505050565b6000612ded612a83565b9050612df98282612db2565b919050565b600067ffffffffffffffff821115612e1957612e18612d83565b5b612e2282612b98565b9050602081019050919050565b82818337600083830152505050565b6000612e51612e4c84612dfe565b612de3565b905082815260208101848484011115612e6d57612e6c612d7e565b5b612e78848285612e2f565b509392505050565b600082601f830112612e9557612e94612c38565b5b8135612ea5848260208601612e3e565b91505092915050565b60008060008060808587031215612ec857612ec7612a8d565b5b6000612ed687828801612d33565b9450506020612ee787828801612d33565b9350506040612ef887828801612d69565b925050606085013567ffffffffffffffff811115612f1957612f18612a92565b5b612f2587828801612e80565b91505092959194509250565b612f3a81612a97565b82525050565b6000602082019050612f556000830184612f31565b92915050565b612f6481612c04565b8114612f6f57600080fd5b50565b600081359050612f8181612f5b565b92915050565b60008060408385031215612f9e57612f9d612a8d565b5b6000612fac85828601612f72565b9250506020612fbd85828601612f72565b9150509250929050565b600060208284031215612fdd57612fdc612a8d565b5b6000612feb84828501612f72565b91505092915050565b6000806040838503121561300b5761300a612a8d565b5b600061301985828601612f72565b925050602061302a85828601612d33565b9150509250929050565b6000819050919050565b600061305961305461304f84612cea565b613034565b612cea565b9050919050565b600061306b8261303e565b9050919050565b600061307d82613060565b9050919050565b61308d81613072565b82525050565b60006020820190506130a86000830184613084565b92915050565b600067ffffffffffffffff8211156130c9576130c8612d83565b5b6130d282612b98565b9050602081019050919050565b60006130f26130ed846130ae565b612de3565b90508281526020810184848401111561310e5761310d612d7e565b5b613119848285612e2f565b509392505050565b600082601f83011261313657613135612c38565b5b81356131468482602086016130df565b91505092915050565b60006020828403121561316557613164612a8d565b5b600082013567ffffffffffffffff81111561318357613182612a92565b5b61318f84828501613121565b91505092915050565b6000806000604084860312156131b1576131b0612a8d565b5b60006131bf86828701612d69565b935050602084013567ffffffffffffffff8111156131e0576131df612a92565b5b6131ec86828701612c47565b92509250509250925092565b61320181612d0a565b82525050565b600060208201905061321c60008301846131f8565b92915050565b60008060008060006080868803121561323e5761323d612a8d565b5b600061324c88828901612d33565b955050602061325d88828901612d33565b945050604061326e88828901612d69565b935050606086013567ffffffffffffffff81111561328f5761328e612a92565b5b61329b88828901612c47565b92509250509295509295909350565b6000602082840312156132c0576132bf612a8d565b5b60006132ce84828501612d69565b91505092915050565b6000602082840312156132ed576132ec612a8d565b5b60006132fb84828501612d33565b91505092915050565b61330d81612d48565b82525050565b60006020820190506133286000830184613304565b92915050565b600081519050919050565b600082825260208201905092915050565b60006133558261332e565b61335f8185613339565b935061336f818560208601612b6e565b61337881612b98565b840191505092915050565b6000602082019050818103600083015261339d818461334a565b905092915050565b600080604083850312156133bc576133bb612a8d565b5b60006133ca85828601612d33565b92505060206133db85828601612d69565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061342c57607f821691505b60208210810361343f5761343e6133e5565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026134b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613475565b6134bc8683613475565b95508019841693508086168417925050509392505050565b60006134ef6134ea6134e584612d48565b613034565b612d48565b9050919050565b6000819050919050565b613509836134d4565b61351d613515826134f6565b848454613482565b825550505050565b600090565b613532613525565b61353d818484613500565b505050565b5b818110156135615761355660008261352a565b600181019050613543565b5050565b601f8211156135a65761357781613450565b61358084613465565b8101602085101561358f578190505b6135a361359b85613465565b830182613542565b50505b505050565b600082821c905092915050565b60006135c9600019846008026135ab565b1980831691505092915050565b60006135e283836135b8565b9150826002028217905092915050565b6135fc8383613445565b67ffffffffffffffff81111561361557613614612d83565b5b61361f8254613414565b61362a828285613565565b6000601f8311600181146136595760008415613647578287013590505b61365185826135d6565b8655506136b9565b601f19841661366786613450565b60005b8281101561368f5784890135825560018201915060208501945060208101905061366a565b868310156136ac57848901356136a8601f8916826135b8565b8355505b6001600288020188555050505b50505050505050565b60006136ce8385613339565b93506136db838584612e2f565b6136e483612b98565b840190509392505050565b600060408201905061370460008301866131f8565b81810360208301526137178184866136c2565b9050949350505050565b600060408201905061373660008301856131f8565b6137436020830184613304565b9392505050565b60008151905061375981612d1c565b92915050565b60006020828403121561377557613774612a8d565b5b60006137838482850161374a565b91505092915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006137e8602983612b5d565b91506137f38261378c565b604082019050919050565b60006020820190508181036000830152613817816137db565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600061387a602a83612b5d565b91506138858261381e565b604082019050919050565b600060208201905081810360008301526138a98161386d565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b600061390c603183612b5d565b9150613917826138b0565b604082019050919050565b6000602082019050818103600083015261393b816138ff565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061399e602f83612b5d565b91506139a982613942565b604082019050919050565b600060208201905081810360008301526139cd81613991565b9050919050565b600081905092915050565b60006139ea82612b52565b6139f481856139d4565b9350613a04818560208601612b6e565b80840191505092915050565b6000613a1c82856139df565b9150613a2882846139df565b91508190509392505050565b60008190508160005260206000209050919050565b601f821115613a8a57613a5b81613a34565b613a6484613465565b81016020851015613a73578190505b613a87613a7f85613465565b830182613542565b50505b505050565b613a9882612b52565b67ffffffffffffffff811115613ab157613ab0612d83565b5b613abb8254613414565b613ac6828285613a49565b600060209050601f831160018114613af95760008415613ae7578287015190505b613af185826135d6565b865550613b59565b601f198416613b0786613a34565b60005b82811015613b2f57848901518255600182019150602085019450602081019050613b0a565b86831015613b4c5784890151613b48601f8916826135b8565b8355505b6001600288020188555050505b505050505050565b6000608082019050613b7660008301876131f8565b613b8360208301866131f8565b613b906040830185613304565b8181036060830152613ba2818461334a565b905095945050505050565b6000606082019050613bc260008301876131f8565b613bcf60208301866131f8565b8181036040830152613be28184866136c2565b905095945050505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613c49602c83612b5d565b9150613c5482613bed565b604082019050919050565b60006020820190508181036000830152613c7881613c3c565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613cdb603283612b5d565b9150613ce682613c7f565b604082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d7a82612d48565b9150613d8583612d48565b9250828203905081811115613d9d57613d9c613d40565b5b92915050565b60006020820190508181036000830152613dbe8184866136c2565b90509392505050565b6000604082019050613ddc60008301856131f8565b613de96020830184612c0e565b9392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613e4c602583612b5d565b9150613e5782613df0565b604082019050919050565b60006020820190508181036000830152613e7b81613e3f565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ede602483612b5d565b9150613ee982613e82565b604082019050919050565b60006020820190508181036000830152613f0d81613ed1565b9050919050565b6000613f1f82612d48565b9150613f2a83612d48565b9250828201905080821115613f4257613f41613d40565b5b92915050565b600081519050613f5781612ac3565b92915050565b600060208284031215613f7357613f72612a8d565b5b6000613f8184828501613f48565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613fc0602083612b5d565b9150613fcb82613f8a565b602082019050919050565b60006020820190508181036000830152613fef81613fb3565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061402c601c83612b5d565b915061403782613ff6565b602082019050919050565b6000602082019050818103600083015261405b8161401f565b905091905056fea2646970667358221220ad34c6f702fefd2715ea0ab3b3085238809b299f2bfe7e6540001f50f00ddcd964736f6c63430008160033";
954
+ "0x60e06040523480156200001157600080fd5b50604051620058bf380380620058bf833981810160405281019062000037919062000a1e565b83838383808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050504360c081815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620000cf8484620000c3620000dd60201b60201c565b620000f460201b60201c565b505050505050505062000f5c565b6000620000ef6200029f60201b60201c565b905090565b6000620001066200032a60201b60201c565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015620001555750825b9050600060018367ffffffffffffffff161480156200018b575060003073ffffffffffffffffffffffffffffffffffffffff163b145b9050811580156200019a575080155b15620001d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315620002235760018560000160086101000a81548160ff0219169083151502179055505b620002368888886200034660201b60201c565b8315620002955760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516200028c919062000b2f565b60405180910390a15b5050505050505050565b600080600036905090506000620002bb6200037e60201b60201c565b9050808210158015620002db5750620002da336200039560201b60201c565b5b156200031257600036828403908092620002f89392919062000b56565b9062000305919062000bdb565b60601c9250505062000327565b62000322620003dc60201b60201c565b925050505b90565b6000806200033d620003e460201b60201c565b90508091505090565b620003566200040f60201b60201c565b6200036883836200045860201b60201c565b62000379816200048e60201b60201c565b505050565b600062000390620005b760201b60201c565b905090565b6000620003a7620005c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600033905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0060001b905090565b6200041f620005ca60201b60201c565b62000456576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b620004686200040f60201b60201c565b6200047a8282620005f260201b60201c565b6200048a6200061860201b60201c565b5050565b6200049e6200040f60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000505576040517f05bb467c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200051a6000801b826200062a60201b60201c565b506200054d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826200062a60201b60201c565b50620005807f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad826200062a60201b60201c565b50620005b37fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb826200062a60201b60201c565b5050565b60006014905090565b6000608051905090565b6000620005dc6200032a60201b60201c565b60000160089054906101000a900460ff16905090565b620006026200040f60201b60201c565b6200061482826200074560201b60201c565b5050565b620006286200040f60201b60201c565b565b6000806200063d6200077d60201b60201c565b9050620006518484620007a560201b60201c565b6200073957600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006d4620000dd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506200073f565b60009150505b92915050565b620007556200040f60201b60201c565b816000908162000766919062000e75565b50806001908162000778919062000e75565b505050565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b600080620007b86200077d60201b60201c565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200088f8262000844565b810181811067ffffffffffffffff82111715620008b157620008b062000855565b5b80604052505050565b6000620008c662000826565b9050620008d4828262000884565b919050565b600067ffffffffffffffff821115620008f757620008f662000855565b5b620009028262000844565b9050602081019050919050565b60005b838110156200092f57808201518184015260208101905062000912565b60008484015250505050565b6000620009526200094c84620008d9565b620008ba565b9050828152602081018484840111156200097157620009706200083f565b5b6200097e8482856200090f565b509392505050565b600082601f8301126200099e576200099d6200083a565b5b8151620009b08482602086016200093b565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009e682620009b9565b9050919050565b620009f881620009d9565b811462000a0457600080fd5b50565b60008151905062000a1881620009ed565b92915050565b6000806000806080858703121562000a3b5762000a3a62000830565b5b600085015167ffffffffffffffff81111562000a5c5762000a5b62000835565b5b62000a6a8782880162000986565b945050602085015167ffffffffffffffff81111562000a8e5762000a8d62000835565b5b62000a9c8782880162000986565b935050604062000aaf8782880162000a07565b925050606062000ac28782880162000a07565b91505092959194509250565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600062000b1762000b1162000b0b8462000ace565b62000aec565b62000ad8565b9050919050565b62000b298162000af6565b82525050565b600060208201905062000b46600083018462000b1e565b92915050565b600080fd5b600080fd5b6000808585111562000b6d5762000b6c62000b4c565b5b8386111562000b815762000b8062000b51565b5b6001850283019150848603905094509492505050565b600082905092915050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b600082821b905092915050565b600062000be9838362000b97565b8262000bf6813562000ba2565b9250601482101562000c395762000c347fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360140360080262000bce565b831692505b505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c9457607f821691505b60208210810362000caa5762000ca962000c4c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60006008830262000d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bce565b62000d13868362000bce565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000d5662000d5062000d4a8462000d2b565b62000aec565b62000d2b565b9050919050565b6000819050919050565b62000d728362000d35565b62000d8a62000d818262000d5d565b84845462000cd5565b825550505050565b600090565b62000da162000d92565b62000dae81848462000d67565b505050565b5b8181101562000dd65762000dca60008262000d97565b60018101905062000db4565b5050565b601f82111562000e255762000def8162000cb0565b62000dfa8462000cc5565b8101602085101562000e0a578190505b62000e2262000e198562000cc5565b83018262000db3565b50505b505050565b600082821c905092915050565b600062000e4a6000198460080262000e2a565b1980831691505092915050565b600062000e65838362000e37565b9150826002028217905092915050565b62000e808262000c41565b67ffffffffffffffff81111562000e9c5762000e9b62000855565b5b62000ea8825462000c7b565b62000eb582828562000dda565b600060209050601f83116001811462000eed576000841562000ed8578287015190505b62000ee4858262000e57565b86555062000f54565b601f19841662000efd8662000cb0565b60005b8281101562000f275784890151825560018201915060208501945060208101905062000f00565b8683101562000f47578489015162000f43601f89168262000e37565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05161493362000f8c60003960006112f001526000610b11015260006110c701526149336000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80636f0fac8e11610125578063a7f0b3de116100ad578063d53913931161007c578063d539139314610676578063d547741f14610694578063df4fbfff146106b0578063e2339ea3146106cc578063fe9d9303146106e857610211565b8063a7f0b3de146105dc578063ab67aa58146105fa578063c87b56dd14610616578063d4d92b141461064657610211565b806391d14854116100f457806391d148541461052257806395d89b4114610552578063a217fddf14610570578063a47d1f5e1461058e578063a4e2ee11146105ac57610211565b80636f0fac8e1461048657806370a08231146104b65780637da0a877146104e65780637fb2977d1461050457610211565b80632f2ff15d116101a8578063572b6c0511610177578063572b6c05146103a85780635c975abb146103d85780635e089da7146103f65780636010a5e7146104265780636352211e1461045657610211565b80632f2ff15d14610336578063325689f91461035257806336568abe1461037057806355f804b31461038c57610211565b8063150b7a02116101e4578063150b7a021461029e57806318bf4555146102ce5780631e4e0091146102ea578063248a9ca31461030657610211565b806301ffc9a71461021657806306fdde031461024657806311d4d7b51461026457806314e30d2014610282575b600080fd5b610230600480360381019061022b9190613156565b610704565b60405161023d919061319e565b60405180910390f35b61024e61075e565b60405161025b9190613249565b60405180910390f35b61026c6107f0565b6040516102799190613284565b60405180910390f35b61029c60048036038101906102979190613304565b610814565b005b6102b860048036038101906102b39190613515565b6108c4565b6040516102c591906135a7565b60405180910390f35b6102e860048036038101906102e391906135c2565b6108d8565b005b61030460048036038101906102ff919061362e565b610aa1565b005b610320600480360381019061031b919061366e565b610abd565b60405161032d9190613284565b60405180910390f35b610350600480360381019061034b919061369b565b610aeb565b005b61035a610b0d565b604051610367919061373a565b60405180910390f35b61038a6004803603810190610385919061369b565b610b35565b005b6103a660048036038101906103a191906137f6565b610bb0565b005b6103c260048036038101906103bd919061383f565b610bca565b6040516103cf919061319e565b60405180910390f35b6103e0610c09565b6040516103ed919061319e565b60405180910390f35b610410600480360381019061040b919061386c565b610c2e565b60405161041d91906138db565b60405180910390f35b610440600480360381019061043b91906138f6565b610ed1565b60405161044d91906138db565b60405180910390f35b610470600480360381019061046b919061397e565b610f1e565b60405161047d91906138db565b60405180910390f35b6104a0600480360381019061049b919061397e565b610fcf565b6040516104ad91906138db565b60405180910390f35b6104d060048036038101906104cb919061383f565b61100c565b6040516104dd91906139ba565b60405180910390f35b6104ee6110c3565b6040516104fb91906138db565b60405180910390f35b61050c6110eb565b6040516105199190613284565b60405180910390f35b61053c6004803603810190610537919061369b565b61110f565b604051610549919061319e565b60405180910390f35b61055a611188565b6040516105679190613249565b60405180910390f35b61057861121a565b6040516105859190613284565b60405180910390f35b610596611221565b6040516105a39190613a2a565b60405180910390f35b6105c660048036038101906105c1919061397e565b6112af565b6040516105d391906138db565b60405180910390f35b6105e46112ec565b6040516105f191906139ba565b60405180910390f35b610614600480360381019061060f9190613515565b611314565b005b610630600480360381019061062b919061397e565b611376565b60405161063d9190613249565b60405180910390f35b610660600480360381019061065b9190613a4c565b61141d565b60405161066d919061319e565b60405180910390f35b61067e61145e565b60405161068b9190613284565b60405180910390f35b6106ae60048036038101906106a9919061369b565b611482565b005b6106ca60048036038101906106c5919061397e565b6114a4565b005b6106e660048036038101906106e19190613304565b6114b0565b005b61070260048036038101906106fd919061386c565b611560565b005b6000807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610757575061075682611708565b5b9050919050565b60606000805461076d90613abb565b80601f016020809104026020016040519081016040528092919081815260200182805461079990613abb565b80156107e65780601f106107bb576101008083540402835291602001916107e6565b820191906000526020600020905b8154815290600101906020018083116107c957829003601f168201915b5050505050905090565b7f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad81565b6000801b61082181611782565b82826078828290501115610861576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610869611796565b84846002918261087a929190613c99565b507f2dfab123508590223226491c2b89d1862427468e1b0c1cd660e5622e63eaf3eb6108a4611808565b86866040516108b593929190613d96565b60405180910390a15050505050565b600063150b7a0260e01b9050949350505050565b6108e0611817565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661090a81611782565b61091383611858565b610949576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610951611808565b73ffffffffffffffffffffffffffffffffffffffff166033600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e8576040517ffef57ea300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816034600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1683610a5a611808565b73ffffffffffffffffffffffffffffffffffffffff167f066072621ea7f47380c761f70a3169016f0f5f293dccdf650318fc6bae08488260405160405180910390a4505050565b6000801b610aae81611782565b610ab883836118c4565b505050565b600080610ac861192f565b905080600001600084815260200190815260200160002060010154915050919050565b610af482610abd565b610afd81611782565b610b078383611957565b50505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b610b3d611808565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bab8282611a58565b505050565b6000801b610bbd81611782565b610bc682611b5a565b5050565b6000610bd46110c3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080610c14611b6d565b90508060000160009054906101000a900460ff1691505090565b6000610c38611817565b7f4aca127bf16f434830a404b92851a3555910944351935eae88740d1cef5ffaad610c6281611782565b83836078828290501115610ca2576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cab87611858565b610ce1576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16610d0188610f1e565b73ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d56611808565b73ffffffffffffffffffffffffffffffffffffffff166033600089815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ded576040517ffef57ea300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610df7610b0d565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f308a6040518363ffffffff1660e01b8152600401610e31929190613dc8565b602060405180830381865afa158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e729190613e06565b9050610ec3818989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611b95565b809450505050509392505050565b6000610edb611817565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610f0581611782565b610f128787878787611c0b565b91505095945050505050565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd90613ea5565b60405180910390fd5b80915050919050565b60006034600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107390613f37565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb81565b60008061111a61192f565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60606001805461119790613abb565b80601f01602080910402602001604051908101604052809291908181526020018280546111c390613abb565b80156112105780601f106111e557610100808354040283529160200191611210565b820191906000526020600020905b8154815290600101906020018083116111f357829003601f168201915b5050505050905090565b6000801b81565b6002805461122e90613abb565b80601f016020809104026020016040519081016040528092919081815260200182805461125a90613abb565b80156112a75780601f1061127c576101008083540402835291602001916112a7565b820191906000526020600020905b81548152906001019060200180831161128a57829003601f168201915b505050505081565b60006033600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b61132561131f611808565b83611dac565b611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90613fc9565b60405180910390fd5b61137084848484611e3b565b50505050565b606061138182611858565b6113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b79061405b565b60405180910390fd5b60006113ca611e97565b905060008151116113ea5760405180602001604052806000815250611415565b806113f484611ea6565b6040516020016114059291906140b7565b6040516020818303038152906040525b915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661144981611782565b6114538484611f74565b600191505092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61148b82610abd565b61149481611782565b61149e8383611a58565b50505050565b6114ad81611f92565b50565b6000801b6114bd81611782565b828260788282905011156114fd576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115056120a4565b848460029182611516929190613c99565b507f861794963cbbb129f46f21f0076eb396185f0dcecba7890e911f3d6508d8d45f611540611808565b868660405161155193929190613d96565b60405180910390a15050505050565b611568611817565b7fe5fe4715ff8709ff44f5e6bb664620f9349f5f6ae81a532eba2a43b9598ba7eb61159281611782565b828260788282905011156115d2576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006115dc611808565b905060006034600089815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167c9061414d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906141df565b60405180910390fd5b6116fe888888612116565b5050505050505050565b60007f5e089da7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061177b575061177a8261222c565b5b9050919050565b6117938161178e611808565b6122a6565b50565b61179e6122f7565b60006117a8611b6d565b905060008160000160006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6117f0611808565b6040516117fd91906138db565b60405180910390a150565b6000611812612337565b905090565b61181f610c09565b15611856576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60006118ce61192f565b905060006118db84610abd565b905082826000016000868152602001908152602001600020600101819055508281857fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a450505050565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b60008061196261192f565b905061196e848461110f565b611a4c57600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506119e8611808565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050611a52565b60009150505b92915050565b600080611a6361192f565b9050611a6f848461110f565b15611b4e57600081600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611aea611808565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050611b54565b60009150505b92915050565b8060359081611b69919061425a565b5050565b60007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300905090565b3073ffffffffffffffffffffffffffffffffffffffff1663ab67aa58308585856040518563ffffffff1660e01b8152600401611bd4949392919061432c565b600060405180830381600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b50505050505050565b600082826078828290501115611c4d576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c5686611858565b15611c8d576040517f55c7e8ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c95611808565b6033600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000611cf0610b0d565b73ffffffffffffffffffffffffffffffffffffffff1663780900dc886040518263ffffffff1660e01b8152600401611d2891906139ba565b6020604051808303816000875af1158015611d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6b9190613e06565b9050611d9d81888b8b8a8a604051602001611d899493929190614378565b6040516020818303038152906040526123a3565b80935050505095945050505050565b6000611db782611858565b611df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ded9061442a565b60405180910390fd5b6000611e0183610f1e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161491505092915050565b611e468484846123fe565b611e5284848484612659565b611e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e88906144bc565b60405180910390fd5b50505050565b6060611ea16127db565b905090565b606060006001611eb58461286d565b01905060008167ffffffffffffffff811115611ed457611ed36133ea565b5b6040519080825280601f01601f191660200182016040528015611f065781602001600182028036833780820191505090505b509050600082602083010190505b600115611f69578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f5d57611f5c6144dc565b5b04945060008503611f14575b819350505050919050565b611f8e8282604051806020016040528060008152506123a3565b5050565b6000611f9d82610f1e565b9050611fab816000846129c0565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ffb919061453a565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46120a081600084612b39565b5050565b6120ac611817565b60006120b6611b6d565b905060018160000160006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120fe611808565b60405161210b91906138db565b60405180910390a150565b6000612120610b0d565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f30866040518363ffffffff1660e01b815260040161215a929190613dc8565b602060405180830381865afa158015612177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219b9190613e06565b90508073ffffffffffffffffffffffffffffffffffffffff16638fb33c3c84846040518363ffffffff1660e01b81526004016121d892919061456e565b600060405180830381600087803b1580156121f257600080fd5b505af1158015612206573d6000803e3d6000fd5b5050505061222661dead8560405180602001604052806000815250611b95565b50505050565b60007f78afe0b2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061229f575061229e82612b3e565b5b9050919050565b6122b0828261110f565b6122f35780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016122ea929190614592565b60405180910390fd5b5050565b6122ff610c09565b612335576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060003690509050600061234b612bb8565b9050808210158015612362575061236133610bca565b5b156123935760003682840390809261237c939291906145c5565b90612387919061462c565b60601c925050506123a0565b61239b612bc7565b925050505b90565b6123ad8383612bcf565b6123ba6000848484612659565b6123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906144bc565b60405180910390fd5b505050565b8273ffffffffffffffffffffffffffffffffffffffff1661241e82610f1e565b73ffffffffffffffffffffffffffffffffffffffff1614612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b906146fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124da9061478f565b60405180910390fd5b6124ee8383836129c0565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461253e919061453a565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461259591906147af565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612654838383612b39565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b11156127ce578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261269e611808565b8786866040518563ffffffff1660e01b81526004016126c0949392919061432c565b6020604051808303816000875af19250505080156126fc57506040513d601f19601f820116820180604052508101906126f991906147f8565b60015b61277e573d806000811461272c576040519150601f19603f3d011682016040523d82523d6000602084013e612731565b606091505b506000815103612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276d906144bc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506127d3565b600190505b949350505050565b6060603580546127ea90613abb565b80601f016020809104026020016040519081016040528092919081815260200182805461281690613abb565b80156128635780601f1061283857610100808354040283529160200191612863565b820191906000526020600020905b81548152906001019060200180831161284657829003601f168201915b5050505050905090565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106128cb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816128c1576128c06144dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612908576d04ee2d6d415b85acef810000000083816128fe576128fd6144dc565b5b0492506020810190505b662386f26fc10000831061293757662386f26fc10000838161292d5761292c6144dc565b5b0492506010810190505b6305f5e1008310612960576305f5e1008381612956576129556144dc565b5b0492506008810190505b612710831061298557612710838161297b5761297a6144dc565b5b0492506004810190505b606483106129a8576064838161299e5761299d6144dc565b5b0492506002810190505b600a83106129b7576001810190505b80915050919050565b6129c8611817565b6129d3838383612da8565b60006129dd610b0d565b73ffffffffffffffffffffffffffffffffffffffff1663dc48b34f30846040518363ffffffff1660e01b8152600401612a17929190613dc8565b602060405180830381865afa158015612a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a589190613e06565b90503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ac257508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612afc575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b33576040517ff7e6817a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b505050565b60007ffe9d9303000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612bb15750612bb082612e60565b5b9050919050565b6000612bc2612e72565b905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3590614871565b60405180910390fd5b612c4781611858565b15612c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7e906148dd565b60405180910390fd5b612c93600083836129c0565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ce391906147af565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612da460008383612b39565b5050565b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612e1957503073ffffffffffffffffffffffffffffffffffffffff16612e0082610f1e565b73ffffffffffffffffffffffffffffffffffffffff1614155b15612e50576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e5b838383612e7b565b505050565b6000612e6b82612e93565b9050919050565b60006014905090565b612e83611817565b612e8e838383612ea5565b505050565b6000612e9e82612eaa565b9050919050565b505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612f1d5750612f1c82612f24565b5b9050919050565b60007f95a63a27000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612f975750612f9682612f9e565b5b9050919050565b60007fb8950977000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061306957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613079575061307882613080565b5b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613133816130fe565b811461313e57600080fd5b50565b6000813590506131508161312a565b92915050565b60006020828403121561316c5761316b6130f4565b5b600061317a84828501613141565b91505092915050565b60008115159050919050565b61319881613183565b82525050565b60006020820190506131b3600083018461318f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131f35780820151818401526020810190506131d8565b60008484015250505050565b6000601f19601f8301169050919050565b600061321b826131b9565b61322581856131c4565b93506132358185602086016131d5565b61323e816131ff565b840191505092915050565b600060208201905081810360008301526132638184613210565b905092915050565b6000819050919050565b61327e8161326b565b82525050565b60006020820190506132996000830184613275565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132c4576132c361329f565b5b8235905067ffffffffffffffff8111156132e1576132e06132a4565b5b6020830191508360018202830111156132fd576132fc6132a9565b5b9250929050565b6000806020838503121561331b5761331a6130f4565b5b600083013567ffffffffffffffff811115613339576133386130f9565b5b613345858286016132ae565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061337c82613351565b9050919050565b61338c81613371565b811461339757600080fd5b50565b6000813590506133a981613383565b92915050565b6000819050919050565b6133c2816133af565b81146133cd57600080fd5b50565b6000813590506133df816133b9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613422826131ff565b810181811067ffffffffffffffff82111715613441576134406133ea565b5b80604052505050565b60006134546130ea565b90506134608282613419565b919050565b600067ffffffffffffffff8211156134805761347f6133ea565b5b613489826131ff565b9050602081019050919050565b82818337600083830152505050565b60006134b86134b384613465565b61344a565b9050828152602081018484840111156134d4576134d36133e5565b5b6134df848285613496565b509392505050565b600082601f8301126134fc576134fb61329f565b5b813561350c8482602086016134a5565b91505092915050565b6000806000806080858703121561352f5761352e6130f4565b5b600061353d8782880161339a565b945050602061354e8782880161339a565b935050604061355f878288016133d0565b925050606085013567ffffffffffffffff8111156135805761357f6130f9565b5b61358c878288016134e7565b91505092959194509250565b6135a1816130fe565b82525050565b60006020820190506135bc6000830184613598565b92915050565b600080604083850312156135d9576135d86130f4565b5b60006135e7858286016133d0565b92505060206135f88582860161339a565b9150509250929050565b61360b8161326b565b811461361657600080fd5b50565b60008135905061362881613602565b92915050565b60008060408385031215613645576136446130f4565b5b600061365385828601613619565b925050602061366485828601613619565b9150509250929050565b600060208284031215613684576136836130f4565b5b600061369284828501613619565b91505092915050565b600080604083850312156136b2576136b16130f4565b5b60006136c085828601613619565b92505060206136d18582860161339a565b9150509250929050565b6000819050919050565b60006137006136fb6136f684613351565b6136db565b613351565b9050919050565b6000613712826136e5565b9050919050565b600061372482613707565b9050919050565b61373481613719565b82525050565b600060208201905061374f600083018461372b565b92915050565b600067ffffffffffffffff8211156137705761376f6133ea565b5b613779826131ff565b9050602081019050919050565b600061379961379484613755565b61344a565b9050828152602081018484840111156137b5576137b46133e5565b5b6137c0848285613496565b509392505050565b600082601f8301126137dd576137dc61329f565b5b81356137ed848260208601613786565b91505092915050565b60006020828403121561380c5761380b6130f4565b5b600082013567ffffffffffffffff81111561382a576138296130f9565b5b613836848285016137c8565b91505092915050565b600060208284031215613855576138546130f4565b5b60006138638482850161339a565b91505092915050565b600080600060408486031215613885576138846130f4565b5b6000613893868287016133d0565b935050602084013567ffffffffffffffff8111156138b4576138b36130f9565b5b6138c0868287016132ae565b92509250509250925092565b6138d581613371565b82525050565b60006020820190506138f060008301846138cc565b92915050565b600080600080600060808688031215613912576139116130f4565b5b60006139208882890161339a565b95505060206139318882890161339a565b9450506040613942888289016133d0565b935050606086013567ffffffffffffffff811115613963576139626130f9565b5b61396f888289016132ae565b92509250509295509295909350565b600060208284031215613994576139936130f4565b5b60006139a2848285016133d0565b91505092915050565b6139b4816133af565b82525050565b60006020820190506139cf60008301846139ab565b92915050565b600081519050919050565b600082825260208201905092915050565b60006139fc826139d5565b613a0681856139e0565b9350613a168185602086016131d5565b613a1f816131ff565b840191505092915050565b60006020820190508181036000830152613a4481846139f1565b905092915050565b60008060408385031215613a6357613a626130f4565b5b6000613a718582860161339a565b9250506020613a82858286016133d0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ad357607f821691505b602082108103613ae657613ae5613a8c565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613b597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b1c565b613b638683613b1c565b95508019841693508086168417925050509392505050565b6000613b96613b91613b8c846133af565b6136db565b6133af565b9050919050565b6000819050919050565b613bb083613b7b565b613bc4613bbc82613b9d565b848454613b29565b825550505050565b600090565b613bd9613bcc565b613be4818484613ba7565b505050565b5b81811015613c0857613bfd600082613bd1565b600181019050613bea565b5050565b601f821115613c4d57613c1e81613af7565b613c2784613b0c565b81016020851015613c36578190505b613c4a613c4285613b0c565b830182613be9565b50505b505050565b600082821c905092915050565b6000613c7060001984600802613c52565b1980831691505092915050565b6000613c898383613c5f565b9150826002028217905092915050565b613ca38383613aec565b67ffffffffffffffff811115613cbc57613cbb6133ea565b5b613cc68254613abb565b613cd1828285613c0c565b6000601f831160018114613d005760008415613cee578287013590505b613cf88582613c7d565b865550613d60565b601f198416613d0e86613af7565b60005b82811015613d3657848901358255600182019150602085019450602081019050613d11565b86831015613d535784890135613d4f601f891682613c5f565b8355505b6001600288020188555050505b50505050505050565b6000613d7583856139e0565b9350613d82838584613496565b613d8b836131ff565b840190509392505050565b6000604082019050613dab60008301866138cc565b8181036020830152613dbe818486613d69565b9050949350505050565b6000604082019050613ddd60008301856138cc565b613dea60208301846139ab565b9392505050565b600081519050613e0081613383565b92915050565b600060208284031215613e1c57613e1b6130f4565b5b6000613e2a84828501613df1565b91505092915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613e8f6029836131c4565b9150613e9a82613e33565b604082019050919050565b60006020820190508181036000830152613ebe81613e82565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613f21602a836131c4565b9150613f2c82613ec5565b604082019050919050565b60006020820190508181036000830152613f5081613f14565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613fb36031836131c4565b9150613fbe82613f57565b604082019050919050565b60006020820190508181036000830152613fe281613fa6565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614045602f836131c4565b915061405082613fe9565b604082019050919050565b6000602082019050818103600083015261407481614038565b9050919050565b600081905092915050565b6000614091826131b9565b61409b818561407b565b93506140ab8185602086016131d5565b80840191505092915050565b60006140c38285614086565b91506140cf8284614086565b91508190509392505050565b7f54726164655472757374546f6b656e4275726e61626c653a206163636570746560008201527f72206e6f742073657420666f7220746f6b656e00000000000000000000000000602082015250565b60006141376033836131c4565b9150614142826140db565b604082019050919050565b600060208201905081810360008301526141668161412a565b9050919050565b7f54726164655472757374546f6b656e4275726e61626c653a2063616c6c65722060008201527f6e6f742061737369676e65642061636365707465720000000000000000000000602082015250565b60006141c96035836131c4565b91506141d48261416d565b604082019050919050565b600060208201905081810360008301526141f8816141bc565b9050919050565b60008190508160005260206000209050919050565b601f82111561425557614226816141ff565b61422f84613b0c565b8101602085101561423e578190505b61425261424a85613b0c565b830182613be9565b50505b505050565b614263826131b9565b67ffffffffffffffff81111561427c5761427b6133ea565b5b6142868254613abb565b614291828285614214565b600060209050601f8311600181146142c457600084156142b2578287015190505b6142bc8582613c7d565b865550614324565b601f1984166142d2866141ff565b60005b828110156142fa578489015182556001820191506020850194506020810190506142d5565b868310156143175784890151614313601f891682613c5f565b8355505b6001600288020188555050505b505050505050565b600060808201905061434160008301876138cc565b61434e60208301866138cc565b61435b60408301856139ab565b818103606083015261436d81846139f1565b905095945050505050565b600060608201905061438d60008301876138cc565b61439a60208301866138cc565b81810360408301526143ad818486613d69565b905095945050505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614414602c836131c4565b915061441f826143b8565b604082019050919050565b6000602082019050818103600083015261444381614407565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006144a66032836131c4565b91506144b18261444a565b604082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614545826133af565b9150614550836133af565b92508282039050818111156145685761456761450b565b5b92915050565b60006020820190508181036000830152614589818486613d69565b90509392505050565b60006040820190506145a760008301856138cc565b6145b46020830184613275565b9392505050565b600080fd5b600080fd5b600080858511156145d9576145d86145bb565b5b838611156145ea576145e96145c0565b5b6001850283019150848603905094509492505050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b60006146388383613aec565b826146438135614600565b925060148210156146835761467e7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083601403600802613b1c565b831692505b505092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006146e76025836131c4565b91506146f28261468b565b604082019050919050565b60006020820190508181036000830152614716816146da565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006147796024836131c4565b91506147848261471d565b604082019050919050565b600060208201905081810360008301526147a88161476c565b9050919050565b60006147ba826133af565b91506147c5836133af565b92508282019050808211156147dd576147dc61450b565b5b92915050565b6000815190506147f28161312a565b92915050565b60006020828403121561480e5761480d6130f4565b5b600061481c848285016147e3565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061485b6020836131c4565b915061486682614825565b602082019050919050565b6000602082019050818103600083015261488a8161484e565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006148c7601c836131c4565b91506148d282614891565b602082019050919050565b600060208201905081810360008301526148f6816148ba565b905091905056fea2646970667358221220d6a61a262a035422b14a3c3f0eb50ec880ff92334e371316150473c12b2eacb664736f6c63430008160033";
832
955
 
833
956
  type TradeTrustTokenMockConstructorParams =
834
957
  | [signer?: Signer]
@@ -851,12 +974,14 @@ export class TradeTrustTokenMock__factory extends ContractFactory {
851
974
  name: string,
852
975
  symbol: string,
853
976
  escrowFactory: AddressLike,
977
+ trustedForwarder: AddressLike,
854
978
  overrides?: NonPayableOverrides & { from?: string }
855
979
  ): Promise<ContractDeployTransaction> {
856
980
  return super.getDeployTransaction(
857
981
  name,
858
982
  symbol,
859
983
  escrowFactory,
984
+ trustedForwarder,
860
985
  overrides || {}
861
986
  );
862
987
  }
@@ -864,12 +989,14 @@ export class TradeTrustTokenMock__factory extends ContractFactory {
864
989
  name: string,
865
990
  symbol: string,
866
991
  escrowFactory: AddressLike,
992
+ trustedForwarder: AddressLike,
867
993
  overrides?: NonPayableOverrides & { from?: string }
868
994
  ) {
869
995
  return super.deploy(
870
996
  name,
871
997
  symbol,
872
998
  escrowFactory,
999
+ trustedForwarder,
873
1000
  overrides || {}
874
1001
  ) as Promise<
875
1002
  TradeTrustTokenMock & {