@stargatefinance/stg-evm-sdk-v2 1.2.7 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/artifacts/src/StargateOFT.sol/StargateOFT.json +2 -2
  2. package/artifacts/src/StargateOFTAlt.sol/StargateOFTAlt.json +1584 -0
  3. package/artifacts/src/StargatePool.sol/StargatePool.json +2 -2
  4. package/artifacts/src/StargatePoolMigratable.sol/StargatePoolMigratable.json +2 -2
  5. package/artifacts/src/StargatePoolNative.sol/StargatePoolNative.json +2 -2
  6. package/artifacts/src/eurc/StargateOFTEURC.sol/StargateOFTEURC.json +2 -2
  7. package/artifacts/src/eurc/StargatePoolEURC.sol/StargatePoolEURC.json +2 -2
  8. package/artifacts/src/interfaces/tip20/ITIP20.sol/ITIP20.json +1065 -0
  9. package/artifacts/src/interfaces/tip20/ITIP20RolesAuth.sol/ITIP20RolesAuth.json +139 -0
  10. package/artifacts/src/messaging/CreditMessagingAlt.sol/CreditMessagingAlt.json +1142 -0
  11. package/artifacts/src/messaging/TokenMessaging.sol/TokenMessaging.json +2 -2
  12. package/artifacts/src/messaging/TokenMessagingAlt.sol/TokenMessagingAlt.json +1907 -0
  13. package/artifacts/src/mocks/tip20/TIP20.sol/TIP20.json +1253 -0
  14. package/artifacts/src/mocks/tip20/TIP403Registry.sol/TIP403Registry.json +335 -0
  15. package/artifacts/src/mocks/tip20/abstracts/TIP20RolesAuth.sol/TIP20RolesAuth.json +163 -0
  16. package/artifacts/src/mocks/tip20/interfaces/ITIP403Registry.sol/ITIP403Registry.json +335 -0
  17. package/artifacts/src/peripheral/Treasurer.sol/Treasurer.json +2 -2
  18. package/artifacts/src/tip20/StargateOFTTIP20.sol/StargateOFTTIP20.json +1595 -0
  19. package/artifacts/src/usdc/StargateOFTUSDC.sol/StargateOFTUSDC.json +2 -2
  20. package/artifacts/src/usdc/StargatePoolUSDC.sol/StargatePoolUSDC.json +2 -2
  21. package/deployments/horizen-mainnet/CreditMessaging.json +1501 -0
  22. package/deployments/horizen-mainnet/FeeLibV1USDC.json +611 -0
  23. package/deployments/horizen-mainnet/OFTWrapper.json +1506 -0
  24. package/deployments/horizen-mainnet/StargateOFTUSDC.json +1978 -0
  25. package/deployments/horizen-mainnet/TokenMessaging.json +2475 -0
  26. package/deployments/horizen-mainnet/Treasurer.json +450 -0
  27. package/deployments/moderato-testnet/CreditMessaging.json +1592 -0
  28. package/deployments/moderato-testnet/FeeLibV1EURC.json +625 -0
  29. package/deployments/moderato-testnet/FeeLibV1USDC.json +625 -0
  30. package/deployments/moderato-testnet/OFTWrapper.json +1520 -0
  31. package/deployments/moderato-testnet/StargateOFTEURC.json +2023 -0
  32. package/deployments/moderato-testnet/StargateOFTUSDC.json +2023 -0
  33. package/deployments/moderato-testnet/TokenMessaging.json +2484 -0
  34. package/deployments/moderato-testnet/Treasurer.json +464 -0
  35. package/deployments/tempo-mainnet/CreditMessaging.json +1592 -0
  36. package/deployments/tempo-mainnet/FeeLibV1EURC.json +625 -0
  37. package/deployments/tempo-mainnet/FeeLibV1USDC.json +625 -0
  38. package/deployments/tempo-mainnet/OFTWrapper.json +1520 -0
  39. package/deployments/tempo-mainnet/StargateOFTEURC.json +2036 -0
  40. package/deployments/tempo-mainnet/StargateOFTUSDC.json +2036 -0
  41. package/deployments/tempo-mainnet/TokenMessaging.json +2481 -0
  42. package/deployments/tempo-mainnet/Treasurer.json +464 -0
  43. package/dist/deployed/CreditMessaging.cjs +10 -0
  44. package/dist/deployed/CreditMessaging.cjs.map +1 -1
  45. package/dist/deployed/CreditMessaging.mjs +10 -0
  46. package/dist/deployed/CreditMessaging.mjs.map +1 -1
  47. package/dist/deployed/FeeLibV1EURC.cjs +9 -3
  48. package/dist/deployed/FeeLibV1EURC.cjs.map +1 -1
  49. package/dist/deployed/FeeLibV1EURC.mjs +9 -3
  50. package/dist/deployed/FeeLibV1EURC.mjs.map +1 -1
  51. package/dist/deployed/FeeLibV1USDC.cjs +9 -0
  52. package/dist/deployed/FeeLibV1USDC.cjs.map +1 -1
  53. package/dist/deployed/FeeLibV1USDC.mjs +9 -0
  54. package/dist/deployed/FeeLibV1USDC.mjs.map +1 -1
  55. package/dist/deployed/OFTWrapper.cjs +9 -0
  56. package/dist/deployed/OFTWrapper.cjs.map +1 -1
  57. package/dist/deployed/OFTWrapper.mjs +9 -0
  58. package/dist/deployed/OFTWrapper.mjs.map +1 -1
  59. package/dist/deployed/StargateOFTEURC.cjs +11 -3
  60. package/dist/deployed/StargateOFTEURC.cjs.map +1 -1
  61. package/dist/deployed/StargateOFTEURC.mjs +11 -3
  62. package/dist/deployed/StargateOFTEURC.mjs.map +1 -1
  63. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.mts +4995 -0
  64. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.ts +4995 -0
  65. package/dist/deployed/StargateOFTUSDC.cjs +11 -0
  66. package/dist/deployed/StargateOFTUSDC.cjs.map +1 -1
  67. package/dist/deployed/StargateOFTUSDC.d.mts +1 -0
  68. package/dist/deployed/StargateOFTUSDC.d.ts +1 -0
  69. package/dist/deployed/StargateOFTUSDC.mjs +11 -0
  70. package/dist/deployed/StargateOFTUSDC.mjs.map +1 -1
  71. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.mts +2492 -0
  72. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.ts +2492 -0
  73. package/dist/deployed/StargateOFTUSDT.d.mts +1 -0
  74. package/dist/deployed/StargateOFTUSDT.d.ts +1 -0
  75. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.mts +1530 -0
  76. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.ts +1530 -0
  77. package/dist/deployed/StargatePoolETH.d.mts +1 -0
  78. package/dist/deployed/StargatePoolETH.d.ts +1 -0
  79. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.mts +1582 -0
  80. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.ts +1582 -0
  81. package/dist/deployed/StargatePoolEURC.d.mts +1 -0
  82. package/dist/deployed/StargatePoolEURC.d.ts +1 -0
  83. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.mts +1519 -0
  84. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.ts +1519 -0
  85. package/dist/deployed/StargatePoolMETIS.d.mts +1 -0
  86. package/dist/deployed/StargatePoolMETIS.d.ts +1 -0
  87. package/dist/deployed/StargatePoolNative-BKokoo5S.d.mts +1568 -0
  88. package/dist/deployed/StargatePoolNative-BKokoo5S.d.ts +1568 -0
  89. package/dist/deployed/StargatePoolNative.d.mts +1 -0
  90. package/dist/deployed/StargatePoolNative.d.ts +1 -0
  91. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.mts +1632 -0
  92. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.ts +1632 -0
  93. package/dist/deployed/StargatePoolUSDC.d.mts +1 -0
  94. package/dist/deployed/StargatePoolUSDC.d.ts +1 -0
  95. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.mts +1627 -0
  96. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.ts +1627 -0
  97. package/dist/deployed/StargatePoolUSDT.d.mts +1 -0
  98. package/dist/deployed/StargatePoolUSDT.d.ts +1 -0
  99. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.mts +1519 -0
  100. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.ts +1519 -0
  101. package/dist/deployed/StargatePoolmETH.d.mts +1 -0
  102. package/dist/deployed/StargatePoolmETH.d.ts +1 -0
  103. package/dist/deployed/StargateStaking-BL9axih_.d.mts +459 -0
  104. package/dist/deployed/StargateStaking-BL9axih_.d.ts +459 -0
  105. package/dist/deployed/StargateStaking.d.mts +1 -0
  106. package/dist/deployed/StargateStaking.d.ts +1 -0
  107. package/dist/deployed/TokenMessaging-BfnD6v53.d.mts +3174 -0
  108. package/dist/deployed/TokenMessaging-BfnD6v53.d.ts +3174 -0
  109. package/dist/deployed/TokenMessaging.cjs +10 -0
  110. package/dist/deployed/TokenMessaging.cjs.map +1 -1
  111. package/dist/deployed/TokenMessaging.d.mts +1 -0
  112. package/dist/deployed/TokenMessaging.d.ts +1 -0
  113. package/dist/deployed/TokenMessaging.mjs +10 -0
  114. package/dist/deployed/TokenMessaging.mjs.map +1 -1
  115. package/dist/deployed/Treasurer-DlA2Gv8f.d.mts +450 -0
  116. package/dist/deployed/Treasurer-DlA2Gv8f.d.ts +450 -0
  117. package/dist/deployed/Treasurer.cjs +9 -0
  118. package/dist/deployed/Treasurer.cjs.map +1 -1
  119. package/dist/deployed/Treasurer.d.mts +1 -0
  120. package/dist/deployed/Treasurer.d.ts +1 -0
  121. package/dist/deployed/Treasurer.mjs +9 -0
  122. package/dist/deployed/Treasurer.mjs.map +1 -1
  123. package/dist/deployed/USDCImpl-DN89Rpdz.d.mts +1124 -0
  124. package/dist/deployed/USDCImpl-DN89Rpdz.d.ts +1124 -0
  125. package/dist/deployed/USDCImpl.d.mts +1 -0
  126. package/dist/deployed/USDCImpl.d.ts +1 -0
  127. package/dist/deployed/USDCProxy-BsrYumZv.d.mts +141 -0
  128. package/dist/deployed/USDCProxy-BsrYumZv.d.ts +141 -0
  129. package/dist/deployed/USDCProxy.d.mts +1 -0
  130. package/dist/deployed/USDCProxy.d.ts +1 -0
  131. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.mts +73 -0
  132. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.ts +73 -0
  133. package/dist/deployed/USDCSignatureLib.d.mts +1 -0
  134. package/dist/deployed/USDCSignatureLib.d.ts +1 -0
  135. package/dist/deployed/USDT-DVAQjDdu.d.mts +690 -0
  136. package/dist/deployed/USDT-DVAQjDdu.d.ts +690 -0
  137. package/dist/deployed/USDT.d.mts +1 -0
  138. package/dist/deployed/USDT.d.ts +1 -0
  139. package/dist/deployed/contracts-CwDH7mzf.d.mts +68 -0
  140. package/dist/deployed/contracts-Yg5JhOts.d.ts +68 -0
  141. package/dist/deployed/contracts.cjs +119 -47
  142. package/dist/deployed/contracts.cjs.map +1 -1
  143. package/dist/deployed/contracts.d.mts +31 -0
  144. package/dist/deployed/contracts.d.ts +31 -0
  145. package/dist/deployed/contracts.mjs +119 -47
  146. package/dist/deployed/contracts.mjs.map +1 -1
  147. package/dist/deployed/index.cjs +119 -47
  148. package/dist/deployed/index.cjs.map +1 -1
  149. package/dist/deployed/index.d.mts +36 -0
  150. package/dist/deployed/index.d.ts +36 -0
  151. package/dist/deployed/index.mjs +119 -47
  152. package/dist/deployed/index.mjs.map +1 -1
  153. package/dist/index.cjs +43 -2
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.d.mts +49 -2
  156. package/dist/index.d.ts +49 -2
  157. package/dist/index.mjs +43 -2
  158. package/dist/index.mjs.map +1 -1
  159. package/package.json +2 -2
