cyberia 3.0.3 → 3.2.5

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 (296) hide show
  1. package/{.env.production → .env.example} +20 -4
  2. package/.github/workflows/engine-cyberia.cd.yml +43 -10
  3. package/.github/workflows/engine-cyberia.ci.yml +48 -26
  4. package/.github/workflows/ghpkg.ci.yml +5 -5
  5. package/.github/workflows/gitlab.ci.yml +1 -1
  6. package/.github/workflows/hardhat.ci.yml +82 -0
  7. package/.github/workflows/npmpkg.ci.yml +60 -14
  8. package/.github/workflows/publish.ci.yml +26 -7
  9. package/.github/workflows/publish.cyberia.ci.yml +5 -5
  10. package/.github/workflows/pwa-microservices-template-page.cd.yml +6 -7
  11. package/.github/workflows/pwa-microservices-template-test.ci.yml +4 -4
  12. package/.github/workflows/release.cd.yml +14 -8
  13. package/.vscode/extensions.json +9 -8
  14. package/.vscode/settings.json +3 -2
  15. package/CHANGELOG.md +643 -1
  16. package/CLI-HELP.md +132 -57
  17. package/Dockerfile +4 -2
  18. package/README.md +347 -22
  19. package/WHITE-PAPER.md +1540 -0
  20. package/bin/build.js +21 -12
  21. package/bin/cyberia.js +2640 -106
  22. package/bin/deploy.js +258 -372
  23. package/bin/file.js +5 -1
  24. package/bin/index.js +2640 -106
  25. package/bin/vs.js +3 -3
  26. package/conf.js +169 -105
  27. package/deployment.yaml +236 -20
  28. package/hardhat/.env.example +31 -0
  29. package/hardhat/README.md +531 -0
  30. package/hardhat/WHITE-PAPER.md +1540 -0
  31. package/hardhat/contracts/ObjectLayerToken.sol +391 -0
  32. package/hardhat/deployments/.gitkeep +0 -0
  33. package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
  34. package/hardhat/hardhat.config.js +136 -0
  35. package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
  36. package/hardhat/networks/besu-object-layer.network.json +138 -0
  37. package/hardhat/package-lock.json +4323 -0
  38. package/hardhat/package.json +36 -0
  39. package/hardhat/scripts/deployObjectLayerToken.js +98 -0
  40. package/hardhat/test/ObjectLayerToken.js +592 -0
  41. package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
  42. package/hardhat/types/ethers-contracts/common.ts +92 -0
  43. package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
  44. package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
  45. package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
  46. package/hardhat/types/ethers-contracts/index.ts +6 -0
  47. package/jsdoc.dd-cyberia.json +68 -0
  48. package/jsdoc.json +65 -49
  49. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +5 -4
  50. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +5 -4
  51. package/manifests/deployment/dd-cyberia-development/deployment.yaml +562 -0
  52. package/manifests/deployment/dd-cyberia-development/proxy.yaml +297 -0
  53. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +132 -0
  54. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  55. package/manifests/deployment/dd-test-development/deployment.yaml +88 -74
  56. package/manifests/deployment/dd-test-development/proxy.yaml +13 -4
  57. package/manifests/deployment/playwright/deployment.yaml +1 -1
  58. package/manifests/pv-pvc-dd.yaml +1 -1
  59. package/nodemon.json +1 -1
  60. package/package.json +60 -48
  61. package/proxy.yaml +118 -10
  62. package/pv-pvc.yaml +132 -0
  63. package/scripts/k3s-node-setup.sh +1 -1
  64. package/scripts/ports-ls.sh +2 -0
  65. package/scripts/rhel-grpc-setup.sh +56 -0
  66. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +47 -1
  67. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +17 -2
  68. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
  69. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +80 -7
  70. package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +93 -0
  71. package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
  72. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
  73. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
  74. package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
  75. package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
  76. package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
  77. package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
  78. package/src/api/cyberia-instance/cyberia-fallback-world.js +368 -0
  79. package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
  80. package/src/api/cyberia-instance/cyberia-instance.model.js +84 -0
  81. package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
  82. package/src/api/cyberia-instance/cyberia-instance.service.js +191 -0
  83. package/src/api/cyberia-instance/cyberia-portal-connector.js +486 -0
  84. package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
  85. package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +413 -0
  86. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +228 -0
  87. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
  88. package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +42 -0
  89. package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
  90. package/src/api/cyberia-map/cyberia-map.model.js +30 -0
  91. package/src/api/cyberia-map/cyberia-map.router.js +40 -0
  92. package/src/api/cyberia-map/cyberia-map.service.js +74 -0
  93. package/src/api/document/document.service.js +1 -1
  94. package/src/api/file/file.controller.js +3 -1
  95. package/src/api/file/file.ref.json +18 -0
  96. package/src/api/file/file.service.js +28 -5
  97. package/src/api/ipfs/ipfs.controller.js +4 -25
  98. package/src/api/ipfs/ipfs.model.js +43 -34
  99. package/src/api/ipfs/ipfs.router.js +8 -13
  100. package/src/api/ipfs/ipfs.service.js +56 -104
  101. package/src/api/object-layer/README.md +347 -22
  102. package/src/api/object-layer/object-layer.controller.js +6 -2
  103. package/src/api/object-layer/object-layer.model.js +12 -8
  104. package/src/api/object-layer/object-layer.router.js +698 -42
  105. package/src/api/object-layer/object-layer.service.js +119 -37
  106. package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +1 -2
  107. package/src/api/user/user.router.js +10 -5
  108. package/src/api/user/user.service.js +15 -14
  109. package/src/cli/baremetal.js +6 -10
  110. package/src/cli/cloud-init.js +0 -3
  111. package/src/cli/cluster.js +7 -7
  112. package/src/cli/db.js +723 -857
  113. package/src/cli/deploy.js +215 -105
  114. package/src/cli/env.js +34 -5
  115. package/src/cli/fs.js +5 -4
  116. package/src/cli/image.js +0 -3
  117. package/src/cli/index.js +83 -15
  118. package/src/cli/kubectl.js +211 -0
  119. package/src/cli/monitor.js +5 -6
  120. package/src/cli/release.js +284 -0
  121. package/src/cli/repository.js +708 -62
  122. package/src/cli/run.js +371 -151
  123. package/src/cli/secrets.js +73 -2
  124. package/src/cli/ssh.js +1 -1
  125. package/src/cli/test.js +3 -3
  126. package/src/client/Cryptokoyn.index.js +3 -4
  127. package/src/client/CyberiaPortal.index.js +3 -4
  128. package/src/client/Default.index.js +3 -4
  129. package/src/client/Itemledger.index.js +4 -963
  130. package/src/client/Underpost.index.js +3 -4
  131. package/src/client/components/core/AgGrid.js +20 -5
  132. package/src/client/components/core/Alert.js +2 -2
  133. package/src/client/components/core/AppStore.js +69 -0
  134. package/src/client/components/core/CalendarCore.js +2 -2
  135. package/src/client/components/core/Content.js +22 -3
  136. package/src/client/components/core/Docs.js +30 -6
  137. package/src/client/components/core/DropDown.js +137 -17
  138. package/src/client/components/core/FileExplorer.js +71 -4
  139. package/src/client/components/core/Input.js +1 -1
  140. package/src/client/components/core/Keyboard.js +2 -2
  141. package/src/client/components/core/LogIn.js +2 -2
  142. package/src/client/components/core/LogOut.js +2 -2
  143. package/src/client/components/core/Modal.js +20 -7
  144. package/src/client/components/core/Panel.js +0 -1
  145. package/src/client/components/core/PanelForm.js +19 -19
  146. package/src/client/components/core/RichText.js +1 -2
  147. package/src/client/components/core/SocketIo.js +82 -29
  148. package/src/client/components/core/SocketIoHandler.js +75 -0
  149. package/src/client/components/core/Stream.js +143 -95
  150. package/src/client/components/core/Webhook.js +40 -7
  151. package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
  152. package/src/client/components/cryptokoyn/LogInCryptokoyn.js +3 -3
  153. package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +2 -2
  154. package/src/client/components/cryptokoyn/MenuCryptokoyn.js +3 -3
  155. package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +3 -51
  156. package/src/client/components/cyberia/InstanceEngineCyberia.js +700 -0
  157. package/src/client/components/cyberia/MapEngineCyberia.js +1359 -2
  158. package/src/client/components/cyberia/ObjectLayerEngineModal.js +17 -6
  159. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +92 -54
  160. package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
  161. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +217 -30
  162. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +44 -2
  163. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +3 -4
  164. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +2 -2
  165. package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +104 -9
  166. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +5 -0
  167. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +3 -49
  168. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -0
  169. package/src/client/components/default/AppStoreDefault.js +5 -0
  170. package/src/client/components/default/LogInDefault.js +3 -3
  171. package/src/client/components/default/LogOutDefault.js +2 -2
  172. package/src/client/components/default/MenuDefault.js +5 -5
  173. package/src/client/components/default/SocketIoDefault.js +3 -51
  174. package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
  175. package/src/client/components/itemledger/LogInItemledger.js +3 -3
  176. package/src/client/components/itemledger/LogOutItemledger.js +2 -2
  177. package/src/client/components/itemledger/MenuItemledger.js +3 -3
  178. package/src/client/components/itemledger/SocketIoItemledger.js +3 -51
  179. package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
  180. package/src/client/components/underpost/CssUnderpost.js +59 -0
  181. package/src/client/components/underpost/LogInUnderpost.js +6 -3
  182. package/src/client/components/underpost/LogOutUnderpost.js +4 -2
  183. package/src/client/components/underpost/MenuUnderpost.js +104 -18
  184. package/src/client/components/underpost/RoutesUnderpost.js +2 -0
  185. package/src/client/components/underpost/SocketIoUnderpost.js +3 -51
  186. package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
  187. package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
  188. package/src/client/public/cryptokoyn/microdata.json +85 -0
  189. package/src/client/public/cryptokoyn/site.webmanifest +57 -0
  190. package/src/client/public/cryptokoyn/sitemap +3 -3
  191. package/src/client/public/default/sitemap +3 -3
  192. package/src/client/public/itemledger/browserconfig.xml +2 -2
  193. package/src/client/public/itemledger/manifest.webmanifest +4 -4
  194. package/src/client/public/itemledger/microdata.json +71 -0
  195. package/src/client/public/itemledger/sitemap +3 -3
  196. package/src/client/public/itemledger/yandex-browser-manifest.json +2 -2
  197. package/src/client/public/test/sitemap +3 -3
  198. package/src/client/services/core/core.service.js +20 -8
  199. package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +105 -0
  200. package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
  201. package/src/client/services/cyberia-entity/cyberia-entity.service.js +105 -0
  202. package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
  203. package/src/client/services/cyberia-instance/cyberia-instance.service.js +122 -0
  204. package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +105 -0
  205. package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
  206. package/src/client/services/cyberia-map/cyberia-map.service.js +126 -0
  207. package/src/client/services/instance/instance.management.js +2 -2
  208. package/src/client/services/ipfs/ipfs.service.js +3 -23
  209. package/src/client/services/object-layer/object-layer.management.js +3 -3
  210. package/src/client/services/object-layer/object-layer.service.js +21 -0
  211. package/src/client/services/user/user.management.js +2 -2
  212. package/src/client/ssr/body/404.js +15 -11
  213. package/src/client/ssr/body/500.js +15 -11
  214. package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
  215. package/src/client/ssr/head/PwaItemledger.js +60 -0
  216. package/src/client/ssr/offline/NoNetworkConnection.js +11 -10
  217. package/src/client/ssr/pages/CyberiaServerMetrics.js +1 -1
  218. package/src/client/ssr/pages/Test.js +11 -10
  219. package/src/client.build.js +0 -3
  220. package/src/client.dev.js +0 -3
  221. package/src/db/DataBaseProvider.js +17 -2
  222. package/src/db/mariadb/MariaDB.js +14 -9
  223. package/src/db/mongo/MongooseDB.js +17 -1
  224. package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +305 -0
  225. package/src/grpc/cyberia/README.md +326 -0
  226. package/src/grpc/cyberia/grpc-server.js +530 -0
  227. package/src/index.js +24 -1
  228. package/src/proxy.js +0 -3
  229. package/src/runtime/express/Dockerfile +4 -0
  230. package/src/runtime/express/Express.js +33 -10
  231. package/src/runtime/lampp/Dockerfile +13 -2
  232. package/src/runtime/lampp/Lampp.js +33 -17
  233. package/src/runtime/wp/Dockerfile +68 -0
  234. package/src/runtime/wp/Wp.js +639 -0
  235. package/src/server/auth.js +36 -15
  236. package/src/server/backup.js +39 -12
  237. package/src/server/besu-genesis-generator.js +1630 -0
  238. package/src/server/client-build-docs.js +133 -17
  239. package/src/server/client-build-live.js +9 -18
  240. package/src/server/client-build.js +229 -101
  241. package/src/server/client-dev-server.js +14 -13
  242. package/src/server/client-formatted.js +109 -57
  243. package/src/server/conf.js +391 -164
  244. package/src/server/cron.js +27 -24
  245. package/src/server/dns.js +29 -12
  246. package/src/server/downloader.js +0 -2
  247. package/src/server/ipfs-client.js +24 -1
  248. package/src/server/logger.js +27 -9
  249. package/src/server/object-layer.js +217 -103
  250. package/src/server/peer.js +8 -2
  251. package/src/server/process.js +1 -50
  252. package/src/server/proxy.js +4 -8
  253. package/src/server/runtime.js +30 -9
  254. package/src/server/semantic-layer-generator-floor.js +359 -0
  255. package/src/server/semantic-layer-generator-skin.js +1294 -0
  256. package/src/server/semantic-layer-generator.js +116 -555
  257. package/src/server/ssr.js +0 -3
  258. package/src/server/start.js +19 -12
  259. package/src/server/tls.js +0 -2
  260. package/src/server.js +0 -4
  261. package/src/ws/IoInterface.js +1 -10
  262. package/src/ws/IoServer.js +14 -33
  263. package/src/ws/core/channels/core.ws.chat.js +65 -20
  264. package/src/ws/core/channels/core.ws.mailer.js +113 -32
  265. package/src/ws/core/channels/core.ws.stream.js +90 -31
  266. package/src/ws/core/core.ws.connection.js +12 -33
  267. package/src/ws/core/core.ws.emit.js +10 -26
  268. package/src/ws/core/core.ws.server.js +25 -58
  269. package/src/ws/default/channels/default.ws.main.js +53 -12
  270. package/src/ws/default/default.ws.connection.js +26 -13
  271. package/src/ws/default/default.ws.server.js +30 -12
  272. package/.env.development +0 -43
  273. package/.env.test +0 -43
  274. package/hardhat/contracts/CryptoKoyn.sol +0 -59
  275. package/hardhat/contracts/ItemLedger.sol +0 -73
  276. package/hardhat/contracts/Lock.sol +0 -34
  277. package/hardhat/hardhat.config.cjs +0 -45
  278. package/hardhat/ignition/modules/Lock.js +0 -18
  279. package/hardhat/networks/cryptokoyn-itemledger.network.json +0 -29
  280. package/hardhat/scripts/deployCryptokoyn.cjs +0 -25
  281. package/hardhat/scripts/deployItemledger.cjs +0 -25
  282. package/hardhat/test/Lock.js +0 -126
  283. package/hardhat/white-paper.md +0 -581
  284. package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
  285. package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
  286. package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
  287. package/src/client/components/default/ElementsDefault.js +0 -38
  288. package/src/client/components/itemledger/CommonItemledger.js +0 -29
  289. package/src/client/components/itemledger/ElementsItemledger.js +0 -38
  290. package/src/client/components/underpost/CommonUnderpost.js +0 -29
  291. package/src/client/components/underpost/ElementsUnderpost.js +0 -38
  292. package/src/ws/core/management/core.ws.chat.js +0 -8
  293. package/src/ws/core/management/core.ws.mailer.js +0 -16
  294. package/src/ws/core/management/core.ws.stream.js +0 -8
  295. package/src/ws/default/management/default.ws.main.js +0 -8
  296. package/white-paper.md +0 -581
@@ -0,0 +1,1055 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type { Addressable } from "ethers";
5
+ import { Contract, ContractFactory, ContractTransactionResponse, Interface } from "ethers"
6
+ import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers"
7
+ import type { NonPayableOverrides } from "../common.js"
8
+ import type { ObjectLayerToken, ObjectLayerTokenInterface } from "../ObjectLayerToken.js";
9
+
10
+ const _abi = [
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "initialOwner",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "string",
20
+ "name": "baseURI",
21
+ "type": "string"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "sender",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "balance",
37
+ "type": "uint256"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "needed",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "tokenId",
47
+ "type": "uint256"
48
+ }
49
+ ],
50
+ "name": "ERC1155InsufficientBalance",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "address",
57
+ "name": "approver",
58
+ "type": "address"
59
+ }
60
+ ],
61
+ "name": "ERC1155InvalidApprover",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "idsLength",
69
+ "type": "uint256"
70
+ },
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "valuesLength",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "ERC1155InvalidArrayLength",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "address",
84
+ "name": "operator",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "ERC1155InvalidOperator",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "address",
95
+ "name": "receiver",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "name": "ERC1155InvalidReceiver",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "sender",
107
+ "type": "address"
108
+ }
109
+ ],
110
+ "name": "ERC1155InvalidSender",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [
115
+ {
116
+ "internalType": "address",
117
+ "name": "operator",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "internalType": "address",
122
+ "name": "owner",
123
+ "type": "address"
124
+ }
125
+ ],
126
+ "name": "ERC1155MissingApprovalForAll",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "EnforcedPause",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [],
136
+ "name": "ExpectedPause",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "address",
143
+ "name": "owner",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "OwnableInvalidOwner",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "address",
154
+ "name": "account",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "OwnableUnauthorizedAccount",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "anonymous": false,
163
+ "inputs": [
164
+ {
165
+ "indexed": true,
166
+ "internalType": "address",
167
+ "name": "account",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "indexed": true,
172
+ "internalType": "address",
173
+ "name": "operator",
174
+ "type": "address"
175
+ },
176
+ {
177
+ "indexed": false,
178
+ "internalType": "bool",
179
+ "name": "approved",
180
+ "type": "bool"
181
+ }
182
+ ],
183
+ "name": "ApprovalForAll",
184
+ "type": "event"
185
+ },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "indexed": true,
191
+ "internalType": "uint256",
192
+ "name": "tokenId",
193
+ "type": "uint256"
194
+ },
195
+ {
196
+ "indexed": false,
197
+ "internalType": "string",
198
+ "name": "metadataCid",
199
+ "type": "string"
200
+ }
201
+ ],
202
+ "name": "MetadataUpdated",
203
+ "type": "event"
204
+ },
205
+ {
206
+ "anonymous": false,
207
+ "inputs": [
208
+ {
209
+ "indexed": true,
210
+ "internalType": "uint256",
211
+ "name": "tokenId",
212
+ "type": "uint256"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "string",
217
+ "name": "itemId",
218
+ "type": "string"
219
+ },
220
+ {
221
+ "indexed": false,
222
+ "internalType": "string",
223
+ "name": "metadataCid",
224
+ "type": "string"
225
+ },
226
+ {
227
+ "indexed": false,
228
+ "internalType": "uint256",
229
+ "name": "initialSupply",
230
+ "type": "uint256"
231
+ }
232
+ ],
233
+ "name": "ObjectLayerRegistered",
234
+ "type": "event"
235
+ },
236
+ {
237
+ "anonymous": false,
238
+ "inputs": [
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "previousOwner",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": true,
247
+ "internalType": "address",
248
+ "name": "newOwner",
249
+ "type": "address"
250
+ }
251
+ ],
252
+ "name": "OwnershipTransferred",
253
+ "type": "event"
254
+ },
255
+ {
256
+ "anonymous": false,
257
+ "inputs": [
258
+ {
259
+ "indexed": false,
260
+ "internalType": "address",
261
+ "name": "account",
262
+ "type": "address"
263
+ }
264
+ ],
265
+ "name": "Paused",
266
+ "type": "event"
267
+ },
268
+ {
269
+ "anonymous": false,
270
+ "inputs": [
271
+ {
272
+ "indexed": true,
273
+ "internalType": "address",
274
+ "name": "operator",
275
+ "type": "address"
276
+ },
277
+ {
278
+ "indexed": true,
279
+ "internalType": "address",
280
+ "name": "from",
281
+ "type": "address"
282
+ },
283
+ {
284
+ "indexed": true,
285
+ "internalType": "address",
286
+ "name": "to",
287
+ "type": "address"
288
+ },
289
+ {
290
+ "indexed": false,
291
+ "internalType": "uint256[]",
292
+ "name": "ids",
293
+ "type": "uint256[]"
294
+ },
295
+ {
296
+ "indexed": false,
297
+ "internalType": "uint256[]",
298
+ "name": "values",
299
+ "type": "uint256[]"
300
+ }
301
+ ],
302
+ "name": "TransferBatch",
303
+ "type": "event"
304
+ },
305
+ {
306
+ "anonymous": false,
307
+ "inputs": [
308
+ {
309
+ "indexed": true,
310
+ "internalType": "address",
311
+ "name": "operator",
312
+ "type": "address"
313
+ },
314
+ {
315
+ "indexed": true,
316
+ "internalType": "address",
317
+ "name": "from",
318
+ "type": "address"
319
+ },
320
+ {
321
+ "indexed": true,
322
+ "internalType": "address",
323
+ "name": "to",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "indexed": false,
328
+ "internalType": "uint256",
329
+ "name": "id",
330
+ "type": "uint256"
331
+ },
332
+ {
333
+ "indexed": false,
334
+ "internalType": "uint256",
335
+ "name": "value",
336
+ "type": "uint256"
337
+ }
338
+ ],
339
+ "name": "TransferSingle",
340
+ "type": "event"
341
+ },
342
+ {
343
+ "anonymous": false,
344
+ "inputs": [
345
+ {
346
+ "indexed": false,
347
+ "internalType": "string",
348
+ "name": "value",
349
+ "type": "string"
350
+ },
351
+ {
352
+ "indexed": true,
353
+ "internalType": "uint256",
354
+ "name": "id",
355
+ "type": "uint256"
356
+ }
357
+ ],
358
+ "name": "URI",
359
+ "type": "event"
360
+ },
361
+ {
362
+ "anonymous": false,
363
+ "inputs": [
364
+ {
365
+ "indexed": false,
366
+ "internalType": "address",
367
+ "name": "account",
368
+ "type": "address"
369
+ }
370
+ ],
371
+ "name": "Unpaused",
372
+ "type": "event"
373
+ },
374
+ {
375
+ "inputs": [],
376
+ "name": "CRYPTOKOYN",
377
+ "outputs": [
378
+ {
379
+ "internalType": "uint256",
380
+ "name": "",
381
+ "type": "uint256"
382
+ }
383
+ ],
384
+ "stateMutability": "view",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [],
389
+ "name": "INITIAL_CRYPTOKOYN_SUPPLY",
390
+ "outputs": [
391
+ {
392
+ "internalType": "uint256",
393
+ "name": "",
394
+ "type": "uint256"
395
+ }
396
+ ],
397
+ "stateMutability": "view",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "address",
404
+ "name": "account",
405
+ "type": "address"
406
+ },
407
+ {
408
+ "internalType": "uint256",
409
+ "name": "id",
410
+ "type": "uint256"
411
+ }
412
+ ],
413
+ "name": "balanceOf",
414
+ "outputs": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [
426
+ {
427
+ "internalType": "address[]",
428
+ "name": "accounts",
429
+ "type": "address[]"
430
+ },
431
+ {
432
+ "internalType": "uint256[]",
433
+ "name": "ids",
434
+ "type": "uint256[]"
435
+ }
436
+ ],
437
+ "name": "balanceOfBatch",
438
+ "outputs": [
439
+ {
440
+ "internalType": "uint256[]",
441
+ "name": "",
442
+ "type": "uint256[]"
443
+ }
444
+ ],
445
+ "stateMutability": "view",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [
450
+ {
451
+ "internalType": "address",
452
+ "name": "to",
453
+ "type": "address"
454
+ },
455
+ {
456
+ "internalType": "string[]",
457
+ "name": "itemIds",
458
+ "type": "string[]"
459
+ },
460
+ {
461
+ "internalType": "string[]",
462
+ "name": "metadataCids",
463
+ "type": "string[]"
464
+ },
465
+ {
466
+ "internalType": "uint256[]",
467
+ "name": "supplies",
468
+ "type": "uint256[]"
469
+ },
470
+ {
471
+ "internalType": "bytes",
472
+ "name": "data",
473
+ "type": "bytes"
474
+ }
475
+ ],
476
+ "name": "batchRegisterObjectLayers",
477
+ "outputs": [
478
+ {
479
+ "internalType": "uint256[]",
480
+ "name": "tokenIds",
481
+ "type": "uint256[]"
482
+ }
483
+ ],
484
+ "stateMutability": "nonpayable",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [
489
+ {
490
+ "internalType": "address",
491
+ "name": "account",
492
+ "type": "address"
493
+ },
494
+ {
495
+ "internalType": "uint256",
496
+ "name": "id",
497
+ "type": "uint256"
498
+ },
499
+ {
500
+ "internalType": "uint256",
501
+ "name": "value",
502
+ "type": "uint256"
503
+ }
504
+ ],
505
+ "name": "burn",
506
+ "outputs": [],
507
+ "stateMutability": "nonpayable",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "internalType": "address",
514
+ "name": "account",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "internalType": "uint256[]",
519
+ "name": "ids",
520
+ "type": "uint256[]"
521
+ },
522
+ {
523
+ "internalType": "uint256[]",
524
+ "name": "values",
525
+ "type": "uint256[]"
526
+ }
527
+ ],
528
+ "name": "burnBatch",
529
+ "outputs": [],
530
+ "stateMutability": "nonpayable",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [
535
+ {
536
+ "internalType": "string",
537
+ "name": "itemId",
538
+ "type": "string"
539
+ }
540
+ ],
541
+ "name": "computeTokenId",
542
+ "outputs": [
543
+ {
544
+ "internalType": "uint256",
545
+ "name": "",
546
+ "type": "uint256"
547
+ }
548
+ ],
549
+ "stateMutability": "pure",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "id",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "name": "exists",
561
+ "outputs": [
562
+ {
563
+ "internalType": "bool",
564
+ "name": "",
565
+ "type": "bool"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "tokenId",
576
+ "type": "uint256"
577
+ }
578
+ ],
579
+ "name": "getItemId",
580
+ "outputs": [
581
+ {
582
+ "internalType": "string",
583
+ "name": "",
584
+ "type": "string"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [
592
+ {
593
+ "internalType": "uint256",
594
+ "name": "tokenId",
595
+ "type": "uint256"
596
+ }
597
+ ],
598
+ "name": "getMetadataCID",
599
+ "outputs": [
600
+ {
601
+ "internalType": "string",
602
+ "name": "",
603
+ "type": "string"
604
+ }
605
+ ],
606
+ "stateMutability": "view",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [
611
+ {
612
+ "internalType": "string",
613
+ "name": "itemId",
614
+ "type": "string"
615
+ }
616
+ ],
617
+ "name": "getTokenIdByItemId",
618
+ "outputs": [
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "",
622
+ "type": "uint256"
623
+ }
624
+ ],
625
+ "stateMutability": "view",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "account",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "address",
637
+ "name": "operator",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "name": "isApprovedForAll",
642
+ "outputs": [
643
+ {
644
+ "internalType": "bool",
645
+ "name": "",
646
+ "type": "bool"
647
+ }
648
+ ],
649
+ "stateMutability": "view",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "address",
656
+ "name": "to",
657
+ "type": "address"
658
+ },
659
+ {
660
+ "internalType": "uint256",
661
+ "name": "tokenId",
662
+ "type": "uint256"
663
+ },
664
+ {
665
+ "internalType": "uint256",
666
+ "name": "amount",
667
+ "type": "uint256"
668
+ },
669
+ {
670
+ "internalType": "bytes",
671
+ "name": "data",
672
+ "type": "bytes"
673
+ }
674
+ ],
675
+ "name": "mint",
676
+ "outputs": [],
677
+ "stateMutability": "nonpayable",
678
+ "type": "function"
679
+ },
680
+ {
681
+ "inputs": [
682
+ {
683
+ "internalType": "address",
684
+ "name": "to",
685
+ "type": "address"
686
+ },
687
+ {
688
+ "internalType": "uint256[]",
689
+ "name": "ids",
690
+ "type": "uint256[]"
691
+ },
692
+ {
693
+ "internalType": "uint256[]",
694
+ "name": "amounts",
695
+ "type": "uint256[]"
696
+ },
697
+ {
698
+ "internalType": "bytes",
699
+ "name": "data",
700
+ "type": "bytes"
701
+ }
702
+ ],
703
+ "name": "mintBatch",
704
+ "outputs": [],
705
+ "stateMutability": "nonpayable",
706
+ "type": "function"
707
+ },
708
+ {
709
+ "inputs": [],
710
+ "name": "nextTokenId",
711
+ "outputs": [
712
+ {
713
+ "internalType": "uint256",
714
+ "name": "",
715
+ "type": "uint256"
716
+ }
717
+ ],
718
+ "stateMutability": "view",
719
+ "type": "function"
720
+ },
721
+ {
722
+ "inputs": [],
723
+ "name": "owner",
724
+ "outputs": [
725
+ {
726
+ "internalType": "address",
727
+ "name": "",
728
+ "type": "address"
729
+ }
730
+ ],
731
+ "stateMutability": "view",
732
+ "type": "function"
733
+ },
734
+ {
735
+ "inputs": [],
736
+ "name": "pause",
737
+ "outputs": [],
738
+ "stateMutability": "nonpayable",
739
+ "type": "function"
740
+ },
741
+ {
742
+ "inputs": [],
743
+ "name": "paused",
744
+ "outputs": [
745
+ {
746
+ "internalType": "bool",
747
+ "name": "",
748
+ "type": "bool"
749
+ }
750
+ ],
751
+ "stateMutability": "view",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "address",
758
+ "name": "to",
759
+ "type": "address"
760
+ },
761
+ {
762
+ "internalType": "string",
763
+ "name": "itemId",
764
+ "type": "string"
765
+ },
766
+ {
767
+ "internalType": "string",
768
+ "name": "metadataCid",
769
+ "type": "string"
770
+ },
771
+ {
772
+ "internalType": "uint256",
773
+ "name": "initialSupply",
774
+ "type": "uint256"
775
+ },
776
+ {
777
+ "internalType": "bytes",
778
+ "name": "data",
779
+ "type": "bytes"
780
+ }
781
+ ],
782
+ "name": "registerObjectLayer",
783
+ "outputs": [
784
+ {
785
+ "internalType": "uint256",
786
+ "name": "tokenId",
787
+ "type": "uint256"
788
+ }
789
+ ],
790
+ "stateMutability": "nonpayable",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [],
795
+ "name": "renounceOwnership",
796
+ "outputs": [],
797
+ "stateMutability": "nonpayable",
798
+ "type": "function"
799
+ },
800
+ {
801
+ "inputs": [
802
+ {
803
+ "internalType": "address",
804
+ "name": "from",
805
+ "type": "address"
806
+ },
807
+ {
808
+ "internalType": "address",
809
+ "name": "to",
810
+ "type": "address"
811
+ },
812
+ {
813
+ "internalType": "uint256[]",
814
+ "name": "ids",
815
+ "type": "uint256[]"
816
+ },
817
+ {
818
+ "internalType": "uint256[]",
819
+ "name": "values",
820
+ "type": "uint256[]"
821
+ },
822
+ {
823
+ "internalType": "bytes",
824
+ "name": "data",
825
+ "type": "bytes"
826
+ }
827
+ ],
828
+ "name": "safeBatchTransferFrom",
829
+ "outputs": [],
830
+ "stateMutability": "nonpayable",
831
+ "type": "function"
832
+ },
833
+ {
834
+ "inputs": [
835
+ {
836
+ "internalType": "address",
837
+ "name": "from",
838
+ "type": "address"
839
+ },
840
+ {
841
+ "internalType": "address",
842
+ "name": "to",
843
+ "type": "address"
844
+ },
845
+ {
846
+ "internalType": "uint256",
847
+ "name": "id",
848
+ "type": "uint256"
849
+ },
850
+ {
851
+ "internalType": "uint256",
852
+ "name": "value",
853
+ "type": "uint256"
854
+ },
855
+ {
856
+ "internalType": "bytes",
857
+ "name": "data",
858
+ "type": "bytes"
859
+ }
860
+ ],
861
+ "name": "safeTransferFrom",
862
+ "outputs": [],
863
+ "stateMutability": "nonpayable",
864
+ "type": "function"
865
+ },
866
+ {
867
+ "inputs": [
868
+ {
869
+ "internalType": "address",
870
+ "name": "operator",
871
+ "type": "address"
872
+ },
873
+ {
874
+ "internalType": "bool",
875
+ "name": "approved",
876
+ "type": "bool"
877
+ }
878
+ ],
879
+ "name": "setApprovalForAll",
880
+ "outputs": [],
881
+ "stateMutability": "nonpayable",
882
+ "type": "function"
883
+ },
884
+ {
885
+ "inputs": [
886
+ {
887
+ "internalType": "string",
888
+ "name": "newBaseURI",
889
+ "type": "string"
890
+ }
891
+ ],
892
+ "name": "setBaseURI",
893
+ "outputs": [],
894
+ "stateMutability": "nonpayable",
895
+ "type": "function"
896
+ },
897
+ {
898
+ "inputs": [
899
+ {
900
+ "internalType": "uint256",
901
+ "name": "tokenId",
902
+ "type": "uint256"
903
+ },
904
+ {
905
+ "internalType": "string",
906
+ "name": "metadataCid",
907
+ "type": "string"
908
+ }
909
+ ],
910
+ "name": "setTokenMetadataCID",
911
+ "outputs": [],
912
+ "stateMutability": "nonpayable",
913
+ "type": "function"
914
+ },
915
+ {
916
+ "inputs": [
917
+ {
918
+ "internalType": "bytes4",
919
+ "name": "interfaceId",
920
+ "type": "bytes4"
921
+ }
922
+ ],
923
+ "name": "supportsInterface",
924
+ "outputs": [
925
+ {
926
+ "internalType": "bool",
927
+ "name": "",
928
+ "type": "bool"
929
+ }
930
+ ],
931
+ "stateMutability": "view",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [],
936
+ "name": "totalSupply",
937
+ "outputs": [
938
+ {
939
+ "internalType": "uint256",
940
+ "name": "",
941
+ "type": "uint256"
942
+ }
943
+ ],
944
+ "stateMutability": "view",
945
+ "type": "function"
946
+ },
947
+ {
948
+ "inputs": [
949
+ {
950
+ "internalType": "uint256",
951
+ "name": "id",
952
+ "type": "uint256"
953
+ }
954
+ ],
955
+ "name": "totalSupply",
956
+ "outputs": [
957
+ {
958
+ "internalType": "uint256",
959
+ "name": "",
960
+ "type": "uint256"
961
+ }
962
+ ],
963
+ "stateMutability": "view",
964
+ "type": "function"
965
+ },
966
+ {
967
+ "inputs": [
968
+ {
969
+ "internalType": "address",
970
+ "name": "newOwner",
971
+ "type": "address"
972
+ }
973
+ ],
974
+ "name": "transferOwnership",
975
+ "outputs": [],
976
+ "stateMutability": "nonpayable",
977
+ "type": "function"
978
+ },
979
+ {
980
+ "inputs": [],
981
+ "name": "unpause",
982
+ "outputs": [],
983
+ "stateMutability": "nonpayable",
984
+ "type": "function"
985
+ },
986
+ {
987
+ "inputs": [
988
+ {
989
+ "internalType": "uint256",
990
+ "name": "tokenId",
991
+ "type": "uint256"
992
+ }
993
+ ],
994
+ "name": "uri",
995
+ "outputs": [
996
+ {
997
+ "internalType": "string",
998
+ "name": "",
999
+ "type": "string"
1000
+ }
1001
+ ],
1002
+ "stateMutability": "view",
1003
+ "type": "function"
1004
+ }
1005
+ ] as const;
1006
+
1007
+ const _bytecode = "0x608060405234801561000f575f5ffd5b50604051613f90380380613f9083398101604081905261002e916109ab565b8181610039816102c5565b506001600160a01b03811661006857604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610071816102d5565b5061009b7ff980f48fa9f282785d1ffbd367a0f497e413b54af7cb48af84acf2c031a17af8610326565b60076100a78282610afb565b506100d17f4c4f14b29b3133a5368dab8573a39063fb83387ab950e979a8df01c9db20c0a1610326565b6001600b556100fe7e1a94553fd70f401038cb10ca5e5998f6f0b4589ef9492dc4f9892e2b897aa4610326565b60408051808201909152600a81526931b93cb83a37b5b7bcb760b11b6020808301919091525f8052600990527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b906101569082610afb565b506101807f415ffc2f9202ebb65a0d6b10d42bbc653c989a318a679f5ab2869a65c82caa56610326565b5f600a5f6040516020016101a4906931b93cb83a37b5b7bcb760b11b8152600a0190565b60408051601f198184030181529181528151602092830120835290820192909252015f20556101f27f9e211a1c06e571a1b1ae7110e5aa9a1aae5000072e7594cca5c532015b600bbe610326565b61021d825f6a084595161401484a00000060405180602001604052805f81525061033c60201b60201c565b6102467f703c9c00090c73554d5ba93b232c76e7ea75ec7df675eb616647c7d8c574a2e1610326565b5f7f41d55018250888e39eb136160ed912320ac5d15c0c64b5997d8640fd74d496646a084595161401484a0000006040516102b691906060808252600a908201526931b93cb83a37b5b7bcb760b11b608082015260a0602082018190525f90820152604081019190915260c00190565b60405180910390a25050610d3e565b60026102d18282610afb565b5050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b610339816103a060201b611a0c1760201c565b50565b6001600160a01b03841661036557604051632bfa23e760e11b81525f600482015260240161005f565b604080516001808252602082018690528183019081526060820185905260808201909252906103985f87848487846103ca565b505050505050565b60405181815273c0bec0bec0bec0bec0bec0bec0bec0bec0bec0be905f80602083855afa50505050565b6103d686868686610423565b6001600160a01b03851615610398573381156103ff576103fa81888888888861045e565b61041a565b60208581015190850151610417838a8a85858a61057f565b50505b50505050505050565b61044c7f20a3e8dd847eb68fda4f506e5cc2f746f8c61267e29ff41c89a215f677f215bf610326565b61045884848484610666565b50505050565b6001600160a01b0384163b156103985760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906104a29089908990889088908890600401610c1d565b6020604051808303815f875af19250505080156104dc575060408051601f3d908101601f191682019092526104d991810190610c7a565b60015b610543573d808015610509576040519150601f19603f3d011682016040523d82523d5f602084013e61050e565b606091505b5080515f0361053b57604051632bfa23e760e11b81526001600160a01b038616600482015260240161005f565b805160208201fd5b6001600160e01b0319811663bc197c8160e01b1461041a57604051632bfa23e760e11b81526001600160a01b038616600482015260240161005f565b6001600160a01b0384163b156103985760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906105c39089908990889088908890600401610ca8565b6020604051808303815f875af19250505080156105fd575060408051601f3d908101601f191682019092526105fa91810190610c7a565b60015b61062a573d808015610509576040519150601f19603f3d011682016040523d82523d5f602084013e61050e565b6001600160e01b0319811663f23a6e6160e01b1461041a57604051632bfa23e760e11b81526001600160a01b038616600482015260240161005f565b6106728484848461074d565b6001600160a01b0384166106ef575f805b83518110156106d65760208181028481018201519086018201515f9081526004909252604082208054919283926106bb908490610cec565b909155506106cb90508184610cec565b925050600101610683565b508060055f8282546106e89190610cec565b9091555050505b6001600160a01b038316610458575f805b835181101561073c5760208181028481018201519086018201515f90815260049092526040909120805482900390559190910190600101610700565b506005805491909103905550505050565b610755610761565b61045884848484610787565b60035460ff16156107855760405163d93c066560e01b815260040160405180910390fd5b565b80518251146107b65781518151604051635b05999160e01b81526004810192909252602482015260440161005f565b335f5b83518110156108b8576020818102858101820151908501909101516001600160a01b0388161561086a575f828152602081815260408083206001600160a01b038c16845290915290205481811015610844576040516303dee4c560e01b81526001600160a01b038a16600482015260248101829052604481018390526064810184905260840161005f565b5f838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b038716156108ae575f828152602081815260408083206001600160a01b038b168452909152812080548392906108a8908490610cec565b90915550505b50506001016107b9565b5082516001036109385760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610929929190918252602082015260400190565b60405180910390a45050610990565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610987929190610d11565b60405180910390a45b5050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156109bc575f5ffd5b82516001600160a01b03811681146109d2575f5ffd5b60208401519092506001600160401b038111156109ed575f5ffd5b8301601f810185136109fd575f5ffd5b80516001600160401b03811115610a1657610a16610997565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610a4457610a44610997565b604052818152828201602001871015610a5b575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b600181811c90821680610a8e57607f821691505b602082108103610aac57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610af657805f5260205f20601f840160051c81016020851015610ad75750805b601f840160051c820191505b81811015610990575f8155600101610ae3565b505050565b81516001600160401b03811115610b1457610b14610997565b610b2881610b228454610a7a565b84610ab2565b6020601f821160018114610b5a575f8315610b435750848201515b5f19600385901b1c1916600184901b178455610990565b5f84815260208120601f198516915b82811015610b895787850151825560209485019460019092019101610b69565b5084821015610ba657868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f8151808452602084019350602083015f5b82811015610be5578151865260209586019590910190600101610bc7565b5093949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0386811682528516602082015260a0604082018190525f90610c4890830186610bb5565b8281036060840152610c5a8186610bb5565b90508281036080840152610c6e8185610bef565b98975050505050505050565b5f60208284031215610c8a575f5ffd5b81516001600160e01b031981168114610ca1575f5ffd5b9392505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90610ce190830184610bef565b979650505050505050565b80820180821115610d0b57634e487b7160e01b5f52601160045260245ffd5b92915050565b604081525f610d236040830185610bb5565b8281036020840152610d358185610bb5565b95945050505050565b61324580610d4b5f395ff3fe608060405234801561000f575f5ffd5b50600436106101e6575f3560e01c80636b20c45411610109578063a22cb4651161009e578063e985e9c51161006e578063e985e9c514610413578063f242432a1461044e578063f2fde38b14610461578063f5298aca14610474575f5ffd5b8063a22cb465146103bb578063a57e9537146103ce578063a9a76ece146103e1578063bd85b039146103f4575f5ffd5b8063784e07be116100d9578063784e07be146103735780638456cb59146103865780638da5cb5b1461038e5780639a8384af146103a9575f5ffd5b80636b20c4541461033d578063715018a614610350578063731133e91461035857806375794a3c1461036b575f5ffd5b806332ed05061161017f5780634f558e791161014f5780634f558e79146102eb57806355f804b31461030c5780635ac13d361461031f5780635c975abb14610332575f5ffd5b806332ed05061461029d5780633d4d6fd4146102bd5780633f4ba83a146102d05780634e1273f4146102d8575f5ffd5b806317f45369116101ba57806317f453691461025a57806318160ddd1461026d5780631f7fdffa146102755780632eb2c2d61461028a575f5ffd5b8062fdd58e146101ea57806301ffc9a7146102105780630e89341c146102335780631194612c14610253575b5f5ffd5b6101fd6101f83660046124b0565b610487565b6040519081526020015b60405180910390f35b61022361021e3660046124ed565b6104ae565b6040519015158152602001610207565b610246610241366004612508565b6104fd565b604051610207919061254d565b6101fd5f81565b6101fd6102683660046125a3565b6106a4565b6005546101fd565b610288610283366004612698565b610b12565b005b61028861029836600461287f565b610beb565b6102b06102ab36600461292b565b610c0a565b6040516102079190612a41565b6101fd6102cb366004612a53565b61138c565b6102886113e8565b6102b06102e6366004612a91565b611423565b6102236102f9366004612508565b5f90815260046020526040902054151590565b61028861031a366004612a53565b6114ed565b61028861032d366004612b52565b611597565b60035460ff16610223565b61028861034b366004612b99565b6116b2565b610288611716565b610288610366366004612c0b565b611727565b6101fd611799565b6101fd610381366004612a53565b6117ca565b610288611836565b6006546040516001600160a01b039091168152602001610207565b6101fd6a084595161401484a00000081565b6102886103c9366004612c6d565b61186f565b6102466103dc366004612508565b61187a565b6102466103ef366004612508565b611940565b6101fd610402366004612508565b5f9081526004602052604090205490565b610223610421366004612ca6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b61028861045c366004612cd7565b611983565b61028861046f366004612d2a565b611999565b610288610482366004612d43565b6119d6565b5f818152602081815260408083206001600160a01b03861684529091529020545b92915050565b5f6001600160e01b03198216636cdb3d1360e11b14806104de57506001600160e01b031982166303a24d0760e21b145b806104a857506301ffc9a760e01b6001600160e01b03198316146104a8565b60606105287f40a8552d02d009267a91beb9ccdbf6346ca337966d92cd6953f2207daebbff50611a36565b5f828152600860205260408120805461054090612d73565b80601f016020809104026020016040519081016040528092919081815260200182805461056c90612d73565b80156105b75780601f1061058e576101008083540402835291602001916105b7565b820191905f5260205f20905b81548152906001019060200180831161059a57829003601f168201915b505050505090506105e77f3a1be29309a446cf21a6aa685a1de178bdf40dd1dce932ab849e521f1b1b4961611a36565b80511561066b576106177f5483b6758f5f4322e0bad152d8b53117436dc5dcb9551ebdc9f2e05cbf9bb8f8611a36565b6106407f495e74b574a45ea73d7033c4f59249775021bc731a7dc6df05f2163dda38f3d0611a36565b600781604051602001610654929190612dab565b604051602081830303815290604052915050919050565b6106947f5210f000c621c8a82008bc049a8e6cfc6e8d9d8ed98fc183afab652a93190ccd611a36565b61069d83611a3f565b9392505050565b5f6106ad611a4e565b6106d67fe68c538d187b54774cdbc7ae95056be86a55cf3d7625e34cac2ef956f611b9dc611a36565b5f88886040516020016106ea929190612e2b565b60405160208183030381529060405280519060200120905061072b7f0144b8b2a21213d4006a3e462e29bbf8de5ca3e6db1643efd4f81d8c84aec53d611a36565b5f818152600a602052604090205415801561077a57505f80805260096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b805461077690612d73565b9050115b8061079057505f818152600a6020526040902054155b6107f35760405162461bcd60e51b815260206004820152602960248201527f4f626a6563744c61796572546f6b656e3a206974656d20616c726561647920726044820152681959da5cdd195c995960ba1b60648201526084015b60405180910390fd5b61081c7f154bb31e14f80b375520d9751742ff459227b1b83ddf4d02e024df1ba1b05382611a36565b610826898961138c565b91506108517f90bd63b660b8d0d755ca28fe28405bd0f42ea0dbbc038f100163a1e4a932dd16611a36565b5f828152600960205260409020805461086990612d73565b1590506108c45760405162461bcd60e51b8152602060048201526024808201527f4f626a6563744c61796572546f6b656e3a20746f6b656e20494420636f6c6c6960448201526339b4b7b760e11b60648201526084016107ea565b6108ed7fa3b2ae32533b2ea1083cf6dbdcd5d51ccbf47289890d67dfc85fbc9954b8afa6611a36565b5f828152600960205260409020610905898b83612e7e565b5061092f7ff5b4c210c142b06b2486ee362767e1f2cba7736a6cba42a15f6a9ceea14fae16611a36565b5f818152600a602052604090208290556109687f61e7f7f8e4462700171f817b01902ea0e1dba0dff8f44dea7fb4022db24983c8611a36565b85156109da576109977fbdb9db33dda1798bbc9184515850d04d85e2f00cc0ecb3ee2c31d128b638f4c2611a36565b6109c07f8cd44f0572419128c47045d10aa9da959ab8f5087a58704d80d7cd74d77a9c74611a36565b5f8281526008602052604090206109d8878983612e7e565b505b610a037f8e273f28b2129e59397f7363e7cfc589ae4cfa0c88b2992c65da43f146e18388611a36565b8415610a9c57610a327f35f3adb0b66712d58845b8953fd4b55a33e7f8741730e5de3f18e7169b7753ad611a36565b610a5b7fa3dfe2384ebf07842ca6abb6777420666f56b91403314b18868ce20999ffaa25611a36565b610a9c8a838787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611a7b92505050565b610ac57f82bcf452091f4797c882e5203aa3fe81558082233a6582b02da4c82361ef048b611a36565b817f41d55018250888e39eb136160ed912320ac5d15c0c64b5997d8640fd74d496648a8a8a8a8a604051610afd959493929190612f5f565b60405180910390a25098975050505050505050565b610b1a611a4e565b610b437ff028aede21b02272c134b341268accdb08c64d3707ba71a61838e66b05d14161611a36565b610be2878787808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284375f9201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284375f92019190915250611adf92505050565b50505050505050565b610bf6335b86611b1d565b610c038585858585611b77565b5050505050565b6060610c14611a4e565b610c3d7fb5da79984b4056d61c588f20900d385118c634f2b89b81e595fd4b3e623800d4611a36565b8786148015610c4b57508784145b610ca75760405162461bcd60e51b815260206004820152602760248201527f4f626a6563744c61796572546f6b656e3a206172726179206c656e677468206d6044820152660d2e6dac2e8c6d60cb1b60648201526084016107ea565b610cd07f6ca6da3be42f383d5e74736691fcad28d19d8952ef831b437e228412eb238f03611a36565b876001600160401b03811115610ce857610ce8612744565b604051908082528060200260200182016040528015610d11578160200160208202803683370190505b509050610d3d7ff6837f5aa4d2368b973f17ec4d27adca808dbd5ba3dde47ef78b673873339a24611a36565b5f886001600160401b03811115610d5657610d56612744565b604051908082528060200260200182016040528015610d7f578160200160208202803683370190505b509050610dab7f6dc66233aaa8e4ac0f285a81eaedd84900a518f8e0317b6360cc13c6a89d0afd611a36565b5f896001600160401b03811115610dc457610dc4612744565b604051908082528060200260200182016040528015610ded578160200160208202803683370190505b509050610e197f06b3007487332a172c53245acb2abc9214309d00e7f5090525ba0a5684385a01611a36565b5f5b8a81101561131257610e4c7fb0374b443f92d8ecfe5a3b4ef4ad16b2a24f228465ca65f0c588d01438d9cfd2611a36565b610e757f94511935020c47b254c2d19f46d8ac6bd65a7dc02f001d3f201304207bc48303611a36565b5f610e9d8d8d84818110610e8b57610e8b612f98565b90506020028101906102cb9190612fac565b9050610ec87fbc3dc8cbada2f22dfe38d2f9fac94079a4532de9769dd62da48a5731eb3ce247611a36565b5f8181526009602052604090208054610ee090612d73565b159050610f555760405162461bcd60e51b815260206004820152603f60248201527f4f626a6563744c61796572546f6b656e3a206974656d20616c7265616479207260448201527f656769737465726564206f7220746f6b656e20494420636f6c6c6973696f6e0060648201526084016107ea565b610f7e7f55c69acdd75c7a66a5f8b1b29fd725e8597634e04ff10f2b573916ab81524758611a36565b5f8d8d84818110610f9157610f91612f98565b9050602002810190610fa39190612fac565b604051602001610fb4929190612e2b565b604051602081830303815290604052805190602001209050610ff57f8f277f6a52027e37684e64c6cdab76718181092e799e00b9d459e4bb0af95ed0611a36565b8d8d8481811061100757611007612f98565b90506020028101906110199190612fac565b5f84815260096020526040902091611032919083612e7e565b5061105c7f553d572faf7d552b0cab9f5aff58f38f6d56b302542f08c0c0cec355e565f7dc611a36565b5f818152600a602052604090208290556110957f95d2ea43b2245eb7b244b9facde5136034ba34b1c9aa143629372a446b287a48611a36565b5f8c8c858181106110a8576110a8612f98565b90506020028101906110ba9190612fac565b90501115611153576110eb7f5281f61c3a43fb00a95f615a18f0bbe863706173ed426fbb62f6f4112eec899e611a36565b6111147f4f8c5caaa4abfe5c86e44aa7bbe4bf3f13209723e69b6997fd2f0f77d4b5d919611a36565b8b8b8481811061112657611126612f98565b90506020028101906111389190612fac565b5f84815260086020526040902091611151919083612e7e565b505b61117c7f97a26c634b4cfafacf80e09a1d46a48c3b5f89d5d447274f2bb6747abc7e4b74611a36565b8186848151811061118f5761118f612f98565b6020026020010181815250506111c47f2958edc3875f14649e28139b9684bf97393e0db8bda5c7e1a9178486dbc6e396611a36565b818584815181106111d7576111d7612f98565b60200260200101818152505061120c7f138d6d3c86bb89f93132b6ce1816af35364c3e3f64092e8464422048440cb658611a36565b89898481811061121e5761121e612f98565b9050602002013584848151811061123757611237612f98565b60200260200101818152505061126c7f3122acfbc6c3ed8f50bb13d5cddb1112471d23d8e0887479698791e9f46905d5611a36565b817f41d55018250888e39eb136160ed912320ac5d15c0c64b5997d8640fd74d496648f8f868181106112a0576112a0612f98565b90506020028101906112b29190612fac565b8f8f888181106112c4576112c4612f98565b90506020028101906112d69190612fac565b8f8f8a8181106112e8576112e8612f98565b90506020020135604051611300959493929190612f5f565b60405180910390a25050600101610e1b565b5061133c7f3004b715d169d0cff56d738749d3c3c8ef359b93095ca236ff6b1ef2872d53a9611a36565b61137d8c838388888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611adf92505050565b50509998505050505050505050565b5f6113b67f1e2d70a65b7bd1938a221342dff64e1d30f2e4cbabd600b846e22bab0b7f8d6a611a36565b82826040516020016113c9929190612fee565b60408051601f1981840301815291905280516020909101209392505050565b6113f0611a4e565b6114197f3cf2bf028944c13e85bcde210492f41d416eba4c7a590cf777ab3a871635366e611a36565b611421611bd7565b565b606081518351146114545781518351604051635b05999160e01b8152600481019290925260248201526044016107ea565b5f83516001600160401b0381111561146e5761146e612744565b604051908082528060200260200182016040528015611497578160200160208202803683370190505b5090505f5b84518110156114e5576020808202860101516114c090602080840287010151610487565b8282815181106114d2576114d2612f98565b602090810291909101015260010161149c565b509392505050565b6114f5611a4e565b61151e7f2a33718c81a0e228167ff3e95bf2b2fb37e960f051f34074750d7c81097ab565611a36565b600761152b828483612e7e565b506115557f11c3cf5f6e7722e001d054fd8d0dfbfcf75faa384030b6d9b28b7338953e3f43611a36565b61159382828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611c2992505050565b5050565b61159f611a4e565b6115c87fe1853c8bed90034b8f76b1873d7fe1aa061dd4c192e9b3357fe8a549dec4529c611a36565b5f8381526008602052604090206115e0828483612e7e565b5061160a7f3f7ead01778c8f6aa5e9d9df4784fc46f868e8bd64d72fdecf609a6051a95150611a36565b827f459157ba24c7ab9878b165ef465fa6ae2ab42bcd8445f576be378768b0c47309838360405161163c92919061301e565b60405180910390a261166d7f62573ae0cd3c73b4d8f03dd4c5921c72556f5e55a9a25effc2f4cdd0088a3e0a611a36565b827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b611698856104fd565b6040516116a5919061254d565b60405180910390a2505050565b6001600160a01b03831633148015906116d257506116d08333610421565b155b1561170657335b60405163711bec9160e11b81526001600160a01b03918216600482015290841660248201526044016107ea565b611711838383611c35565b505050565b61171e611a4e565b6114215f611c7a565b61172f611a4e565b6117587f09dc2beb9c2a833c3690cac62c3e515d0691940ec17267501fae54831e0fba19611a36565b610c0385858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611a7b92505050565b5f6117c37f5ba95f9693cb4bfb577c49c774938cc5e69a1b8e481d73374eabf024f8690873611a36565b50600b5490565b5f6117f47f9b081b4a4b6ac7453a86a619f08b21e0f2e3804ecc9cd63fb1c1831049788c22611a36565b600a5f848460405160200161180a929190612e2b565b6040516020818303038152906040528051906020012081526020019081526020015f2054905092915050565b61183e611a4e565b6118677faafd691f76a37f9af18a04ec620794c30e8c63756983f4fd93a4b270e5852e8a611a36565b611421611ccb565b611593338383611d08565b60606118a57f95f651f74126c69fa05a4e88852531300ec596e62caa8d6dec012fec6dfeae84611a36565b5f82815260086020526040902080546118bd90612d73565b80601f01602080910402602001604051908101604052809291908181526020018280546118e990612d73565b80156119345780601f1061190b57610100808354040283529160200191611934565b820191905f5260205f20905b81548152906001019060200180831161191757829003601f168201915b50505050509050919050565b606061196b7fe7fac144e801c14f093d7647e33d697f963af1accad54f3d44d592d88460fd44611a36565b5f82815260096020526040902080546118bd90612d73565b61198c33610bf0565b610c038585858585611dc5565b6119a1611a4e565b6001600160a01b0381166119ca57604051631e4fbdf760e01b81525f60048201526024016107ea565b6119d381611c7a565b50565b6001600160a01b03831633148015906119f657506119f48333610421565b155b15611a0157336116d9565b611711838383611e49565b60405181815273c0bec0bec0bec0bec0bec0bec0bec0bec0bec0be905f80602083855afa50505050565b6119d381611a0c565b6060600280546118bd90612d73565b6006546001600160a01b031633146114215760405163118cdaa760e01b81523360048201526024016107ea565b6001600160a01b038416611aa457604051632bfa23e760e11b81525f60048201526024016107ea565b60408051600180825260208201869052818301908152606082018590526080820190925290611ad75f8784848784611eac565b505050505050565b6001600160a01b038416611b0857604051632bfa23e760e11b81525f60048201526024016107ea565b611b175f858585856001611eac565b50505050565b816001600160a01b0316816001600160a01b031614158015611b465750611b448183610421565b155b156115935760405163711bec9160e11b81526001600160a01b038084166004830152821660248201526044016107ea565b6001600160a01b038416611ba057604051632bfa23e760e11b81525f60048201526024016107ea565b6001600160a01b038516611bc857604051626a0d4560e21b81525f60048201526024016107ea565b610c0385858585856001611eac565b611bdf611f04565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60026115938282613039565b6001600160a01b038316611c5d57604051626a0d4560e21b81525f60048201526024016107ea565b611711835f848460405180602001604052805f8152506001611eac565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b611cd3611f27565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c0c3390565b6001600160a01b038316611d3157604051631f18c42760e11b81525f60048201526024016107ea565b6001600160a01b038216611d595760405162ced3e160e81b81525f60048201526024016107ea565b6001600160a01b038381165f81815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416611dee57604051632bfa23e760e11b81525f60048201526024016107ea565b6001600160a01b038516611e1657604051626a0d4560e21b81525f60048201526024016107ea565b60408051600180825260208201869052818301908152606082018590526080820190925290610be287878484875f611eac565b6001600160a01b038316611e7157604051626a0d4560e21b81525f60048201526024016107ea565b604080516001808252602082018590528183019081526060820184905260a082019092525f60808201818152919291610c0391879185908590835b611eb886868686611f4b565b6001600160a01b03851615611ad757338115611ee157611edc818888888888611f80565b610be2565b60208581015190850151611ef9838a8a85858a6120a1565b505050505050505050565b60035460ff1661142157604051638dfc202b60e01b815260040160405180910390fd5b60035460ff16156114215760405163d93c066560e01b815260040160405180910390fd5b611f747f20a3e8dd847eb68fda4f506e5cc2f746f8c61267e29ff41c89a215f677f215bf611a36565b611b1784848484612188565b6001600160a01b0384163b15611ad75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611fc490899089908890889088906004016130f3565b6020604051808303815f875af1925050508015611ffe575060408051601f3d908101601f19168201909252611ffb91810190613150565b60015b612065573d80801561202b576040519150601f19603f3d011682016040523d82523d5f602084013e612030565b606091505b5080515f0361205d57604051632bfa23e760e11b81526001600160a01b03861660048201526024016107ea565b805160208201fd5b6001600160e01b0319811663bc197c8160e01b14610be257604051632bfa23e760e11b81526001600160a01b03861660048201526024016107ea565b6001600160a01b0384163b15611ad75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906120e5908990899088908890889060040161316b565b6020604051808303815f875af192505050801561211f575060408051601f3d908101601f1916820190925261211c91810190613150565b60015b61214c573d80801561202b576040519150601f19603f3d011682016040523d82523d5f602084013e612030565b6001600160e01b0319811663f23a6e6160e01b14610be257604051632bfa23e760e11b81526001600160a01b03861660048201526024016107ea565b6121948484848461226f565b6001600160a01b038416612211575f805b83518110156121f85760208181028481018201519086018201515f9081526004909252604082208054919283926121dd9084906131af565b909155506121ed905081846131af565b9250506001016121a5565b508060055f82825461220a91906131af565b9091555050505b6001600160a01b038316611b17575f805b835181101561225e5760208181028481018201519086018201515f90815260049092526040909120805482900390559190910190600101612222565b506005805491909103905550505050565b612277611f27565b611b178484848480518251146122ad5781518151604051635b05999160e01b8152600481019290925260248201526044016107ea565b335f5b83518110156123af576020818102858101820151908501909101516001600160a01b03881615612361575f828152602081815260408083206001600160a01b038c1684529091529020548181101561233b576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016107ea565b5f838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b038716156123a5575f828152602081815260408083206001600160a01b038b1684529091528120805483929061239f9084906131af565b90915550505b50506001016122b0565b50825160010361242f5760208301515f906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612420929190918252602082015260400190565b60405180910390a45050610c03565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161247e9291906131ce565b60405180910390a45050505050565b6114216131fb565b80356001600160a01b03811681146124ab575f5ffd5b919050565b5f5f604083850312156124c1575f5ffd5b6124ca83612495565b946020939093013593505050565b6001600160e01b0319811681146119d3575f5ffd5b5f602082840312156124fd575f5ffd5b813561069d816124d8565b5f60208284031215612518575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61069d602083018461251f565b5f5f83601f84011261256f575f5ffd5b5081356001600160401b03811115612585575f5ffd5b60208301915083602082850101111561259c575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60a0898b0312156125ba575f5ffd5b6125c389612495565b975060208901356001600160401b038111156125dd575f5ffd5b6125e98b828c0161255f565b90985096505060408901356001600160401b03811115612607575f5ffd5b6126138b828c0161255f565b9096509450506060890135925060808901356001600160401b03811115612638575f5ffd5b6126448b828c0161255f565b999c989b5096995094979396929594505050565b5f5f83601f840112612668575f5ffd5b5081356001600160401b0381111561267e575f5ffd5b6020830191508360208260051b850101111561259c575f5ffd5b5f5f5f5f5f5f5f6080888a0312156126ae575f5ffd5b6126b788612495565b965060208801356001600160401b038111156126d1575f5ffd5b6126dd8a828b01612658565b90975095505060408801356001600160401b038111156126fb575f5ffd5b6127078a828b01612658565b90955093505060608801356001600160401b03811115612725575f5ffd5b6127318a828b0161255f565b989b979a50959850939692959293505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561278057612780612744565b604052919050565b5f6001600160401b038211156127a0576127a0612744565b5060051b60200190565b5f82601f8301126127b9575f5ffd5b81356127cc6127c782612788565b612758565b8082825260208201915060208360051b8601019250858311156127ed575f5ffd5b602085015b8381101561280a5780358352602092830192016127f2565b5095945050505050565b5f82601f830112612823575f5ffd5b81356001600160401b0381111561283c5761283c612744565b61284f601f8201601f1916602001612758565b818152846020838601011115612863575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f5f60a08688031215612893575f5ffd5b61289c86612495565b94506128aa60208701612495565b935060408601356001600160401b038111156128c4575f5ffd5b6128d0888289016127aa565b93505060608601356001600160401b038111156128eb575f5ffd5b6128f7888289016127aa565b92505060808601356001600160401b03811115612912575f5ffd5b61291e88828901612814565b9150509295509295909350565b5f5f5f5f5f5f5f5f5f60a08a8c031215612943575f5ffd5b61294c8a612495565b985060208a01356001600160401b03811115612966575f5ffd5b6129728c828d01612658565b90995097505060408a01356001600160401b03811115612990575f5ffd5b61299c8c828d01612658565b90975095505060608a01356001600160401b038111156129ba575f5ffd5b6129c68c828d01612658565b90955093505060808a01356001600160401b038111156129e4575f5ffd5b6129f08c828d0161255f565b915080935050809150509295985092959850929598565b5f8151808452602084019350602083015f5b82811015612a37578151865260209586019590910190600101612a19565b5093949350505050565b602081525f61069d6020830184612a07565b5f5f60208385031215612a64575f5ffd5b82356001600160401b03811115612a79575f5ffd5b612a858582860161255f565b90969095509350505050565b5f5f60408385031215612aa2575f5ffd5b82356001600160401b03811115612ab7575f5ffd5b8301601f81018513612ac7575f5ffd5b8035612ad56127c782612788565b8082825260208201915060208360051b850101925087831115612af6575f5ffd5b6020840193505b82841015612b1f57612b0e84612495565b825260209384019390910190612afd565b945050505060208301356001600160401b03811115612b3c575f5ffd5b612b48858286016127aa565b9150509250929050565b5f5f5f60408486031215612b64575f5ffd5b8335925060208401356001600160401b03811115612b80575f5ffd5b612b8c8682870161255f565b9497909650939450505050565b5f5f5f60608486031215612bab575f5ffd5b612bb484612495565b925060208401356001600160401b03811115612bce575f5ffd5b612bda868287016127aa565b92505060408401356001600160401b03811115612bf5575f5ffd5b612c01868287016127aa565b9150509250925092565b5f5f5f5f5f60808688031215612c1f575f5ffd5b612c2886612495565b9450602086013593506040860135925060608601356001600160401b03811115612c50575f5ffd5b612c5c8882890161255f565b969995985093965092949392505050565b5f5f60408385031215612c7e575f5ffd5b612c8783612495565b915060208301358015158114612c9b575f5ffd5b809150509250929050565b5f5f60408385031215612cb7575f5ffd5b612cc083612495565b9150612cce60208401612495565b90509250929050565b5f5f5f5f5f60a08688031215612ceb575f5ffd5b612cf486612495565b9450612d0260208701612495565b9350604086013592506060860135915060808601356001600160401b03811115612912575f5ffd5b5f60208284031215612d3a575f5ffd5b61069d82612495565b5f5f5f60608486031215612d55575f5ffd5b612d5e84612495565b95602085013595506040909401359392505050565b600181811c90821680612d8757607f821691505b602082108103612da557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f5f8454612db881612d73565b600182168015612dcf5760018114612de457612e11565b60ff1983168652811515820286019350612e11565b875f5260205f205f5b83811015612e0957815488820152600190910190602001612ded565b505081860193505b50505083518060208601835e5f9101908152949350505050565b818382375f9101908152919050565b601f82111561171157805f5260205f20601f840160051c81016020851015612e5f5750805b601f840160051c820191505b81811015610c03575f8155600101612e6b565b6001600160401b03831115612e9557612e95612744565b612ea983612ea38354612d73565b83612e3a565b5f601f841160018114612eda575f8515612ec35750838201355b5f19600387901b1c1916600186901b178355610c03565b5f83815260208120601f198716915b82811015612f095786850135825560209485019460019092019101612ee9565b5086821015612f25575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f612f72606083018789612f37565b8281036020840152612f85818688612f37565b9150508260408301529695505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612fc1575f5ffd5b8301803591506001600160401b03821115612fda575f5ffd5b60200191503681900382131561259c575f5ffd5b7431bcb132b934b09737b13532b1ba16b630bcb2b91d60591b8152818360158301375f9101601501908152919050565b602081525f613031602083018486612f37565b949350505050565b81516001600160401b0381111561305257613052612744565b613066816130608454612d73565b84612e3a565b6020601f821160018114613098575f83156130815750848201515b5f19600385901b1c1916600184901b178455610c03565b5f84815260208120601f198516915b828110156130c757878501518255602094850194600190920191016130a7565b50848210156130e457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b0386811682528516602082015260a0604082018190525f9061311e90830186612a07565b82810360608401526131308186612a07565b90508281036080840152613144818561251f565b98975050505050505050565b5f60208284031215613160575f5ffd5b815161069d816124d8565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906131a49083018461251f565b979650505050505050565b808201808211156104a857634e487b7160e01b5f52601160045260245ffd5b604081525f6131e06040830185612a07565b82810360208401526131f28185612a07565b95945050505050565b634e487b7160e01b5f52605160045260245ffdfea264697066735822122078ce07325a265438bb764f33cd2236c92fb403238023e33a826fec24afb24b1164736f6c634300081b0033";
1008
+
1009
+
1010
+ type ObjectLayerTokenConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
1011
+
1012
+ const isSuperArgs = (xs: ObjectLayerTokenConstructorParams): xs is ConstructorParameters<typeof ContractFactory> =>
1013
+ xs.length > 1
1014
+
1015
+
1016
+ export class ObjectLayerToken__factory extends ContractFactory {
1017
+
1018
+ constructor(...args: ObjectLayerTokenConstructorParams) {
1019
+ if (isSuperArgs(args)) {
1020
+ super(...args);
1021
+ } else {
1022
+ super(_abi, _bytecode, args[0]);
1023
+ }
1024
+
1025
+ }
1026
+
1027
+ override getDeployTransaction(initialOwner: AddressLike, baseURI: string, overrides?: NonPayableOverrides & { from?: string }): Promise<ContractDeployTransaction> {
1028
+ return super.getDeployTransaction(initialOwner, baseURI, overrides || {});
1029
+ };
1030
+ override deploy(initialOwner: AddressLike, baseURI: string, overrides?: NonPayableOverrides & { from?: string }) {
1031
+ return super.deploy(initialOwner, baseURI, overrides || {}) as Promise<ObjectLayerToken & {
1032
+ deploymentTransaction(): ContractTransactionResponse;
1033
+ }>;
1034
+ }
1035
+ override connect(runner: ContractRunner | null): ObjectLayerToken__factory {
1036
+ return super.connect(runner) as ObjectLayerToken__factory;
1037
+ }
1038
+
1039
+
1040
+ static readonly bytecode = _bytecode;
1041
+ static readonly abi = _abi;
1042
+ static createInterface(): ObjectLayerTokenInterface {
1043
+ return new Interface(_abi) as ObjectLayerTokenInterface;
1044
+ }
1045
+
1046
+ override attach(address: string | Addressable): ObjectLayerToken {
1047
+ return super.attach(address) as ObjectLayerToken;
1048
+ }
1049
+ static connect(address: string, runner?: ContractRunner | null): ObjectLayerToken {
1050
+ return new Contract(address, _abi, runner) as unknown as ObjectLayerToken;
1051
+ }
1052
+ }
1053
+
1054
+
1055
+