@@ -0,0 +1,1595 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "StargateOFTTIP20",
4
+ "sourceName": "src/tip20/StargateOFTTIP20.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_token",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint8",
15
+ "name": "_sharedDecimals",
16
+ "type": "uint8"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_endpoint",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_owner",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidLocalDecimals",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "Path_AlreadyHasCredit",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "Path_InsufficientCredit",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "Path_UnlimitedCredit",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "amountLD",
57
+ "type": "uint256"
58
+ },
59
+ {
60
+ "internalType": "uint256",
61
+ "name": "minAmountLD",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "SlippageExceeded",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [
70
+ {
71
+ "internalType": "address",
72
+ "name": "_newOwner",
73
+ "type": "address"
74
+ }
75
+ ],
76
+ "name": "StargateOFTTIP20_InvalidOwner",
77
+ "type": "error"
78
+ },
79
+ {
80
+ "inputs": [],
81
+ "name": "Stargate_BusNotAllowedInAlt",
82
+ "type": "error"
83
+ },
84
+ {
85
+ "inputs": [],
86
+ "name": "Stargate_InsufficientFare",
87
+ "type": "error"
88
+ },
89
+ {
90
+ "inputs": [],
91
+ "name": "Stargate_InvalidAmount",
92
+ "type": "error"
93
+ },
94
+ {
95
+ "inputs": [],
96
+ "name": "Stargate_InvalidPath",
97
+ "type": "error"
98
+ },
99
+ {
100
+ "inputs": [],
101
+ "name": "Stargate_InvalidTokenDecimals",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [],
106
+ "name": "Stargate_LzTokenUnavailable",
107
+ "type": "error"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "Stargate_NotAnAltEndpoint",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [],
116
+ "name": "Stargate_OnlyAltToken",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "Stargate_OutflowFailed",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [],
126
+ "name": "Stargate_Paused",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "Stargate_RecoverTokenUnsupported",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [],
136
+ "name": "Stargate_ReentrantCall",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [],
141
+ "name": "Stargate_SlippageTooHigh",
142
+ "type": "error"
143
+ },
144
+ {
145
+ "inputs": [],
146
+ "name": "Stargate_Unauthorized",
147
+ "type": "error"
148
+ },
149
+ {
150
+ "inputs": [],
151
+ "name": "Stargate_UnreceivedTokenNotFound",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [],
156
+ "name": "Transfer_ApproveFailed",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [],
161
+ "name": "Transfer_TransferFailed",
162
+ "type": "error"
163
+ },
164
+ {
165
+ "anonymous": false,
166
+ "inputs": [
167
+ {
168
+ "components": [
169
+ {
170
+ "internalType": "address",
171
+ "name": "feeLib",
172
+ "type": "address"
173
+ },
174
+ {
175
+ "internalType": "address",
176
+ "name": "planner",
177
+ "type": "address"
178
+ },
179
+ {
180
+ "internalType": "address",
181
+ "name": "treasurer",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "internalType": "address",
186
+ "name": "tokenMessaging",
187
+ "type": "address"
188
+ },
189
+ {
190
+ "internalType": "address",
191
+ "name": "creditMessaging",
192
+ "type": "address"
193
+ },
194
+ {
195
+ "internalType": "address",
196
+ "name": "lzToken",
197
+ "type": "address"
198
+ }
199
+ ],
200
+ "indexed": false,
201
+ "internalType": "struct StargateBase.AddressConfig",
202
+ "name": "config",
203
+ "type": "tuple"
204
+ }
205
+ ],
206
+ "name": "AddressConfigSet",
207
+ "type": "event"
208
+ },
209
+ {
210
+ "anonymous": false,
211
+ "inputs": [
212
+ {
213
+ "indexed": false,
214
+ "internalType": "uint32",
215
+ "name": "srcEid",
216
+ "type": "uint32"
217
+ },
218
+ {
219
+ "components": [
220
+ {
221
+ "internalType": "uint32",
222
+ "name": "srcEid",
223
+ "type": "uint32"
224
+ },
225
+ {
226
+ "internalType": "uint64",
227
+ "name": "amount",
228
+ "type": "uint64"
229
+ }
230
+ ],
231
+ "indexed": false,
232
+ "internalType": "struct Credit[]",
233
+ "name": "credits",
234
+ "type": "tuple[]"
235
+ }
236
+ ],
237
+ "name": "CreditsReceived",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "anonymous": false,
242
+ "inputs": [
243
+ {
244
+ "indexed": false,
245
+ "internalType": "uint32",
246
+ "name": "dstEid",
247
+ "type": "uint32"
248
+ },
249
+ {
250
+ "components": [
251
+ {
252
+ "internalType": "uint32",
253
+ "name": "srcEid",
254
+ "type": "uint32"
255
+ },
256
+ {
257
+ "internalType": "uint64",
258
+ "name": "amount",
259
+ "type": "uint64"
260
+ }
261
+ ],
262
+ "indexed": false,
263
+ "internalType": "struct Credit[]",
264
+ "name": "credits",
265
+ "type": "tuple[]"
266
+ }
267
+ ],
268
+ "name": "CreditsSent",
269
+ "type": "event"
270
+ },
271
+ {
272
+ "anonymous": false,
273
+ "inputs": [
274
+ {
275
+ "indexed": false,
276
+ "internalType": "uint32",
277
+ "name": "dstEid",
278
+ "type": "uint32"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bool",
283
+ "name": "oft",
284
+ "type": "bool"
285
+ }
286
+ ],
287
+ "name": "OFTPathSet",
288
+ "type": "event"
289
+ },
290
+ {
291
+ "anonymous": false,
292
+ "inputs": [
293
+ {
294
+ "indexed": true,
295
+ "internalType": "bytes32",
296
+ "name": "guid",
297
+ "type": "bytes32"
298
+ },
299
+ {
300
+ "indexed": false,
301
+ "internalType": "uint32",
302
+ "name": "srcEid",
303
+ "type": "uint32"
304
+ },
305
+ {
306
+ "indexed": true,
307
+ "internalType": "address",
308
+ "name": "toAddress",
309
+ "type": "address"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "uint256",
314
+ "name": "amountReceivedLD",
315
+ "type": "uint256"
316
+ }
317
+ ],
318
+ "name": "OFTReceived",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": true,
326
+ "internalType": "bytes32",
327
+ "name": "guid",
328
+ "type": "bytes32"
329
+ },
330
+ {
331
+ "indexed": false,
332
+ "internalType": "uint32",
333
+ "name": "dstEid",
334
+ "type": "uint32"
335
+ },
336
+ {
337
+ "indexed": true,
338
+ "internalType": "address",
339
+ "name": "fromAddress",
340
+ "type": "address"
341
+ },
342
+ {
343
+ "indexed": false,
344
+ "internalType": "uint256",
345
+ "name": "amountSentLD",
346
+ "type": "uint256"
347
+ },
348
+ {
349
+ "indexed": false,
350
+ "internalType": "uint256",
351
+ "name": "amountReceivedLD",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "name": "OFTSent",
356
+ "type": "event"
357
+ },
358
+ {
359
+ "anonymous": false,
360
+ "inputs": [
361
+ {
362
+ "indexed": true,
363
+ "internalType": "address",
364
+ "name": "previousOwner",
365
+ "type": "address"
366
+ },
367
+ {
368
+ "indexed": true,
369
+ "internalType": "address",
370
+ "name": "newOwner",
371
+ "type": "address"
372
+ }
373
+ ],
374
+ "name": "OwnershipTransferred",
375
+ "type": "event"
376
+ },
377
+ {
378
+ "anonymous": false,
379
+ "inputs": [
380
+ {
381
+ "indexed": false,
382
+ "internalType": "bool",
383
+ "name": "paused",
384
+ "type": "bool"
385
+ }
386
+ ],
387
+ "name": "PauseSet",
388
+ "type": "event"
389
+ },
390
+ {
391
+ "anonymous": false,
392
+ "inputs": [
393
+ {
394
+ "indexed": false,
395
+ "internalType": "uint256",
396
+ "name": "amount",
397
+ "type": "uint256"
398
+ }
399
+ ],
400
+ "name": "PlannerFeeWithdrawn",
401
+ "type": "event"
402
+ },
403
+ {
404
+ "anonymous": false,
405
+ "inputs": [
406
+ {
407
+ "indexed": false,
408
+ "internalType": "uint64",
409
+ "name": "amountSD",
410
+ "type": "uint64"
411
+ }
412
+ ],
413
+ "name": "TreasuryFeeAdded",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": false,
421
+ "internalType": "address",
422
+ "name": "to",
423
+ "type": "address"
424
+ },
425
+ {
426
+ "indexed": false,
427
+ "internalType": "uint64",
428
+ "name": "amountSD",
429
+ "type": "uint64"
430
+ }
431
+ ],
432
+ "name": "TreasuryFeeWithdrawn",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": false,
440
+ "internalType": "bytes32",
441
+ "name": "guid",
442
+ "type": "bytes32"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "uint8",
447
+ "name": "index",
448
+ "type": "uint8"
449
+ },
450
+ {
451
+ "indexed": false,
452
+ "internalType": "uint32",
453
+ "name": "srcEid",
454
+ "type": "uint32"
455
+ },
456
+ {
457
+ "indexed": false,
458
+ "internalType": "address",
459
+ "name": "receiver",
460
+ "type": "address"
461
+ },
462
+ {
463
+ "indexed": false,
464
+ "internalType": "uint256",
465
+ "name": "amountLD",
466
+ "type": "uint256"
467
+ },
468
+ {
469
+ "indexed": false,
470
+ "internalType": "bytes",
471
+ "name": "composeMsg",
472
+ "type": "bytes"
473
+ }
474
+ ],
475
+ "name": "UnreceivedTokenCached",
476
+ "type": "event"
477
+ },
478
+ {
479
+ "inputs": [
480
+ {
481
+ "internalType": "uint256",
482
+ "name": "_amountLD",
483
+ "type": "uint256"
484
+ }
485
+ ],
486
+ "name": "addTreasuryFee",
487
+ "outputs": [],
488
+ "stateMutability": "payable",
489
+ "type": "function"
490
+ },
491
+ {
492
+ "inputs": [],
493
+ "name": "approvalRequired",
494
+ "outputs": [
495
+ {
496
+ "internalType": "bool",
497
+ "name": "",
498
+ "type": "bool"
499
+ }
500
+ ],
501
+ "stateMutability": "pure",
502
+ "type": "function"
503
+ },
504
+ {
505
+ "inputs": [],
506
+ "name": "endpoint",
507
+ "outputs": [
508
+ {
509
+ "internalType": "contract ILayerZeroEndpointV2",
510
+ "name": "",
511
+ "type": "address"
512
+ }
513
+ ],
514
+ "stateMutability": "view",
515
+ "type": "function"
516
+ },
517
+ {
518
+ "inputs": [],
519
+ "name": "feeToken",
520
+ "outputs": [
521
+ {
522
+ "internalType": "address",
523
+ "name": "",
524
+ "type": "address"
525
+ }
526
+ ],
527
+ "stateMutability": "view",
528
+ "type": "function"
529
+ },
530
+ {
531
+ "inputs": [],
532
+ "name": "getAddressConfig",
533
+ "outputs": [
534
+ {
535
+ "components": [
536
+ {
537
+ "internalType": "address",
538
+ "name": "feeLib",
539
+ "type": "address"
540
+ },
541
+ {
542
+ "internalType": "address",
543
+ "name": "planner",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "address",
548
+ "name": "treasurer",
549
+ "type": "address"
550
+ },
551
+ {
552
+ "internalType": "address",
553
+ "name": "tokenMessaging",
554
+ "type": "address"
555
+ },
556
+ {
557
+ "internalType": "address",
558
+ "name": "creditMessaging",
559
+ "type": "address"
560
+ },
561
+ {
562
+ "internalType": "address",
563
+ "name": "lzToken",
564
+ "type": "address"
565
+ }
566
+ ],
567
+ "internalType": "struct StargateBase.AddressConfig",
568
+ "name": "",
569
+ "type": "tuple"
570
+ }
571
+ ],
572
+ "stateMutability": "view",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [],
577
+ "name": "getTransferGasLimit",
578
+ "outputs": [
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "",
582
+ "type": "uint256"
583
+ }
584
+ ],
585
+ "stateMutability": "view",
586
+ "type": "function"
587
+ },
588
+ {
589
+ "inputs": [],
590
+ "name": "localEid",
591
+ "outputs": [
592
+ {
593
+ "internalType": "uint32",
594
+ "name": "",
595
+ "type": "uint32"
596
+ }
597
+ ],
598
+ "stateMutability": "view",
599
+ "type": "function"
600
+ },
601
+ {
602
+ "inputs": [],
603
+ "name": "oftVersion",
604
+ "outputs": [
605
+ {
606
+ "internalType": "bytes4",
607
+ "name": "interfaceId",
608
+ "type": "bytes4"
609
+ },
610
+ {
611
+ "internalType": "uint64",
612
+ "name": "version",
613
+ "type": "uint64"
614
+ }
615
+ ],
616
+ "stateMutability": "pure",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [],
621
+ "name": "owner",
622
+ "outputs": [
623
+ {
624
+ "internalType": "address",
625
+ "name": "",
626
+ "type": "address"
627
+ }
628
+ ],
629
+ "stateMutability": "view",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [
634
+ {
635
+ "internalType": "uint32",
636
+ "name": "eid",
637
+ "type": "uint32"
638
+ }
639
+ ],
640
+ "name": "paths",
641
+ "outputs": [
642
+ {
643
+ "internalType": "uint64",
644
+ "name": "credit",
645
+ "type": "uint64"
646
+ }
647
+ ],
648
+ "stateMutability": "view",
649
+ "type": "function"
650
+ },
651
+ {
652
+ "inputs": [],
653
+ "name": "plannerFee",
654
+ "outputs": [
655
+ {
656
+ "internalType": "uint256",
657
+ "name": "available",
658
+ "type": "uint256"
659
+ }
660
+ ],
661
+ "stateMutability": "view",
662
+ "type": "function"
663
+ },
664
+ {
665
+ "inputs": [
666
+ {
667
+ "components": [
668
+ {
669
+ "internalType": "uint32",
670
+ "name": "dstEid",
671
+ "type": "uint32"
672
+ },
673
+ {
674
+ "internalType": "bytes32",
675
+ "name": "to",
676
+ "type": "bytes32"
677
+ },
678
+ {
679
+ "internalType": "uint256",
680
+ "name": "amountLD",
681
+ "type": "uint256"
682
+ },
683
+ {
684
+ "internalType": "uint256",
685
+ "name": "minAmountLD",
686
+ "type": "uint256"
687
+ },
688
+ {
689
+ "internalType": "bytes",
690
+ "name": "extraOptions",
691
+ "type": "bytes"
692
+ },
693
+ {
694
+ "internalType": "bytes",
695
+ "name": "composeMsg",
696
+ "type": "bytes"
697
+ },
698
+ {
699
+ "internalType": "bytes",
700
+ "name": "oftCmd",
701
+ "type": "bytes"
702
+ }
703
+ ],
704
+ "internalType": "struct SendParam",
705
+ "name": "_sendParam",
706
+ "type": "tuple"
707
+ }
708
+ ],
709
+ "name": "quoteOFT",
710
+ "outputs": [
711
+ {
712
+ "components": [
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "minAmountLD",
716
+ "type": "uint256"
717
+ },
718
+ {
719
+ "internalType": "uint256",
720
+ "name": "maxAmountLD",
721
+ "type": "uint256"
722
+ }
723
+ ],
724
+ "internalType": "struct OFTLimit",
725
+ "name": "limit",
726
+ "type": "tuple"
727
+ },
728
+ {
729
+ "components": [
730
+ {
731
+ "internalType": "int256",
732
+ "name": "feeAmountLD",
733
+ "type": "int256"
734
+ },
735
+ {
736
+ "internalType": "string",
737
+ "name": "description",
738
+ "type": "string"
739
+ }
740
+ ],
741
+ "internalType": "struct OFTFeeDetail[]",
742
+ "name": "oftFeeDetails",
743
+ "type": "tuple[]"
744
+ },
745
+ {
746
+ "components": [
747
+ {
748
+ "internalType": "uint256",
749
+ "name": "amountSentLD",
750
+ "type": "uint256"
751
+ },
752
+ {
753
+ "internalType": "uint256",
754
+ "name": "amountReceivedLD",
755
+ "type": "uint256"
756
+ }
757
+ ],
758
+ "internalType": "struct OFTReceipt",
759
+ "name": "receipt",
760
+ "type": "tuple"
761
+ }
762
+ ],
763
+ "stateMutability": "view",
764
+ "type": "function"
765
+ },
766
+ {
767
+ "inputs": [
768
+ {
769
+ "components": [
770
+ {
771
+ "internalType": "uint32",
772
+ "name": "dstEid",
773
+ "type": "uint32"
774
+ },
775
+ {
776
+ "internalType": "bytes32",
777
+ "name": "to",
778
+ "type": "bytes32"
779
+ },
780
+ {
781
+ "internalType": "uint256",
782
+ "name": "amountLD",
783
+ "type": "uint256"
784
+ },
785
+ {
786
+ "internalType": "uint256",
787
+ "name": "minAmountLD",
788
+ "type": "uint256"
789
+ },
790
+ {
791
+ "internalType": "bytes",
792
+ "name": "extraOptions",
793
+ "type": "bytes"
794
+ },
795
+ {
796
+ "internalType": "bytes",
797
+ "name": "composeMsg",
798
+ "type": "bytes"
799
+ },
800
+ {
801
+ "internalType": "bytes",
802
+ "name": "oftCmd",
803
+ "type": "bytes"
804
+ }
805
+ ],
806
+ "internalType": "struct SendParam",
807
+ "name": "_sendParam",
808
+ "type": "tuple"
809
+ },
810
+ {
811
+ "internalType": "bool",
812
+ "name": "_payInLzToken",
813
+ "type": "bool"
814
+ }
815
+ ],
816
+ "name": "quoteSend",
817
+ "outputs": [
818
+ {
819
+ "components": [
820
+ {
821
+ "internalType": "uint256",
822
+ "name": "nativeFee",
823
+ "type": "uint256"
824
+ },
825
+ {
826
+ "internalType": "uint256",
827
+ "name": "lzTokenFee",
828
+ "type": "uint256"
829
+ }
830
+ ],
831
+ "internalType": "struct MessagingFee",
832
+ "name": "fee",
833
+ "type": "tuple"
834
+ }
835
+ ],
836
+ "stateMutability": "view",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [
841
+ {
842
+ "internalType": "uint32",
843
+ "name": "_srcEid",
844
+ "type": "uint32"
845
+ },
846
+ {
847
+ "components": [
848
+ {
849
+ "internalType": "uint32",
850
+ "name": "srcEid",
851
+ "type": "uint32"
852
+ },
853
+ {
854
+ "internalType": "uint64",
855
+ "name": "amount",
856
+ "type": "uint64"
857
+ }
858
+ ],
859
+ "internalType": "struct Credit[]",
860
+ "name": "_credits",
861
+ "type": "tuple[]"
862
+ }
863
+ ],
864
+ "name": "receiveCredits",
865
+ "outputs": [],
866
+ "stateMutability": "nonpayable",
867
+ "type": "function"
868
+ },
869
+ {
870
+ "inputs": [
871
+ {
872
+ "components": [
873
+ {
874
+ "internalType": "uint32",
875
+ "name": "srcEid",
876
+ "type": "uint32"
877
+ },
878
+ {
879
+ "internalType": "bytes32",
880
+ "name": "sender",
881
+ "type": "bytes32"
882
+ },
883
+ {
884
+ "internalType": "uint64",
885
+ "name": "nonce",
886
+ "type": "uint64"
887
+ }
888
+ ],
889
+ "internalType": "struct Origin",
890
+ "name": "_origin",
891
+ "type": "tuple"
892
+ },
893
+ {
894
+ "internalType": "bytes32",
895
+ "name": "_guid",
896
+ "type": "bytes32"
897
+ },
898
+ {
899
+ "internalType": "uint8",
900
+ "name": "_seatNumber",
901
+ "type": "uint8"
902
+ },
903
+ {
904
+ "internalType": "address",
905
+ "name": "_receiver",
906
+ "type": "address"
907
+ },
908
+ {
909
+ "internalType": "uint64",
910
+ "name": "_amountSD",
911
+ "type": "uint64"
912
+ }
913
+ ],
914
+ "name": "receiveTokenBus",
915
+ "outputs": [],
916
+ "stateMutability": "nonpayable",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [
921
+ {
922
+ "components": [
923
+ {
924
+ "internalType": "uint32",
925
+ "name": "srcEid",
926
+ "type": "uint32"
927
+ },
928
+ {
929
+ "internalType": "bytes32",
930
+ "name": "sender",
931
+ "type": "bytes32"
932
+ },
933
+ {
934
+ "internalType": "uint64",
935
+ "name": "nonce",
936
+ "type": "uint64"
937
+ }
938
+ ],
939
+ "internalType": "struct Origin",
940
+ "name": "_origin",
941
+ "type": "tuple"
942
+ },
943
+ {
944
+ "internalType": "bytes32",
945
+ "name": "_guid",
946
+ "type": "bytes32"
947
+ },
948
+ {
949
+ "internalType": "address",
950
+ "name": "_receiver",
951
+ "type": "address"
952
+ },
953
+ {
954
+ "internalType": "uint64",
955
+ "name": "_amountSD",
956
+ "type": "uint64"
957
+ },
958
+ {
959
+ "internalType": "bytes",
960
+ "name": "_composeMsg",
961
+ "type": "bytes"
962
+ }
963
+ ],
964
+ "name": "receiveTokenTaxi",
965
+ "outputs": [],
966
+ "stateMutability": "nonpayable",
967
+ "type": "function"
968
+ },
969
+ {
970
+ "inputs": [
971
+ {
972
+ "internalType": "address",
973
+ "name": "_token",
974
+ "type": "address"
975
+ },
976
+ {
977
+ "internalType": "address",
978
+ "name": "_to",
979
+ "type": "address"
980
+ },
981
+ {
982
+ "internalType": "uint256",
983
+ "name": "_amount",
984
+ "type": "uint256"
985
+ }
986
+ ],
987
+ "name": "recoverToken",
988
+ "outputs": [
989
+ {
990
+ "internalType": "uint256",
991
+ "name": "",
992
+ "type": "uint256"
993
+ }
994
+ ],
995
+ "stateMutability": "nonpayable",
996
+ "type": "function"
997
+ },
998
+ {
999
+ "inputs": [],
1000
+ "name": "renounceOwnership",
1001
+ "outputs": [],
1002
+ "stateMutability": "nonpayable",
1003
+ "type": "function"
1004
+ },
1005
+ {
1006
+ "inputs": [
1007
+ {
1008
+ "internalType": "bytes32",
1009
+ "name": "_guid",
1010
+ "type": "bytes32"
1011
+ },
1012
+ {
1013
+ "internalType": "uint8",
1014
+ "name": "_index",
1015
+ "type": "uint8"
1016
+ },
1017
+ {
1018
+ "internalType": "uint32",
1019
+ "name": "_srcEid",
1020
+ "type": "uint32"
1021
+ },
1022
+ {
1023
+ "internalType": "address",
1024
+ "name": "_receiver",
1025
+ "type": "address"
1026
+ },
1027
+ {
1028
+ "internalType": "uint256",
1029
+ "name": "_amountLD",
1030
+ "type": "uint256"
1031
+ },
1032
+ {
1033
+ "internalType": "bytes",
1034
+ "name": "_composeMsg",
1035
+ "type": "bytes"
1036
+ }
1037
+ ],
1038
+ "name": "retryReceiveToken",
1039
+ "outputs": [],
1040
+ "stateMutability": "nonpayable",
1041
+ "type": "function"
1042
+ },
1043
+ {
1044
+ "inputs": [
1045
+ {
1046
+ "components": [
1047
+ {
1048
+ "internalType": "uint32",
1049
+ "name": "dstEid",
1050
+ "type": "uint32"
1051
+ },
1052
+ {
1053
+ "internalType": "bytes32",
1054
+ "name": "to",
1055
+ "type": "bytes32"
1056
+ },
1057
+ {
1058
+ "internalType": "uint256",
1059
+ "name": "amountLD",
1060
+ "type": "uint256"
1061
+ },
1062
+ {
1063
+ "internalType": "uint256",
1064
+ "name": "minAmountLD",
1065
+ "type": "uint256"
1066
+ },
1067
+ {
1068
+ "internalType": "bytes",
1069
+ "name": "extraOptions",
1070
+ "type": "bytes"
1071
+ },
1072
+ {
1073
+ "internalType": "bytes",
1074
+ "name": "composeMsg",
1075
+ "type": "bytes"
1076
+ },
1077
+ {
1078
+ "internalType": "bytes",
1079
+ "name": "oftCmd",
1080
+ "type": "bytes"
1081
+ }
1082
+ ],
1083
+ "internalType": "struct SendParam",
1084
+ "name": "_sendParam",
1085
+ "type": "tuple"
1086
+ },
1087
+ {
1088
+ "components": [
1089
+ {
1090
+ "internalType": "uint256",
1091
+ "name": "nativeFee",
1092
+ "type": "uint256"
1093
+ },
1094
+ {
1095
+ "internalType": "uint256",
1096
+ "name": "lzTokenFee",
1097
+ "type": "uint256"
1098
+ }
1099
+ ],
1100
+ "internalType": "struct MessagingFee",
1101
+ "name": "_fee",
1102
+ "type": "tuple"
1103
+ },
1104
+ {
1105
+ "internalType": "address",
1106
+ "name": "_refundAddress",
1107
+ "type": "address"
1108
+ }
1109
+ ],
1110
+ "name": "send",
1111
+ "outputs": [
1112
+ {
1113
+ "components": [
1114
+ {
1115
+ "internalType": "bytes32",
1116
+ "name": "guid",
1117
+ "type": "bytes32"
1118
+ },
1119
+ {
1120
+ "internalType": "uint64",
1121
+ "name": "nonce",
1122
+ "type": "uint64"
1123
+ },
1124
+ {
1125
+ "components": [
1126
+ {
1127
+ "internalType": "uint256",
1128
+ "name": "nativeFee",
1129
+ "type": "uint256"
1130
+ },
1131
+ {
1132
+ "internalType": "uint256",
1133
+ "name": "lzTokenFee",
1134
+ "type": "uint256"
1135
+ }
1136
+ ],
1137
+ "internalType": "struct MessagingFee",
1138
+ "name": "fee",
1139
+ "type": "tuple"
1140
+ }
1141
+ ],
1142
+ "internalType": "struct MessagingReceipt",
1143
+ "name": "msgReceipt",
1144
+ "type": "tuple"
1145
+ },
1146
+ {
1147
+ "components": [
1148
+ {
1149
+ "internalType": "uint256",
1150
+ "name": "amountSentLD",
1151
+ "type": "uint256"
1152
+ },
1153
+ {
1154
+ "internalType": "uint256",
1155
+ "name": "amountReceivedLD",
1156
+ "type": "uint256"
1157
+ }
1158
+ ],
1159
+ "internalType": "struct OFTReceipt",
1160
+ "name": "oftReceipt",
1161
+ "type": "tuple"
1162
+ }
1163
+ ],
1164
+ "stateMutability": "payable",
1165
+ "type": "function"
1166
+ },
1167
+ {
1168
+ "inputs": [
1169
+ {
1170
+ "internalType": "uint32",
1171
+ "name": "_dstEid",
1172
+ "type": "uint32"
1173
+ },
1174
+ {
1175
+ "components": [
1176
+ {
1177
+ "internalType": "uint32",
1178
+ "name": "srcEid",
1179
+ "type": "uint32"
1180
+ },
1181
+ {
1182
+ "internalType": "uint64",
1183
+ "name": "amount",
1184
+ "type": "uint64"
1185
+ },
1186
+ {
1187
+ "internalType": "uint64",
1188
+ "name": "minAmount",
1189
+ "type": "uint64"
1190
+ }
1191
+ ],
1192
+ "internalType": "struct TargetCredit[]",
1193
+ "name": "_credits",
1194
+ "type": "tuple[]"
1195
+ }
1196
+ ],
1197
+ "name": "sendCredits",
1198
+ "outputs": [
1199
+ {
1200
+ "components": [
1201
+ {
1202
+ "internalType": "uint32",
1203
+ "name": "srcEid",
1204
+ "type": "uint32"
1205
+ },
1206
+ {
1207
+ "internalType": "uint64",
1208
+ "name": "amount",
1209
+ "type": "uint64"
1210
+ }
1211
+ ],
1212
+ "internalType": "struct Credit[]",
1213
+ "name": "",
1214
+ "type": "tuple[]"
1215
+ }
1216
+ ],
1217
+ "stateMutability": "nonpayable",
1218
+ "type": "function"
1219
+ },
1220
+ {
1221
+ "inputs": [
1222
+ {
1223
+ "components": [
1224
+ {
1225
+ "internalType": "uint32",
1226
+ "name": "dstEid",
1227
+ "type": "uint32"
1228
+ },
1229
+ {
1230
+ "internalType": "bytes32",
1231
+ "name": "to",
1232
+ "type": "bytes32"
1233
+ },
1234
+ {
1235
+ "internalType": "uint256",
1236
+ "name": "amountLD",
1237
+ "type": "uint256"
1238
+ },
1239
+ {
1240
+ "internalType": "uint256",
1241
+ "name": "minAmountLD",
1242
+ "type": "uint256"
1243
+ },
1244
+ {
1245
+ "internalType": "bytes",
1246
+ "name": "extraOptions",
1247
+ "type": "bytes"
1248
+ },
1249
+ {
1250
+ "internalType": "bytes",
1251
+ "name": "composeMsg",
1252
+ "type": "bytes"
1253
+ },
1254
+ {
1255
+ "internalType": "bytes",
1256
+ "name": "oftCmd",
1257
+ "type": "bytes"
1258
+ }
1259
+ ],
1260
+ "internalType": "struct SendParam",
1261
+ "name": "_sendParam",
1262
+ "type": "tuple"
1263
+ },
1264
+ {
1265
+ "components": [
1266
+ {
1267
+ "internalType": "uint256",
1268
+ "name": "nativeFee",
1269
+ "type": "uint256"
1270
+ },
1271
+ {
1272
+ "internalType": "uint256",
1273
+ "name": "lzTokenFee",
1274
+ "type": "uint256"
1275
+ }
1276
+ ],
1277
+ "internalType": "struct MessagingFee",
1278
+ "name": "_fee",
1279
+ "type": "tuple"
1280
+ },
1281
+ {
1282
+ "internalType": "address",
1283
+ "name": "_refundAddress",
1284
+ "type": "address"
1285
+ }
1286
+ ],
1287
+ "name": "sendToken",
1288
+ "outputs": [
1289
+ {
1290
+ "components": [
1291
+ {
1292
+ "internalType": "bytes32",
1293
+ "name": "guid",
1294
+ "type": "bytes32"
1295
+ },
1296
+ {
1297
+ "internalType": "uint64",
1298
+ "name": "nonce",
1299
+ "type": "uint64"
1300
+ },
1301
+ {
1302
+ "components": [
1303
+ {
1304
+ "internalType": "uint256",
1305
+ "name": "nativeFee",
1306
+ "type": "uint256"
1307
+ },
1308
+ {
1309
+ "internalType": "uint256",
1310
+ "name": "lzTokenFee",
1311
+ "type": "uint256"
1312
+ }
1313
+ ],
1314
+ "internalType": "struct MessagingFee",
1315
+ "name": "fee",
1316
+ "type": "tuple"
1317
+ }
1318
+ ],
1319
+ "internalType": "struct MessagingReceipt",
1320
+ "name": "msgReceipt",
1321
+ "type": "tuple"
1322
+ },
1323
+ {
1324
+ "components": [
1325
+ {
1326
+ "internalType": "uint256",
1327
+ "name": "amountSentLD",
1328
+ "type": "uint256"
1329
+ },
1330
+ {
1331
+ "internalType": "uint256",
1332
+ "name": "amountReceivedLD",
1333
+ "type": "uint256"
1334
+ }
1335
+ ],
1336
+ "internalType": "struct OFTReceipt",
1337
+ "name": "oftReceipt",
1338
+ "type": "tuple"
1339
+ },
1340
+ {
1341
+ "components": [
1342
+ {
1343
+ "internalType": "uint72",
1344
+ "name": "ticketId",
1345
+ "type": "uint72"
1346
+ },
1347
+ {
1348
+ "internalType": "bytes",
1349
+ "name": "passengerBytes",
1350
+ "type": "bytes"
1351
+ }
1352
+ ],
1353
+ "internalType": "struct Ticket",
1354
+ "name": "ticket",
1355
+ "type": "tuple"
1356
+ }
1357
+ ],
1358
+ "stateMutability": "payable",
1359
+ "type": "function"
1360
+ },
1361
+ {
1362
+ "inputs": [
1363
+ {
1364
+ "components": [
1365
+ {
1366
+ "internalType": "address",
1367
+ "name": "feeLib",
1368
+ "type": "address"
1369
+ },
1370
+ {
1371
+ "internalType": "address",
1372
+ "name": "planner",
1373
+ "type": "address"
1374
+ },
1375
+ {
1376
+ "internalType": "address",
1377
+ "name": "treasurer",
1378
+ "type": "address"
1379
+ },
1380
+ {
1381
+ "internalType": "address",
1382
+ "name": "tokenMessaging",
1383
+ "type": "address"
1384
+ },
1385
+ {
1386
+ "internalType": "address",
1387
+ "name": "creditMessaging",
1388
+ "type": "address"
1389
+ },
1390
+ {
1391
+ "internalType": "address",
1392
+ "name": "lzToken",
1393
+ "type": "address"
1394
+ }
1395
+ ],
1396
+ "internalType": "struct StargateBase.AddressConfig",
1397
+ "name": "_config",
1398
+ "type": "tuple"
1399
+ }
1400
+ ],
1401
+ "name": "setAddressConfig",
1402
+ "outputs": [],
1403
+ "stateMutability": "nonpayable",
1404
+ "type": "function"
1405
+ },
1406
+ {
1407
+ "inputs": [
1408
+ {
1409
+ "internalType": "uint32",
1410
+ "name": "_dstEid",
1411
+ "type": "uint32"
1412
+ },
1413
+ {
1414
+ "internalType": "bool",
1415
+ "name": "_oft",
1416
+ "type": "bool"
1417
+ }
1418
+ ],
1419
+ "name": "setOFTPath",
1420
+ "outputs": [],
1421
+ "stateMutability": "nonpayable",
1422
+ "type": "function"
1423
+ },
1424
+ {
1425
+ "inputs": [
1426
+ {
1427
+ "internalType": "bool",
1428
+ "name": "_paused",
1429
+ "type": "bool"
1430
+ }
1431
+ ],
1432
+ "name": "setPause",
1433
+ "outputs": [],
1434
+ "stateMutability": "nonpayable",
1435
+ "type": "function"
1436
+ },
1437
+ {
1438
+ "inputs": [
1439
+ {
1440
+ "internalType": "uint256",
1441
+ "name": "_gasLimit",
1442
+ "type": "uint256"
1443
+ }
1444
+ ],
1445
+ "name": "setTransferGasLimit",
1446
+ "outputs": [],
1447
+ "stateMutability": "nonpayable",
1448
+ "type": "function"
1449
+ },
1450
+ {
1451
+ "inputs": [],
1452
+ "name": "sharedDecimals",
1453
+ "outputs": [
1454
+ {
1455
+ "internalType": "uint8",
1456
+ "name": "",
1457
+ "type": "uint8"
1458
+ }
1459
+ ],
1460
+ "stateMutability": "view",
1461
+ "type": "function"
1462
+ },
1463
+ {
1464
+ "inputs": [],
1465
+ "name": "stargateType",
1466
+ "outputs": [
1467
+ {
1468
+ "internalType": "enum StargateType",
1469
+ "name": "",
1470
+ "type": "uint8"
1471
+ }
1472
+ ],
1473
+ "stateMutability": "pure",
1474
+ "type": "function"
1475
+ },
1476
+ {
1477
+ "inputs": [],
1478
+ "name": "status",
1479
+ "outputs": [
1480
+ {
1481
+ "internalType": "uint8",
1482
+ "name": "",
1483
+ "type": "uint8"
1484
+ }
1485
+ ],
1486
+ "stateMutability": "view",
1487
+ "type": "function"
1488
+ },
1489
+ {
1490
+ "inputs": [],
1491
+ "name": "token",
1492
+ "outputs": [
1493
+ {
1494
+ "internalType": "address",
1495
+ "name": "",
1496
+ "type": "address"
1497
+ }
1498
+ ],
1499
+ "stateMutability": "view",
1500
+ "type": "function"
1501
+ },
1502
+ {
1503
+ "inputs": [
1504
+ {
1505
+ "internalType": "address",
1506
+ "name": "newOwner",
1507
+ "type": "address"
1508
+ }
1509
+ ],
1510
+ "name": "transferOwnership",
1511
+ "outputs": [],
1512
+ "stateMutability": "nonpayable",
1513
+ "type": "function"
1514
+ },
1515
+ {
1516
+ "inputs": [
1517
+ {
1518
+ "internalType": "address",
1519
+ "name": "_newOwner",
1520
+ "type": "address"
1521
+ }
1522
+ ],
1523
+ "name": "transferTokenOwnership",
1524
+ "outputs": [],
1525
+ "stateMutability": "nonpayable",
1526
+ "type": "function"
1527
+ },
1528
+ {
1529
+ "inputs": [],
1530
+ "name": "treasuryFee",
1531
+ "outputs": [
1532
+ {
1533
+ "internalType": "uint64",
1534
+ "name": "",
1535
+ "type": "uint64"
1536
+ }
1537
+ ],
1538
+ "stateMutability": "view",
1539
+ "type": "function"
1540
+ },
1541
+ {
1542
+ "inputs": [
1543
+ {
1544
+ "internalType": "bytes32",
1545
+ "name": "guid",
1546
+ "type": "bytes32"
1547
+ },
1548
+ {
1549
+ "internalType": "uint8",
1550
+ "name": "index",
1551
+ "type": "uint8"
1552
+ }
1553
+ ],
1554
+ "name": "unreceivedTokens",
1555
+ "outputs": [
1556
+ {
1557
+ "internalType": "bytes32",
1558
+ "name": "hash",
1559
+ "type": "bytes32"
1560
+ }
1561
+ ],
1562
+ "stateMutability": "view",
1563
+ "type": "function"
1564
+ },
1565
+ {
1566
+ "inputs": [],
1567
+ "name": "withdrawPlannerFee",
1568
+ "outputs": [],
1569
+ "stateMutability": "nonpayable",
1570
+ "type": "function"
1571
+ },
1572
+ {
1573
+ "inputs": [
1574
+ {
1575
+ "internalType": "address",
1576
+ "name": "_to",
1577
+ "type": "address"
1578
+ },
1579
+ {
1580
+ "internalType": "uint64",
1581
+ "name": "_amountSD",
1582
+ "type": "uint64"
1583
+ }
1584
+ ],
1585
+ "name": "withdrawTreasuryFee",
1586
+ "outputs": [],
1587
+ "stateMutability": "nonpayable",
1588
+ "type": "function"
1589
+ }
1590
+ ],
1591
+ "bytecode": "0x6101406040526108fc6001556002805460ff60a01b1916600160a01b1790553480156200002b57600080fd5b5060405162004fe238038062004fe28339810160408190526200004e91620002d0565b838383838383838383846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000096573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bc91906200032d565b848484620000ca3362000251565b6001600160a01b03851660805260ff8084169085161015620000ff57604051632e4b554360e01b815260040160405180910390fd5b6200010b838562000368565b6200011890600a62000487565b60c05260ff831660a0526001600160a01b03821660e08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000193919062000498565b63ffffffff1661010052620001a88162000251565b505050505050505050816001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002169190620004c0565b6001600160a01b0316610120819052620002435760405163832ac1e960e01b815260040160405180910390fd5b5050505050505050620004de565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b957600080fd5b919050565b805160ff81168114620002b957600080fd5b60008060008060808587031215620002e757600080fd5b620002f285620002a1565b93506200030260208601620002be565b92506200031260408601620002a1565b91506200032260608601620002a1565b905092959194509250565b6000602082840312156200034057600080fd5b6200034b82620002be565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff828116828216039081111562000384576200038462000352565b92915050565b600181815b80851115620003cb578160001904821115620003af57620003af62000352565b80851615620003bd57918102915b93841c93908002906200038f565b509250929050565b600082620003e45750600162000384565b81620003f35750600062000384565b81600181146200040c5760028114620004175762000437565b600191505062000384565b60ff8411156200042b576200042b62000352565b50506001821b62000384565b5060208310610133831016604e8410600b84101617156200045c575081810a62000384565b6200046883836200038a565b80600019048211156200047f576200047f62000352565b029392505050565b60006200034b60ff841683620003d3565b600060208284031215620004ab57600080fd5b815163ffffffff811681146200034b57600080fd5b600060208284031215620004d357600080fd5b6200034b82620002a1565b60805160a05160c05160e0516101005161012051614a13620005cf600039600081816105ec0152612f84015260008181610635015261187b0152600081816105a0015281816111c30152818161213901528181612fa6015261371e015260008181610b9201528181610bfd01528181610df401528181610f4e01528181610feb01528181611015015281816110ed015281816119e5015281816123f50152818161252b01528181612555015281816127ae0152612afe0152600061067e0152600081816108ab015281816113f801528181611481015281816129de01528181612b300152612b860152614a136000f3fe60806040526004361061024f5760003560e01c80637260753711610138578063b0d7ca5d116100b0578063cbef2aa91161007f578063d621ad3f11610064578063d621ad3f14610841578063f2fde38b14610879578063fc0c546a1461089957600080fd5b8063cbef2aa9146107e5578063cc32d1761461080757600080fd5b8063b0d7ca5d1461076f578063bedb86fb14610784578063c7c7f5b3146107a4578063c859c483146107c557600080fd5b80638da5cb5b116101075780639f68b964116100ec5780639f68b96414610713578063a7229fd91461072f578063a88835d71461074f57600080fd5b80638da5cb5b146106d55780639561b12f146106f357600080fd5b80637260753714610623578063857749b01461066c57806388543f0e146106a05780638c70830b146106b557600080fd5b806338da6b8e116101cb578063461bb0b91161019a5780635e280f111161017f5780635e280f111461058e578063647846a5146105da578063715018a61461060e57600080fd5b8063461bb0b9146105515780635114bf091461057157600080fd5b806338da6b8e146104945780633b6f743b146104e45780633faa12c514610511578063434def551461053157600080fd5b8063200d2ed21161022257806321e6b53d1161020757806321e6b53d1461036b5780632bc5114c1461038b578063341a46481461048157600080fd5b8063200d2ed214610316578063203bd15f1461034957600080fd5b80630141e41b146102545780630d35b4151461028a578063156a0d0f146102b957806316909bca146102fa575b600080fd5b34801561026057600080fd5b5061027461026f366004613935565b6108cd565b6040516102819190613a12565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004613a3d565b610b52565b60405161028193929190613ac2565b3480156102c557600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610281565b34801561030657600080fd5b5060016040516102819190613b79565b34801561032257600080fd5b5060025461033790600160a01b900460ff1681565b60405160ff9091168152602001610281565b34801561035557600080fd5b50610369610364366004613c42565b61104d565b005b34801561037757600080fd5b50610369610386366004613cc4565b61134c565b34801561039757600080fd5b506104206040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526002546001600160a01b03908116825260055481166020830152600754811692820192909252600654821660608201526003548216608082015260045490911660a082015290565b6040516102819190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b61036961048f366004613cdf565b6114ea565b3480156104a057600080fd5b506104cb6104af366004613cf8565b60086020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610281565b3480156104f057600080fd5b506105046104ff366004613d21565b6115c4565b6040516102819190613d73565b34801561051d57600080fd5b5061036961052c366004613d8a565b611871565b34801561053d57600080fd5b5061036961054c366004613dc7565b611945565b34801561055d57600080fd5b5061036961056c366004613e2a565b611bb3565b34801561057d57600080fd5b50475b604051908152602001610281565b34801561059a57600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610281565b3480156105e657600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b34801561061a57600080fd5b50610369611d61565b34801561062f57600080fd5b506106577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610281565b34801561067857600080fd5b506103377f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ac57600080fd5b50600154610580565b3480156106c157600080fd5b506103696106d0366004613cdf565b611d75565b3480156106e157600080fd5b506000546001600160a01b03166105c2565b3480156106ff57600080fd5b5061036961070e366004613e3c565b611d82565b34801561071f57600080fd5b5060405160018152602001610281565b34801561073b57600080fd5b5061058061074a366004613eaf565b611ee8565b34801561075b57600080fd5b5061036961076a366004613eeb565b611fe6565b34801561077b57600080fd5b50610369612212565b34801561079057600080fd5b5061036961079f366004613f74565b61227b565b6107b76107b2366004613f91565b612336565b60405161028192919061402f565b3480156107d157600080fd5b506103696107e0366004614053565b61236a565b6107f86107f3366004613f91565b612465565b6040516102819392919061407f565b34801561081357600080fd5b506002546104cb907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561084d57600080fd5b5061058061085c3660046140da565b600960209081526000928352604080842090915290825290205481565b34801561088557600080fd5b50610369610894366004613cc4565b61264b565b3480156108a557600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b600254606090600160a01b900460ff1660011461094557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b031633811461099557604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156109b0576109b0614106565b6040519080825280602002602001820160405280156109f557816020015b60408051808201909152600080825260208201528152602001906001900390816109ce5790505b5090506000805b85811015610af75736878783818110610a1757610a17614135565b90506060020190506000610a81826020016020810190610a379190614164565b610a476060850160408601614164565b60086000610a586020880188613cf8565b63ffffffff1663ffffffff1681526020019081526020016000206126f29092919063ffffffff16565b905067ffffffffffffffff811615610aed576040805180820190915280610aab6020850185613cf8565b63ffffffff16815267ffffffffffffffff83166020909101528585610acf816141b0565b965081518110610ae157610ae1614135565b60200260200101819052505b50506001016109fc565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610b2c9291906141e8565b60405180910390a1509150506002805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610b85604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610c2060086000886000016020810190610bd09190613cf8565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610c4d8460200151866040013511610c435785604001356127a7565b84602001516127a7565b90506000610c7c610c616020880188613cf8565b83610c77610c7260c08b018b614207565b6127e7565b61282a565b600254604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d53919061426c565b90508267ffffffffffffffff168167ffffffffffffffff1614610fd05760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610d855790505094508267ffffffffffffffff168167ffffffffffffffff161015610ea7576040518060400160405280610e1c610e178487610de89190614289565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6128b4565b610e46907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6142aa565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610e9757610e97614135565b6020026020010181905250610fd0565b8267ffffffffffffffff168167ffffffffffffffff161115610fd0576000610ecf8483614289565b9091039050600067ffffffffffffffff84811690831603610f30576040805160008082526020820190925290610f28565b604080518082019091526000815260606020820152815260200190600190039081610f005790505b509550610fce565b6040518060400160405280610f71610e178467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610fc257610fc2614135565b60200260200101819052505b505b604051806040016040528061100e8567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b600254600160a01b900460ff1660011461109057600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146110e057604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f00000000000000000000000000000000000000000000000000000000000000000282158015906060906111795761117661112c60608c0160408d01614164565b61113960208d018d613cf8565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061296a92505050565b90505b6000611185898561299c565b9050801561128e578215611232576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906111ff908c908e9060009088906004016142f6565b600060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61126b60208f018f613cf8565b6040805163ffffffff9092168252602082018990520160405180910390a361132c565b61129b60208c018c613cf8565b8985846040516020016112b19493929190614328565b60408051601f19818403018152918152815160209283012060008d8152600984528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061130e908f018f613cf8565b8c8887604051611323969594939291906143a6565b60405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050505050565b611354612a43565b6001600160a01b038116158061137257506001600160a01b03811630145b156113b9576040517f5a7584500000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024015b60405180910390fd5b6040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600060048201526001600160a01b0382811660248301527f00000000000000000000000000000000000000000000000000000000000000001690632f2ff15d90604401600060405180830381600087803b15801561143c57600080fd5b505af1158015611450573d6000803e3d6000fd5b50506040517f8bb9c5bf000000000000000000000000000000000000000000000000000000008152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250638bb9c5bf9150602401600060405180830381600087803b1580156114cf57600080fd5b505af11580156114e3573d6000803e3d6000fd5b5050505050565b6007546001600160a01b031633811461151657604051635bd25eff60e01b815260040160405180910390fd5b61151f82612ab7565b600061152b3384612aef565b905080600260158282829054906101000a900467ffffffffffffffff1661155291906143f5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd0816040516115b7919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b604080518082019091526000808252602082015260006115e784604001356127a7565b90508067ffffffffffffffff1660000361162d576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061163f610c7260c0870187614207565b905080156117ad576006546040805160c081019091523381526001600160a01b0390911690633292cf029060208082019061167c908a018a613cf8565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016116ae60a08a018a614207565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016116f560808a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815261176691908890600401614485565b6040805180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a69190614533565b9250611869565b6000806117bd6080880188614207565b60065492109250506001600160a01b03166375d2208c6117e06020890189613cf8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190614533565b9350505b505092915050565b611879612a43565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff16036118de576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020611900918390612bf016565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b600254600160a01b900460ff1660011461198857600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146119d857604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f0000000000000000000000000000000000000000000000000000000000000000026000611a11858361299c565b90508015611a75576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c611a5260208c018c613cf8565b6040805163ffffffff9092168252602082018790520160405180910390a3611b96565b611a826020890189613cf8565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b559088908890611b4a908c018c613cf8565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050565b611bbb612a43565b611bc86020820182613cc4565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c056040820160208301613cc4565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c426060820160408301613cc4565b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c7f6080820160608301613cc4565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611cbc60a0820160808301613cc4565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611cf960c0820160a08301613cc4565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611d5690839061454f565b60405180910390a150565b611d69612a43565b611d736000612cba565b565b611d7d612a43565b600155565b600254600160a01b900460ff16600114611dc557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b0316338114611e1557604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611e935736848483818110611e3357611e33614135565b9050604002019050611e8a816020016020810190611e519190614164565b60086000611e626020860186613cf8565b63ffffffff1663ffffffff168152602001908152602001600020612d1790919063ffffffff16565b50600101611e18565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611ec7939291906145ce565b60405180910390a150506002805460ff60a01b1916600160a01b1790555050565b600254600090600160a01b900460ff16600114611f2e57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556007546001600160a01b0316338114611f7e57604051635bd25eff60e01b815260040160405180910390fd5b6001600160a01b038516611fbe576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611fcb8585856000612db1565b50506002805460ff60a01b1916600160a01b17905592915050565b600254600160a01b900460ff1660011461202957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556040516120669086908690869086908690602001614641565b60408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252909352912054146120cd576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260096020908152604080832060ff8a1684529091528120556120f48484612df9565b612103612100846127a7565b50565b80156121aa576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906121779087908b90600090889088906004016146b3565b600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506002805460ff60a01b1916600160a01b1790555050505050565b6005546001600160a01b031633811461223e57604051635bd25eff60e01b815260040160405180910390fd5b4761224b33826000612e3e565b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e18390602001611939565b6005546001600160a01b03163381146122a757604051635bd25eff60e01b815260040160405180910390fd5b600254600119600160a01b90910460ff16016122d6576040516376a9ad7360e01b815260040160405180910390fd5b816122e25760016122e5565b60035b6002805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb90602001611939565b61233e6138d4565b604080518082019091526000808252602082015261235d858585612465565b5090969095509350505050565b6007546001600160a01b031633811461239657604051635bd25eff60e01b815260040160405180910390fd5b81600260158282829054906101000a900467ffffffffffffffff166123bb9190614289565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061241d836124188467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612df9565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e65391016115b7565b61246d6138d4565b6040805180820190915260008082526020820152604080518082019091526000815260606020820152600254600160a01b900460ff166001146124d957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061250a89612e7f565b925092509250604051806040016040528061254e8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061259f612598368b90038b018b614704565b8751612f1d565b905083156125ba576125b38a82848b612f70565b96506125cc565b6125c68a82848b613153565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6125fe60208e018e613cf8565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506002805460ff60a01b1916600160a01b1790555092969195509350915050565b612653612a43565b6001600160a01b0381166126e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016113b0565b61210081612cba565b825460009067ffffffffffffffff1667fffffffffffffffe198101612743576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff16101561279f5782810367ffffffffffffffff8082169086161161277c578461277e565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006127e17f000000000000000000000000000000000000000000000000000000000000000083816127db576127db614736565b0461334f565b92915050565b60008115612821576040517f5d2d4a5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600192915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260089092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016113b0565b5090565b6060848484846040516020016129839493929190614765565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b158015612a2457600080fd5b505af1925050508015612a35575060015b156127e15750600192915050565b6000546001600160a01b03163314611d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016113b0565b3415612100576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612afa826127a7565b90507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8216029150612b577f00000000000000000000000000000000000000000000000000000000000000008430856133e9565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b158015612bd257600080fd5b505af1158015612be6573d6000803e3d6000fd5b5050505092915050565b815467ffffffffffffffff168115612c625767ffffffffffffffff811615612c44576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612ca5576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612d3857505050565b612d4282826143f5565b905067fffffffffffffffe1967ffffffffffffffff821601612d90576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612dbd848484846133f5565b612df3576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612e05838361299c565b905080612cb5576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e4983838361342a565b612cb5576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080612e93610c7260c0860186614207565b9250612ea3338560400135612aef565b91506000612ebe612eb76020870187613cf8565b848661282a565b9050612ed681612ed187606001356127a7565b613451565b9150612f158260086000612eed60208a018a613cf8565b63ffffffff1663ffffffff16815260200190815260200160002061364690919063ffffffff16565b509193909250565b60408051808201909152600080825260208201523415612f69576040517febf2eaea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612f786138d4565b835115612fcf57612fcf7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087600001516133e9565b602084015115612fe657612fe684602001516136d4565b6006546040805160c081019091523381526001600160a01b039091169063ff6fb3009060208082019061301b908a018a613cf8565b63ffffffff1681526020898101359082015267ffffffffffffffff8716604082015260600161304d60a08a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161309460808a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526131079190889087906004016147e3565b6080604051808303816000875af1158015613126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314a9190614893565b95945050505050565b61315b6138d4565b6040805180820190915260008152606060208201526020850151156131ac576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040805160a081019091523381526001600160a01b03909116906385afd453906020808201906131e1908b018b613cf8565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061321560808c018c614207565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156132b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132de91908101906148af565b60408201515187519294509092509080821461334457818111156133125781810361330b8682600061342a565b5050613344565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff821115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016113b0565b612dbd84848484613747565b60006001600160a01b0385166134175761341084848461342a565b9050613422565b61314a8585856137fb565b949350505050565b60008082613438575a61343c565b6001545b9050600080600080878986f195945050505050565b600254604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af1158015613505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613529919061426c565b604084015190915067ffffffffffffffff80821690831610156135b0576135508282614289565b600280546015906135859084907501000000000000000000000000000000000000000000900467ffffffffffffffff166143f5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506135de565b8067ffffffffffffffff168267ffffffffffffffff1611156135de5760006135d88284614289565b90920391505b8267ffffffffffffffff168267ffffffffffffffff161080613608575067ffffffffffffffff8216155b1561363f576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161366757505050565b8167ffffffffffffffff168167ffffffffffffffff1610156136b5576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6004546001600160a01b031680613717576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61374381337f0000000000000000000000000000000000000000000000000000000000000000856133e9565b5050565b6040516001600160a01b038085166024830152831660448201526064810182905260009061314a9086907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613847565b6040516001600160a01b0383166024820152604481018290526000906134229085907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613797565b6000806000846001600160a01b03168460405161386491906149a4565b6000604051808303816000865af19150503d80600081146138a1576040519150601f19603f3d011682016040523d82523d6000602084013e6138a6565b606091505b5091509150816138b757600061314a565b8051158061314a57508080602001905181019061314a91906149c0565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613917604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461393057600080fd5b919050565b60008060006040848603121561394a57600080fd5b6139538461391c565b9250602084013567ffffffffffffffff8082111561397057600080fd5b818601915086601f83011261398457600080fd5b81358181111561399357600080fd5b8760206060830285010111156139a857600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b83811015613a07578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016139d0565b509495945050505050565b6020815260006128ad60208301846139bb565b600060e08284031215613a3757600080fd5b50919050565b600060208284031215613a4f57600080fd5b813567ffffffffffffffff811115613a6657600080fd5b61342284828501613a25565b60005b83811015613a8d578181015183820152602001613a75565b50506000910152565b60008151808452613aae816020860160208601613a72565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015613b5b578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052613b4887890182613a96565b9750509382019390820190600101613afe565b50508751606088015250505060208501516080850152509050613422565b6020810160028310613bb4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060608284031215613a3757600080fd5b80356001600160a01b038116811461393057600080fd5b67ffffffffffffffff8116811461210057600080fd5b60008083601f840112613c0b57600080fd5b50813567ffffffffffffffff811115613c2357600080fd5b602083019150836020828501011115613c3b57600080fd5b9250929050565b60008060008060008060e08789031215613c5b57600080fd5b613c658888613bba565b955060608701359450613c7a60808801613bcc565b935060a0870135613c8a81613be3565b925060c087013567ffffffffffffffff811115613ca657600080fd5b613cb289828a01613bf9565b979a9699509497509295939492505050565b600060208284031215613cd657600080fd5b6128ad82613bcc565b600060208284031215613cf157600080fd5b5035919050565b600060208284031215613d0a57600080fd5b6128ad8261391c565b801515811461210057600080fd5b60008060408385031215613d3457600080fd5b823567ffffffffffffffff811115613d4b57600080fd5b613d5785828601613a25565b9250506020830135613d6881613d13565b809150509250929050565b8151815260208083015190820152604081016127e1565b60008060408385031215613d9d57600080fd5b613da68361391c565b91506020830135613d6881613d13565b803560ff8116811461393057600080fd5b600080600080600060e08688031215613ddf57600080fd5b613de98787613bba565b945060608601359350613dfe60808701613db6565b9250613e0c60a08701613bcc565b915060c0860135613e1c81613be3565b809150509295509295909350565b600060c08284031215613a3757600080fd5b600080600060408486031215613e5157600080fd5b613e5a8461391c565b9250602084013567ffffffffffffffff80821115613e7757600080fd5b818601915086601f830112613e8b57600080fd5b813581811115613e9a57600080fd5b8760208260061b85010111156139a857600080fd5b600080600060608486031215613ec457600080fd5b613ecd84613bcc565b9250613edb60208501613bcc565b9150604084013590509250925092565b600080600080600080600060c0888a031215613f0657600080fd5b87359650613f1660208901613db6565b9550613f246040890161391c565b9450613f3260608901613bcc565b93506080880135925060a088013567ffffffffffffffff811115613f5557600080fd5b613f618a828b01613bf9565b989b979a50959850939692959293505050565b600060208284031215613f8657600080fd5b81356128ad81613d13565b60008060008385036080811215613fa757600080fd5b843567ffffffffffffffff811115613fbe57600080fd5b613fca87828801613a25565b9450506040601f1982011215613fdf57600080fd5b50602084019150613ff260608501613bcc565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612cb5604084018280518252602090810151910152565b60c0810161403d8285613ffb565b82516080830152602083015160a08301526128ad565b6000806040838503121561406657600080fd5b61406f83613bcc565b91506020830135613d6881613be3565b6140898185613ffb565b82516080820152602083015160a082015260e060c082015268ffffffffffffffffff82511660e08201526000602083015160406101008401526140d0610120840182613a96565b9695505050505050565b600080604083850312156140ed57600080fd5b823591506140fd60208401613db6565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561417657600080fd5b81356128ad81613be3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141e1576141e1614181565b5060010190565b63ffffffff8316815260406020820152600061342260408301846139bb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261423c57600080fd5b83018035915067ffffffffffffffff82111561425757600080fd5b602001915036819003821315613c3b57600080fd5b60006020828403121561427e57600080fd5b81516128ad81613be3565b67ffffffffffffffff82811682821603908082111561363f5761363f614181565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156142e2576142e2614181565b81810583148215176127e1576127e1614181565b6001600160a01b038516815283602082015261ffff831660408201526080606082015260006140d06080830184613a96565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251614396816038850160208701613a72565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006143e960c0830184613a96565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561363f5761363f614181565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261446c60c0850182613a96565b905060a083015184820360a086015261314a8282613a96565b6040815260006144986040830185614416565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156144cc576144cc614106565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156144fb576144fb614106565b604052919050565b60006040828403121561451557600080fd5b61451d6144a9565b9050815181526020820151602082015292915050565b60006040828403121561454557600080fd5b6128ad8383614503565b60c081016001600160a01b038061456585613bcc565b1683528061457560208601613bcc565b1660208401528061458860408601613bcc565b1660408401528061459b60608601613bcc565b166060840152806145ae60808601613bcc565b166080840152806145c160a08601613bcc565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561463357836146058661391c565b1682528285013561461581613be3565b67ffffffffffffffff168284015293850193908501906001016145f3565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561471657600080fd5b61471e6144a9565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516147d381602c850160208701613a72565b91909101602c0195945050505050565b6080815260006147f66080830186614416565b905061480f602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561483857600080fd5b6040516060810181811067ffffffffffffffff8211171561485b5761485b614106565b806040525080915082518152602083015161487581613be3565b60208201526148878460408501614503565b60408201525092915050565b6000608082840312156148a557600080fd5b6128ad8383614826565b60008060a083850312156148c257600080fd5b6148cc8484614826565b9150608083015167ffffffffffffffff808211156148e957600080fd5b90840190604082870312156148fd57600080fd5b6149056144a9565b825168ffffffffffffffffff8116811461491e57600080fd5b81526020838101518381111561493357600080fd5b80850194505087601f85011261494857600080fd5b83518381111561495a5761495a614106565b61496c82601f19601f840116016144d2565b9350808452888282870101111561498257600080fd5b61499181838601848801613a72565b5081019190915292959294509192505050565b600082516149b6818460208701613a72565b9190910192915050565b6000602082840312156149d257600080fd5b81516128ad81613d1356fea26469706673582212200af209d1aa7da85fe33bc6cfd8702f1f40dffc74c1f577b893446a21427e8efc64736f6c63430008160033",
1592
+ "deployedBytecode": "0x60806040526004361061024f5760003560e01c80637260753711610138578063b0d7ca5d116100b0578063cbef2aa91161007f578063d621ad3f11610064578063d621ad3f14610841578063f2fde38b14610879578063fc0c546a1461089957600080fd5b8063cbef2aa9146107e5578063cc32d1761461080757600080fd5b8063b0d7ca5d1461076f578063bedb86fb14610784578063c7c7f5b3146107a4578063c859c483146107c557600080fd5b80638da5cb5b116101075780639f68b964116100ec5780639f68b96414610713578063a7229fd91461072f578063a88835d71461074f57600080fd5b80638da5cb5b146106d55780639561b12f146106f357600080fd5b80637260753714610623578063857749b01461066c57806388543f0e146106a05780638c70830b146106b557600080fd5b806338da6b8e116101cb578063461bb0b91161019a5780635e280f111161017f5780635e280f111461058e578063647846a5146105da578063715018a61461060e57600080fd5b8063461bb0b9146105515780635114bf091461057157600080fd5b806338da6b8e146104945780633b6f743b146104e45780633faa12c514610511578063434def551461053157600080fd5b8063200d2ed21161022257806321e6b53d1161020757806321e6b53d1461036b5780632bc5114c1461038b578063341a46481461048157600080fd5b8063200d2ed214610316578063203bd15f1461034957600080fd5b80630141e41b146102545780630d35b4151461028a578063156a0d0f146102b957806316909bca146102fa575b600080fd5b34801561026057600080fd5b5061027461026f366004613935565b6108cd565b6040516102819190613a12565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004613a3d565b610b52565b60405161028193929190613ac2565b3480156102c557600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610281565b34801561030657600080fd5b5060016040516102819190613b79565b34801561032257600080fd5b5060025461033790600160a01b900460ff1681565b60405160ff9091168152602001610281565b34801561035557600080fd5b50610369610364366004613c42565b61104d565b005b34801561037757600080fd5b50610369610386366004613cc4565b61134c565b34801561039757600080fd5b506104206040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526002546001600160a01b03908116825260055481166020830152600754811692820192909252600654821660608201526003548216608082015260045490911660a082015290565b6040516102819190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b61036961048f366004613cdf565b6114ea565b3480156104a057600080fd5b506104cb6104af366004613cf8565b60086020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610281565b3480156104f057600080fd5b506105046104ff366004613d21565b6115c4565b6040516102819190613d73565b34801561051d57600080fd5b5061036961052c366004613d8a565b611871565b34801561053d57600080fd5b5061036961054c366004613dc7565b611945565b34801561055d57600080fd5b5061036961056c366004613e2a565b611bb3565b34801561057d57600080fd5b50475b604051908152602001610281565b34801561059a57600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610281565b3480156105e657600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b34801561061a57600080fd5b50610369611d61565b34801561062f57600080fd5b506106577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610281565b34801561067857600080fd5b506103377f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ac57600080fd5b50600154610580565b3480156106c157600080fd5b506103696106d0366004613cdf565b611d75565b3480156106e157600080fd5b506000546001600160a01b03166105c2565b3480156106ff57600080fd5b5061036961070e366004613e3c565b611d82565b34801561071f57600080fd5b5060405160018152602001610281565b34801561073b57600080fd5b5061058061074a366004613eaf565b611ee8565b34801561075b57600080fd5b5061036961076a366004613eeb565b611fe6565b34801561077b57600080fd5b50610369612212565b34801561079057600080fd5b5061036961079f366004613f74565b61227b565b6107b76107b2366004613f91565b612336565b60405161028192919061402f565b3480156107d157600080fd5b506103696107e0366004614053565b61236a565b6107f86107f3366004613f91565b612465565b6040516102819392919061407f565b34801561081357600080fd5b506002546104cb907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561084d57600080fd5b5061058061085c3660046140da565b600960209081526000928352604080842090915290825290205481565b34801561088557600080fd5b50610369610894366004613cc4565b61264b565b3480156108a557600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b600254606090600160a01b900460ff1660011461094557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b031633811461099557604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156109b0576109b0614106565b6040519080825280602002602001820160405280156109f557816020015b60408051808201909152600080825260208201528152602001906001900390816109ce5790505b5090506000805b85811015610af75736878783818110610a1757610a17614135565b90506060020190506000610a81826020016020810190610a379190614164565b610a476060850160408601614164565b60086000610a586020880188613cf8565b63ffffffff1663ffffffff1681526020019081526020016000206126f29092919063ffffffff16565b905067ffffffffffffffff811615610aed576040805180820190915280610aab6020850185613cf8565b63ffffffff16815267ffffffffffffffff83166020909101528585610acf816141b0565b965081518110610ae157610ae1614135565b60200260200101819052505b50506001016109fc565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610b2c9291906141e8565b60405180910390a1509150506002805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610b85604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610c2060086000886000016020810190610bd09190613cf8565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610c4d8460200151866040013511610c435785604001356127a7565b84602001516127a7565b90506000610c7c610c616020880188613cf8565b83610c77610c7260c08b018b614207565b6127e7565b61282a565b600254604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d53919061426c565b90508267ffffffffffffffff168167ffffffffffffffff1614610fd05760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610d855790505094508267ffffffffffffffff168167ffffffffffffffff161015610ea7576040518060400160405280610e1c610e178487610de89190614289565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6128b4565b610e46907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6142aa565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610e9757610e97614135565b6020026020010181905250610fd0565b8267ffffffffffffffff168167ffffffffffffffff161115610fd0576000610ecf8483614289565b9091039050600067ffffffffffffffff84811690831603610f30576040805160008082526020820190925290610f28565b604080518082019091526000815260606020820152815260200190600190039081610f005790505b509550610fce565b6040518060400160405280610f71610e178467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610fc257610fc2614135565b60200260200101819052505b505b604051806040016040528061100e8567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b600254600160a01b900460ff1660011461109057600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146110e057604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f00000000000000000000000000000000000000000000000000000000000000000282158015906060906111795761117661112c60608c0160408d01614164565b61113960208d018d613cf8565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061296a92505050565b90505b6000611185898561299c565b9050801561128e578215611232576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906111ff908c908e9060009088906004016142f6565b600060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61126b60208f018f613cf8565b6040805163ffffffff9092168252602082018990520160405180910390a361132c565b61129b60208c018c613cf8565b8985846040516020016112b19493929190614328565b60408051601f19818403018152918152815160209283012060008d8152600984528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061130e908f018f613cf8565b8c8887604051611323969594939291906143a6565b60405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050505050565b611354612a43565b6001600160a01b038116158061137257506001600160a01b03811630145b156113b9576040517f5a7584500000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024015b60405180910390fd5b6040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600060048201526001600160a01b0382811660248301527f00000000000000000000000000000000000000000000000000000000000000001690632f2ff15d90604401600060405180830381600087803b15801561143c57600080fd5b505af1158015611450573d6000803e3d6000fd5b50506040517f8bb9c5bf000000000000000000000000000000000000000000000000000000008152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250638bb9c5bf9150602401600060405180830381600087803b1580156114cf57600080fd5b505af11580156114e3573d6000803e3d6000fd5b5050505050565b6007546001600160a01b031633811461151657604051635bd25eff60e01b815260040160405180910390fd5b61151f82612ab7565b600061152b3384612aef565b905080600260158282829054906101000a900467ffffffffffffffff1661155291906143f5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd0816040516115b7919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b604080518082019091526000808252602082015260006115e784604001356127a7565b90508067ffffffffffffffff1660000361162d576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061163f610c7260c0870187614207565b905080156117ad576006546040805160c081019091523381526001600160a01b0390911690633292cf029060208082019061167c908a018a613cf8565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016116ae60a08a018a614207565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016116f560808a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815261176691908890600401614485565b6040805180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a69190614533565b9250611869565b6000806117bd6080880188614207565b60065492109250506001600160a01b03166375d2208c6117e06020890189613cf8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190614533565b9350505b505092915050565b611879612a43565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff16036118de576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020611900918390612bf016565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b600254600160a01b900460ff1660011461198857600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146119d857604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f0000000000000000000000000000000000000000000000000000000000000000026000611a11858361299c565b90508015611a75576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c611a5260208c018c613cf8565b6040805163ffffffff9092168252602082018790520160405180910390a3611b96565b611a826020890189613cf8565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b559088908890611b4a908c018c613cf8565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050565b611bbb612a43565b611bc86020820182613cc4565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c056040820160208301613cc4565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c426060820160408301613cc4565b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611c7f6080820160608301613cc4565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611cbc60a0820160808301613cc4565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611cf960c0820160a08301613cc4565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611d5690839061454f565b60405180910390a150565b611d69612a43565b611d736000612cba565b565b611d7d612a43565b600155565b600254600160a01b900460ff16600114611dc557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b0316338114611e1557604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611e935736848483818110611e3357611e33614135565b9050604002019050611e8a816020016020810190611e519190614164565b60086000611e626020860186613cf8565b63ffffffff1663ffffffff168152602001908152602001600020612d1790919063ffffffff16565b50600101611e18565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611ec7939291906145ce565b60405180910390a150506002805460ff60a01b1916600160a01b1790555050565b600254600090600160a01b900460ff16600114611f2e57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556007546001600160a01b0316338114611f7e57604051635bd25eff60e01b815260040160405180910390fd5b6001600160a01b038516611fbe576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611fcb8585856000612db1565b50506002805460ff60a01b1916600160a01b17905592915050565b600254600160a01b900460ff1660011461202957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556040516120669086908690869086908690602001614641565b60408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252909352912054146120cd576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260096020908152604080832060ff8a1684529091528120556120f48484612df9565b612103612100846127a7565b50565b80156121aa576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906121779087908b90600090889088906004016146b3565b600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506002805460ff60a01b1916600160a01b1790555050505050565b6005546001600160a01b031633811461223e57604051635bd25eff60e01b815260040160405180910390fd5b4761224b33826000612e3e565b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e18390602001611939565b6005546001600160a01b03163381146122a757604051635bd25eff60e01b815260040160405180910390fd5b600254600119600160a01b90910460ff16016122d6576040516376a9ad7360e01b815260040160405180910390fd5b816122e25760016122e5565b60035b6002805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb90602001611939565b61233e6138d4565b604080518082019091526000808252602082015261235d858585612465565b5090969095509350505050565b6007546001600160a01b031633811461239657604051635bd25eff60e01b815260040160405180910390fd5b81600260158282829054906101000a900467ffffffffffffffff166123bb9190614289565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061241d836124188467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612df9565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e65391016115b7565b61246d6138d4565b6040805180820190915260008082526020820152604080518082019091526000815260606020820152600254600160a01b900460ff166001146124d957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061250a89612e7f565b925092509250604051806040016040528061254e8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061259f612598368b90038b018b614704565b8751612f1d565b905083156125ba576125b38a82848b612f70565b96506125cc565b6125c68a82848b613153565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6125fe60208e018e613cf8565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506002805460ff60a01b1916600160a01b1790555092969195509350915050565b612653612a43565b6001600160a01b0381166126e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016113b0565b61210081612cba565b825460009067ffffffffffffffff1667fffffffffffffffe198101612743576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff16101561279f5782810367ffffffffffffffff8082169086161161277c578461277e565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006127e17f000000000000000000000000000000000000000000000000000000000000000083816127db576127db614736565b0461334f565b92915050565b60008115612821576040517f5d2d4a5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600192915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260089092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016113b0565b5090565b6060848484846040516020016129839493929190614765565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b158015612a2457600080fd5b505af1925050508015612a35575060015b156127e15750600192915050565b6000546001600160a01b03163314611d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016113b0565b3415612100576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612afa826127a7565b90507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8216029150612b577f00000000000000000000000000000000000000000000000000000000000000008430856133e9565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b158015612bd257600080fd5b505af1158015612be6573d6000803e3d6000fd5b5050505092915050565b815467ffffffffffffffff168115612c625767ffffffffffffffff811615612c44576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612ca5576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612d3857505050565b612d4282826143f5565b905067fffffffffffffffe1967ffffffffffffffff821601612d90576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612dbd848484846133f5565b612df3576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612e05838361299c565b905080612cb5576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e4983838361342a565b612cb5576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080612e93610c7260c0860186614207565b9250612ea3338560400135612aef565b91506000612ebe612eb76020870187613cf8565b848661282a565b9050612ed681612ed187606001356127a7565b613451565b9150612f158260086000612eed60208a018a613cf8565b63ffffffff1663ffffffff16815260200190815260200160002061364690919063ffffffff16565b509193909250565b60408051808201909152600080825260208201523415612f69576040517febf2eaea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612f786138d4565b835115612fcf57612fcf7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087600001516133e9565b602084015115612fe657612fe684602001516136d4565b6006546040805160c081019091523381526001600160a01b039091169063ff6fb3009060208082019061301b908a018a613cf8565b63ffffffff1681526020898101359082015267ffffffffffffffff8716604082015260600161304d60a08a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161309460808a018a614207565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526131079190889087906004016147e3565b6080604051808303816000875af1158015613126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314a9190614893565b95945050505050565b61315b6138d4565b6040805180820190915260008152606060208201526020850151156131ac576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040805160a081019091523381526001600160a01b03909116906385afd453906020808201906131e1908b018b613cf8565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061321560808c018c614207565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156132b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132de91908101906148af565b60408201515187519294509092509080821461334457818111156133125781810361330b8682600061342a565b5050613344565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff821115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016113b0565b612dbd84848484613747565b60006001600160a01b0385166134175761341084848461342a565b9050613422565b61314a8585856137fb565b949350505050565b60008082613438575a61343c565b6001545b9050600080600080878986f195945050505050565b600254604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af1158015613505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613529919061426c565b604084015190915067ffffffffffffffff80821690831610156135b0576135508282614289565b600280546015906135859084907501000000000000000000000000000000000000000000900467ffffffffffffffff166143f5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506135de565b8067ffffffffffffffff168267ffffffffffffffff1611156135de5760006135d88284614289565b90920391505b8267ffffffffffffffff168267ffffffffffffffff161080613608575067ffffffffffffffff8216155b1561363f576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161366757505050565b8167ffffffffffffffff168167ffffffffffffffff1610156136b5576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6004546001600160a01b031680613717576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61374381337f0000000000000000000000000000000000000000000000000000000000000000856133e9565b5050565b6040516001600160a01b038085166024830152831660448201526064810182905260009061314a9086907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613847565b6040516001600160a01b0383166024820152604481018290526000906134229085907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613797565b6000806000846001600160a01b03168460405161386491906149a4565b6000604051808303816000865af19150503d80600081146138a1576040519150601f19603f3d011682016040523d82523d6000602084013e6138a6565b606091505b5091509150816138b757600061314a565b8051158061314a57508080602001905181019061314a91906149c0565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613917604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461393057600080fd5b919050565b60008060006040848603121561394a57600080fd5b6139538461391c565b9250602084013567ffffffffffffffff8082111561397057600080fd5b818601915086601f83011261398457600080fd5b81358181111561399357600080fd5b8760206060830285010111156139a857600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b83811015613a07578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016139d0565b509495945050505050565b6020815260006128ad60208301846139bb565b600060e08284031215613a3757600080fd5b50919050565b600060208284031215613a4f57600080fd5b813567ffffffffffffffff811115613a6657600080fd5b61342284828501613a25565b60005b83811015613a8d578181015183820152602001613a75565b50506000910152565b60008151808452613aae816020860160208601613a72565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015613b5b578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052613b4887890182613a96565b9750509382019390820190600101613afe565b50508751606088015250505060208501516080850152509050613422565b6020810160028310613bb4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060608284031215613a3757600080fd5b80356001600160a01b038116811461393057600080fd5b67ffffffffffffffff8116811461210057600080fd5b60008083601f840112613c0b57600080fd5b50813567ffffffffffffffff811115613c2357600080fd5b602083019150836020828501011115613c3b57600080fd5b9250929050565b60008060008060008060e08789031215613c5b57600080fd5b613c658888613bba565b955060608701359450613c7a60808801613bcc565b935060a0870135613c8a81613be3565b925060c087013567ffffffffffffffff811115613ca657600080fd5b613cb289828a01613bf9565b979a9699509497509295939492505050565b600060208284031215613cd657600080fd5b6128ad82613bcc565b600060208284031215613cf157600080fd5b5035919050565b600060208284031215613d0a57600080fd5b6128ad8261391c565b801515811461210057600080fd5b60008060408385031215613d3457600080fd5b823567ffffffffffffffff811115613d4b57600080fd5b613d5785828601613a25565b9250506020830135613d6881613d13565b809150509250929050565b8151815260208083015190820152604081016127e1565b60008060408385031215613d9d57600080fd5b613da68361391c565b91506020830135613d6881613d13565b803560ff8116811461393057600080fd5b600080600080600060e08688031215613ddf57600080fd5b613de98787613bba565b945060608601359350613dfe60808701613db6565b9250613e0c60a08701613bcc565b915060c0860135613e1c81613be3565b809150509295509295909350565b600060c08284031215613a3757600080fd5b600080600060408486031215613e5157600080fd5b613e5a8461391c565b9250602084013567ffffffffffffffff80821115613e7757600080fd5b818601915086601f830112613e8b57600080fd5b813581811115613e9a57600080fd5b8760208260061b85010111156139a857600080fd5b600080600060608486031215613ec457600080fd5b613ecd84613bcc565b9250613edb60208501613bcc565b9150604084013590509250925092565b600080600080600080600060c0888a031215613f0657600080fd5b87359650613f1660208901613db6565b9550613f246040890161391c565b9450613f3260608901613bcc565b93506080880135925060a088013567ffffffffffffffff811115613f5557600080fd5b613f618a828b01613bf9565b989b979a50959850939692959293505050565b600060208284031215613f8657600080fd5b81356128ad81613d13565b60008060008385036080811215613fa757600080fd5b843567ffffffffffffffff811115613fbe57600080fd5b613fca87828801613a25565b9450506040601f1982011215613fdf57600080fd5b50602084019150613ff260608501613bcc565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612cb5604084018280518252602090810151910152565b60c0810161403d8285613ffb565b82516080830152602083015160a08301526128ad565b6000806040838503121561406657600080fd5b61406f83613bcc565b91506020830135613d6881613be3565b6140898185613ffb565b82516080820152602083015160a082015260e060c082015268ffffffffffffffffff82511660e08201526000602083015160406101008401526140d0610120840182613a96565b9695505050505050565b600080604083850312156140ed57600080fd5b823591506140fd60208401613db6565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561417657600080fd5b81356128ad81613be3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141e1576141e1614181565b5060010190565b63ffffffff8316815260406020820152600061342260408301846139bb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261423c57600080fd5b83018035915067ffffffffffffffff82111561425757600080fd5b602001915036819003821315613c3b57600080fd5b60006020828403121561427e57600080fd5b81516128ad81613be3565b67ffffffffffffffff82811682821603908082111561363f5761363f614181565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156142e2576142e2614181565b81810583148215176127e1576127e1614181565b6001600160a01b038516815283602082015261ffff831660408201526080606082015260006140d06080830184613a96565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251614396816038850160208701613a72565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006143e960c0830184613a96565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561363f5761363f614181565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261446c60c0850182613a96565b905060a083015184820360a086015261314a8282613a96565b6040815260006144986040830185614416565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156144cc576144cc614106565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156144fb576144fb614106565b604052919050565b60006040828403121561451557600080fd5b61451d6144a9565b9050815181526020820151602082015292915050565b60006040828403121561454557600080fd5b6128ad8383614503565b60c081016001600160a01b038061456585613bcc565b1683528061457560208601613bcc565b1660208401528061458860408601613bcc565b1660408401528061459b60608601613bcc565b166060840152806145ae60808601613bcc565b166080840152806145c160a08601613bcc565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561463357836146058661391c565b1682528285013561461581613be3565b67ffffffffffffffff168284015293850193908501906001016145f3565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561471657600080fd5b61471e6144a9565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516147d381602c850160208701613a72565b91909101602c0195945050505050565b6080815260006147f66080830186614416565b905061480f602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561483857600080fd5b6040516060810181811067ffffffffffffffff8211171561485b5761485b614106565b806040525080915082518152602083015161487581613be3565b60208201526148878460408501614503565b60408201525092915050565b6000608082840312156148a557600080fd5b6128ad8383614826565b60008060a083850312156148c257600080fd5b6148cc8484614826565b9150608083015167ffffffffffffffff808211156148e957600080fd5b90840190604082870312156148fd57600080fd5b6149056144a9565b825168ffffffffffffffffff8116811461491e57600080fd5b81526020838101518381111561493357600080fd5b80850194505087601f85011261494857600080fd5b83518381111561495a5761495a614106565b61496c82601f19601f840116016144d2565b9350808452888282870101111561498257600080fd5b61499181838601848801613a72565b5081019190915292959294509192505050565b600082516149b6818460208701613a72565b9190910192915050565b6000602082840312156149d257600080fd5b81516128ad81613d1356fea26469706673582212200af209d1aa7da85fe33bc6cfd8702f1f40dffc74c1f577b893446a21427e8efc64736f6c63430008160033",
1593
+ "linkReferences": {},
1594
+ "deployedLinkReferences": {}
1595
+ }