@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,1142 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "CreditMessagingAlt",
4
+ "sourceName": "src/messaging/CreditMessagingAlt.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_owner",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "CreditMessaging_NotAnAltEndpoint",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "CreditMessaging_OnlyAltToken",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "CreditMsgCodec_InvalidMessage",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "InvalidDelegate",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "InvalidEndpointCall",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "bytes",
51
+ "name": "options",
52
+ "type": "bytes"
53
+ }
54
+ ],
55
+ "name": "InvalidOptions",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [],
60
+ "name": "LzTokenUnavailable",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "inputs": [],
65
+ "name": "MessagingOptions_ZeroGasLimit",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [],
70
+ "name": "Messaging_InvalidAssetId",
71
+ "type": "error"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "Messaging_Unauthorized",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "Messaging_Unavailable",
81
+ "type": "error"
82
+ },
83
+ {
84
+ "inputs": [
85
+ {
86
+ "internalType": "uint32",
87
+ "name": "eid",
88
+ "type": "uint32"
89
+ }
90
+ ],
91
+ "name": "NoPeer",
92
+ "type": "error"
93
+ },
94
+ {
95
+ "inputs": [
96
+ {
97
+ "internalType": "uint256",
98
+ "name": "msgValue",
99
+ "type": "uint256"
100
+ }
101
+ ],
102
+ "name": "NotEnoughNative",
103
+ "type": "error"
104
+ },
105
+ {
106
+ "inputs": [
107
+ {
108
+ "internalType": "address",
109
+ "name": "addr",
110
+ "type": "address"
111
+ }
112
+ ],
113
+ "name": "OnlyEndpoint",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [
118
+ {
119
+ "internalType": "uint32",
120
+ "name": "eid",
121
+ "type": "uint32"
122
+ },
123
+ {
124
+ "internalType": "bytes32",
125
+ "name": "sender",
126
+ "type": "bytes32"
127
+ }
128
+ ],
129
+ "name": "OnlyPeer",
130
+ "type": "error"
131
+ },
132
+ {
133
+ "inputs": [],
134
+ "name": "OnlySelf",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "bytes",
141
+ "name": "result",
142
+ "type": "bytes"
143
+ }
144
+ ],
145
+ "name": "SimulationResult",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "Transfer_ApproveFailed",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [],
155
+ "name": "Transfer_TransferFailed",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "anonymous": false,
160
+ "inputs": [
161
+ {
162
+ "indexed": false,
163
+ "internalType": "address",
164
+ "name": "stargateImpl",
165
+ "type": "address"
166
+ },
167
+ {
168
+ "indexed": false,
169
+ "internalType": "uint16",
170
+ "name": "assetId",
171
+ "type": "uint16"
172
+ }
173
+ ],
174
+ "name": "AssetIdSet",
175
+ "type": "event"
176
+ },
177
+ {
178
+ "anonymous": false,
179
+ "inputs": [
180
+ {
181
+ "components": [
182
+ {
183
+ "internalType": "uint32",
184
+ "name": "eid",
185
+ "type": "uint32"
186
+ },
187
+ {
188
+ "internalType": "uint16",
189
+ "name": "msgType",
190
+ "type": "uint16"
191
+ },
192
+ {
193
+ "internalType": "bytes",
194
+ "name": "options",
195
+ "type": "bytes"
196
+ }
197
+ ],
198
+ "indexed": false,
199
+ "internalType": "struct EnforcedOptionParam[]",
200
+ "name": "_enforcedOptions",
201
+ "type": "tuple[]"
202
+ }
203
+ ],
204
+ "name": "EnforcedOptionSet",
205
+ "type": "event"
206
+ },
207
+ {
208
+ "anonymous": false,
209
+ "inputs": [
210
+ {
211
+ "indexed": false,
212
+ "internalType": "uint32",
213
+ "name": "eid",
214
+ "type": "uint32"
215
+ },
216
+ {
217
+ "indexed": false,
218
+ "internalType": "uint128",
219
+ "name": "gasLimit",
220
+ "type": "uint128"
221
+ }
222
+ ],
223
+ "name": "GasLimitSet",
224
+ "type": "event"
225
+ },
226
+ {
227
+ "anonymous": false,
228
+ "inputs": [
229
+ {
230
+ "indexed": false,
231
+ "internalType": "uint16",
232
+ "name": "maxAssetId",
233
+ "type": "uint16"
234
+ }
235
+ ],
236
+ "name": "MaxAssetIdSet",
237
+ "type": "event"
238
+ },
239
+ {
240
+ "anonymous": false,
241
+ "inputs": [
242
+ {
243
+ "indexed": true,
244
+ "internalType": "address",
245
+ "name": "previousOwner",
246
+ "type": "address"
247
+ },
248
+ {
249
+ "indexed": true,
250
+ "internalType": "address",
251
+ "name": "newOwner",
252
+ "type": "address"
253
+ }
254
+ ],
255
+ "name": "OwnershipTransferred",
256
+ "type": "event"
257
+ },
258
+ {
259
+ "anonymous": false,
260
+ "inputs": [
261
+ {
262
+ "indexed": false,
263
+ "internalType": "uint32",
264
+ "name": "eid",
265
+ "type": "uint32"
266
+ },
267
+ {
268
+ "indexed": false,
269
+ "internalType": "bytes32",
270
+ "name": "peer",
271
+ "type": "bytes32"
272
+ }
273
+ ],
274
+ "name": "PeerSet",
275
+ "type": "event"
276
+ },
277
+ {
278
+ "anonymous": false,
279
+ "inputs": [
280
+ {
281
+ "indexed": false,
282
+ "internalType": "address",
283
+ "name": "planner",
284
+ "type": "address"
285
+ }
286
+ ],
287
+ "name": "PlannerSet",
288
+ "type": "event"
289
+ },
290
+ {
291
+ "anonymous": false,
292
+ "inputs": [
293
+ {
294
+ "indexed": false,
295
+ "internalType": "address",
296
+ "name": "preCrimeAddress",
297
+ "type": "address"
298
+ }
299
+ ],
300
+ "name": "PreCrimeSet",
301
+ "type": "event"
302
+ },
303
+ {
304
+ "inputs": [
305
+ {
306
+ "components": [
307
+ {
308
+ "internalType": "uint32",
309
+ "name": "srcEid",
310
+ "type": "uint32"
311
+ },
312
+ {
313
+ "internalType": "bytes32",
314
+ "name": "sender",
315
+ "type": "bytes32"
316
+ },
317
+ {
318
+ "internalType": "uint64",
319
+ "name": "nonce",
320
+ "type": "uint64"
321
+ }
322
+ ],
323
+ "internalType": "struct Origin",
324
+ "name": "origin",
325
+ "type": "tuple"
326
+ }
327
+ ],
328
+ "name": "allowInitializePath",
329
+ "outputs": [
330
+ {
331
+ "internalType": "bool",
332
+ "name": "",
333
+ "type": "bool"
334
+ }
335
+ ],
336
+ "stateMutability": "view",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [
341
+ {
342
+ "internalType": "address",
343
+ "name": "stargateImpl",
344
+ "type": "address"
345
+ }
346
+ ],
347
+ "name": "assetIds",
348
+ "outputs": [
349
+ {
350
+ "internalType": "uint16",
351
+ "name": "assetId",
352
+ "type": "uint16"
353
+ }
354
+ ],
355
+ "stateMutability": "view",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [
360
+ {
361
+ "internalType": "uint32",
362
+ "name": "_eid",
363
+ "type": "uint32"
364
+ },
365
+ {
366
+ "internalType": "uint16",
367
+ "name": "_msgType",
368
+ "type": "uint16"
369
+ },
370
+ {
371
+ "internalType": "bytes",
372
+ "name": "_extraOptions",
373
+ "type": "bytes"
374
+ }
375
+ ],
376
+ "name": "combineOptions",
377
+ "outputs": [
378
+ {
379
+ "internalType": "bytes",
380
+ "name": "",
381
+ "type": "bytes"
382
+ }
383
+ ],
384
+ "stateMutability": "view",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [],
389
+ "name": "endpoint",
390
+ "outputs": [
391
+ {
392
+ "internalType": "contract ILayerZeroEndpointV2",
393
+ "name": "",
394
+ "type": "address"
395
+ }
396
+ ],
397
+ "stateMutability": "view",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "uint32",
404
+ "name": "eid",
405
+ "type": "uint32"
406
+ },
407
+ {
408
+ "internalType": "uint16",
409
+ "name": "msgType",
410
+ "type": "uint16"
411
+ }
412
+ ],
413
+ "name": "enforcedOptions",
414
+ "outputs": [
415
+ {
416
+ "internalType": "bytes",
417
+ "name": "enforcedOption",
418
+ "type": "bytes"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [],
426
+ "name": "feeToken",
427
+ "outputs": [
428
+ {
429
+ "internalType": "address",
430
+ "name": "",
431
+ "type": "address"
432
+ }
433
+ ],
434
+ "stateMutability": "view",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [
439
+ {
440
+ "internalType": "uint32",
441
+ "name": "eid",
442
+ "type": "uint32"
443
+ }
444
+ ],
445
+ "name": "gasLimits",
446
+ "outputs": [
447
+ {
448
+ "internalType": "uint128",
449
+ "name": "gasLimit",
450
+ "type": "uint128"
451
+ }
452
+ ],
453
+ "stateMutability": "view",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [],
458
+ "name": "getTransferGasLimit",
459
+ "outputs": [
460
+ {
461
+ "internalType": "uint256",
462
+ "name": "",
463
+ "type": "uint256"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [
471
+ {
472
+ "components": [
473
+ {
474
+ "internalType": "uint32",
475
+ "name": "srcEid",
476
+ "type": "uint32"
477
+ },
478
+ {
479
+ "internalType": "bytes32",
480
+ "name": "sender",
481
+ "type": "bytes32"
482
+ },
483
+ {
484
+ "internalType": "uint64",
485
+ "name": "nonce",
486
+ "type": "uint64"
487
+ }
488
+ ],
489
+ "internalType": "struct Origin",
490
+ "name": "",
491
+ "type": "tuple"
492
+ },
493
+ {
494
+ "internalType": "bytes",
495
+ "name": "",
496
+ "type": "bytes"
497
+ },
498
+ {
499
+ "internalType": "address",
500
+ "name": "_sender",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "name": "isComposeMsgSender",
505
+ "outputs": [
506
+ {
507
+ "internalType": "bool",
508
+ "name": "",
509
+ "type": "bool"
510
+ }
511
+ ],
512
+ "stateMutability": "view",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [
517
+ {
518
+ "internalType": "uint32",
519
+ "name": "_eid",
520
+ "type": "uint32"
521
+ },
522
+ {
523
+ "internalType": "bytes32",
524
+ "name": "_peer",
525
+ "type": "bytes32"
526
+ }
527
+ ],
528
+ "name": "isPeer",
529
+ "outputs": [
530
+ {
531
+ "internalType": "bool",
532
+ "name": "",
533
+ "type": "bool"
534
+ }
535
+ ],
536
+ "stateMutability": "view",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "components": [
543
+ {
544
+ "internalType": "uint32",
545
+ "name": "srcEid",
546
+ "type": "uint32"
547
+ },
548
+ {
549
+ "internalType": "bytes32",
550
+ "name": "sender",
551
+ "type": "bytes32"
552
+ },
553
+ {
554
+ "internalType": "uint64",
555
+ "name": "nonce",
556
+ "type": "uint64"
557
+ }
558
+ ],
559
+ "internalType": "struct Origin",
560
+ "name": "_origin",
561
+ "type": "tuple"
562
+ },
563
+ {
564
+ "internalType": "bytes32",
565
+ "name": "_guid",
566
+ "type": "bytes32"
567
+ },
568
+ {
569
+ "internalType": "bytes",
570
+ "name": "_message",
571
+ "type": "bytes"
572
+ },
573
+ {
574
+ "internalType": "address",
575
+ "name": "_executor",
576
+ "type": "address"
577
+ },
578
+ {
579
+ "internalType": "bytes",
580
+ "name": "_extraData",
581
+ "type": "bytes"
582
+ }
583
+ ],
584
+ "name": "lzReceive",
585
+ "outputs": [],
586
+ "stateMutability": "payable",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "components": [
593
+ {
594
+ "components": [
595
+ {
596
+ "internalType": "uint32",
597
+ "name": "srcEid",
598
+ "type": "uint32"
599
+ },
600
+ {
601
+ "internalType": "bytes32",
602
+ "name": "sender",
603
+ "type": "bytes32"
604
+ },
605
+ {
606
+ "internalType": "uint64",
607
+ "name": "nonce",
608
+ "type": "uint64"
609
+ }
610
+ ],
611
+ "internalType": "struct Origin",
612
+ "name": "origin",
613
+ "type": "tuple"
614
+ },
615
+ {
616
+ "internalType": "uint32",
617
+ "name": "dstEid",
618
+ "type": "uint32"
619
+ },
620
+ {
621
+ "internalType": "address",
622
+ "name": "receiver",
623
+ "type": "address"
624
+ },
625
+ {
626
+ "internalType": "bytes32",
627
+ "name": "guid",
628
+ "type": "bytes32"
629
+ },
630
+ {
631
+ "internalType": "uint256",
632
+ "name": "value",
633
+ "type": "uint256"
634
+ },
635
+ {
636
+ "internalType": "address",
637
+ "name": "executor",
638
+ "type": "address"
639
+ },
640
+ {
641
+ "internalType": "bytes",
642
+ "name": "message",
643
+ "type": "bytes"
644
+ },
645
+ {
646
+ "internalType": "bytes",
647
+ "name": "extraData",
648
+ "type": "bytes"
649
+ }
650
+ ],
651
+ "internalType": "struct InboundPacket[]",
652
+ "name": "_packets",
653
+ "type": "tuple[]"
654
+ }
655
+ ],
656
+ "name": "lzReceiveAndRevert",
657
+ "outputs": [],
658
+ "stateMutability": "payable",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [
663
+ {
664
+ "components": [
665
+ {
666
+ "internalType": "uint32",
667
+ "name": "srcEid",
668
+ "type": "uint32"
669
+ },
670
+ {
671
+ "internalType": "bytes32",
672
+ "name": "sender",
673
+ "type": "bytes32"
674
+ },
675
+ {
676
+ "internalType": "uint64",
677
+ "name": "nonce",
678
+ "type": "uint64"
679
+ }
680
+ ],
681
+ "internalType": "struct Origin",
682
+ "name": "_origin",
683
+ "type": "tuple"
684
+ },
685
+ {
686
+ "internalType": "bytes32",
687
+ "name": "_guid",
688
+ "type": "bytes32"
689
+ },
690
+ {
691
+ "internalType": "bytes",
692
+ "name": "_message",
693
+ "type": "bytes"
694
+ },
695
+ {
696
+ "internalType": "address",
697
+ "name": "_executor",
698
+ "type": "address"
699
+ },
700
+ {
701
+ "internalType": "bytes",
702
+ "name": "_extraData",
703
+ "type": "bytes"
704
+ }
705
+ ],
706
+ "name": "lzReceiveSimulate",
707
+ "outputs": [],
708
+ "stateMutability": "payable",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [],
713
+ "name": "maxAssetId",
714
+ "outputs": [
715
+ {
716
+ "internalType": "uint16",
717
+ "name": "",
718
+ "type": "uint16"
719
+ }
720
+ ],
721
+ "stateMutability": "view",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [
726
+ {
727
+ "internalType": "uint32",
728
+ "name": "",
729
+ "type": "uint32"
730
+ },
731
+ {
732
+ "internalType": "bytes32",
733
+ "name": "",
734
+ "type": "bytes32"
735
+ }
736
+ ],
737
+ "name": "nextNonce",
738
+ "outputs": [
739
+ {
740
+ "internalType": "uint64",
741
+ "name": "nonce",
742
+ "type": "uint64"
743
+ }
744
+ ],
745
+ "stateMutability": "view",
746
+ "type": "function"
747
+ },
748
+ {
749
+ "inputs": [],
750
+ "name": "oApp",
751
+ "outputs": [
752
+ {
753
+ "internalType": "address",
754
+ "name": "",
755
+ "type": "address"
756
+ }
757
+ ],
758
+ "stateMutability": "view",
759
+ "type": "function"
760
+ },
761
+ {
762
+ "inputs": [],
763
+ "name": "oAppVersion",
764
+ "outputs": [
765
+ {
766
+ "internalType": "uint64",
767
+ "name": "senderVersion",
768
+ "type": "uint64"
769
+ },
770
+ {
771
+ "internalType": "uint64",
772
+ "name": "receiverVersion",
773
+ "type": "uint64"
774
+ }
775
+ ],
776
+ "stateMutability": "pure",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [],
781
+ "name": "owner",
782
+ "outputs": [
783
+ {
784
+ "internalType": "address",
785
+ "name": "",
786
+ "type": "address"
787
+ }
788
+ ],
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [
794
+ {
795
+ "internalType": "uint32",
796
+ "name": "eid",
797
+ "type": "uint32"
798
+ }
799
+ ],
800
+ "name": "peers",
801
+ "outputs": [
802
+ {
803
+ "internalType": "bytes32",
804
+ "name": "peer",
805
+ "type": "bytes32"
806
+ }
807
+ ],
808
+ "stateMutability": "view",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [],
813
+ "name": "planner",
814
+ "outputs": [
815
+ {
816
+ "internalType": "address",
817
+ "name": "",
818
+ "type": "address"
819
+ }
820
+ ],
821
+ "stateMutability": "view",
822
+ "type": "function"
823
+ },
824
+ {
825
+ "inputs": [],
826
+ "name": "preCrime",
827
+ "outputs": [
828
+ {
829
+ "internalType": "address",
830
+ "name": "",
831
+ "type": "address"
832
+ }
833
+ ],
834
+ "stateMutability": "view",
835
+ "type": "function"
836
+ },
837
+ {
838
+ "inputs": [
839
+ {
840
+ "internalType": "uint32",
841
+ "name": "_dstEid",
842
+ "type": "uint32"
843
+ },
844
+ {
845
+ "components": [
846
+ {
847
+ "internalType": "uint16",
848
+ "name": "assetId",
849
+ "type": "uint16"
850
+ },
851
+ {
852
+ "components": [
853
+ {
854
+ "internalType": "uint32",
855
+ "name": "srcEid",
856
+ "type": "uint32"
857
+ },
858
+ {
859
+ "internalType": "uint64",
860
+ "name": "amount",
861
+ "type": "uint64"
862
+ },
863
+ {
864
+ "internalType": "uint64",
865
+ "name": "minAmount",
866
+ "type": "uint64"
867
+ }
868
+ ],
869
+ "internalType": "struct TargetCredit[]",
870
+ "name": "credits",
871
+ "type": "tuple[]"
872
+ }
873
+ ],
874
+ "internalType": "struct TargetCreditBatch[]",
875
+ "name": "_creditBatches",
876
+ "type": "tuple[]"
877
+ }
878
+ ],
879
+ "name": "quoteSendCredits",
880
+ "outputs": [
881
+ {
882
+ "components": [
883
+ {
884
+ "internalType": "uint256",
885
+ "name": "nativeFee",
886
+ "type": "uint256"
887
+ },
888
+ {
889
+ "internalType": "uint256",
890
+ "name": "lzTokenFee",
891
+ "type": "uint256"
892
+ }
893
+ ],
894
+ "internalType": "struct MessagingFee",
895
+ "name": "fee",
896
+ "type": "tuple"
897
+ }
898
+ ],
899
+ "stateMutability": "view",
900
+ "type": "function"
901
+ },
902
+ {
903
+ "inputs": [],
904
+ "name": "renounceOwnership",
905
+ "outputs": [],
906
+ "stateMutability": "nonpayable",
907
+ "type": "function"
908
+ },
909
+ {
910
+ "inputs": [
911
+ {
912
+ "internalType": "uint32",
913
+ "name": "_dstEid",
914
+ "type": "uint32"
915
+ },
916
+ {
917
+ "components": [
918
+ {
919
+ "internalType": "uint16",
920
+ "name": "assetId",
921
+ "type": "uint16"
922
+ },
923
+ {
924
+ "components": [
925
+ {
926
+ "internalType": "uint32",
927
+ "name": "srcEid",
928
+ "type": "uint32"
929
+ },
930
+ {
931
+ "internalType": "uint64",
932
+ "name": "amount",
933
+ "type": "uint64"
934
+ },
935
+ {
936
+ "internalType": "uint64",
937
+ "name": "minAmount",
938
+ "type": "uint64"
939
+ }
940
+ ],
941
+ "internalType": "struct TargetCredit[]",
942
+ "name": "credits",
943
+ "type": "tuple[]"
944
+ }
945
+ ],
946
+ "internalType": "struct TargetCreditBatch[]",
947
+ "name": "_creditBatches",
948
+ "type": "tuple[]"
949
+ }
950
+ ],
951
+ "name": "sendCredits",
952
+ "outputs": [],
953
+ "stateMutability": "payable",
954
+ "type": "function"
955
+ },
956
+ {
957
+ "inputs": [
958
+ {
959
+ "internalType": "address",
960
+ "name": "_stargateImpl",
961
+ "type": "address"
962
+ },
963
+ {
964
+ "internalType": "uint16",
965
+ "name": "_assetId",
966
+ "type": "uint16"
967
+ }
968
+ ],
969
+ "name": "setAssetId",
970
+ "outputs": [],
971
+ "stateMutability": "nonpayable",
972
+ "type": "function"
973
+ },
974
+ {
975
+ "inputs": [
976
+ {
977
+ "internalType": "address",
978
+ "name": "_delegate",
979
+ "type": "address"
980
+ }
981
+ ],
982
+ "name": "setDelegate",
983
+ "outputs": [],
984
+ "stateMutability": "nonpayable",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [
989
+ {
990
+ "components": [
991
+ {
992
+ "internalType": "uint32",
993
+ "name": "eid",
994
+ "type": "uint32"
995
+ },
996
+ {
997
+ "internalType": "uint16",
998
+ "name": "msgType",
999
+ "type": "uint16"
1000
+ },
1001
+ {
1002
+ "internalType": "bytes",
1003
+ "name": "options",
1004
+ "type": "bytes"
1005
+ }
1006
+ ],
1007
+ "internalType": "struct EnforcedOptionParam[]",
1008
+ "name": "_enforcedOptions",
1009
+ "type": "tuple[]"
1010
+ }
1011
+ ],
1012
+ "name": "setEnforcedOptions",
1013
+ "outputs": [],
1014
+ "stateMutability": "nonpayable",
1015
+ "type": "function"
1016
+ },
1017
+ {
1018
+ "inputs": [
1019
+ {
1020
+ "internalType": "uint32",
1021
+ "name": "_eid",
1022
+ "type": "uint32"
1023
+ },
1024
+ {
1025
+ "internalType": "uint128",
1026
+ "name": "_gasLimit",
1027
+ "type": "uint128"
1028
+ }
1029
+ ],
1030
+ "name": "setGasLimit",
1031
+ "outputs": [],
1032
+ "stateMutability": "nonpayable",
1033
+ "type": "function"
1034
+ },
1035
+ {
1036
+ "inputs": [
1037
+ {
1038
+ "internalType": "uint16",
1039
+ "name": "_maxAssetId",
1040
+ "type": "uint16"
1041
+ }
1042
+ ],
1043
+ "name": "setMaxAssetId",
1044
+ "outputs": [],
1045
+ "stateMutability": "nonpayable",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [
1050
+ {
1051
+ "internalType": "uint32",
1052
+ "name": "_eid",
1053
+ "type": "uint32"
1054
+ },
1055
+ {
1056
+ "internalType": "bytes32",
1057
+ "name": "_peer",
1058
+ "type": "bytes32"
1059
+ }
1060
+ ],
1061
+ "name": "setPeer",
1062
+ "outputs": [],
1063
+ "stateMutability": "nonpayable",
1064
+ "type": "function"
1065
+ },
1066
+ {
1067
+ "inputs": [
1068
+ {
1069
+ "internalType": "address",
1070
+ "name": "_planner",
1071
+ "type": "address"
1072
+ }
1073
+ ],
1074
+ "name": "setPlanner",
1075
+ "outputs": [],
1076
+ "stateMutability": "nonpayable",
1077
+ "type": "function"
1078
+ },
1079
+ {
1080
+ "inputs": [
1081
+ {
1082
+ "internalType": "address",
1083
+ "name": "_preCrime",
1084
+ "type": "address"
1085
+ }
1086
+ ],
1087
+ "name": "setPreCrime",
1088
+ "outputs": [],
1089
+ "stateMutability": "nonpayable",
1090
+ "type": "function"
1091
+ },
1092
+ {
1093
+ "inputs": [
1094
+ {
1095
+ "internalType": "uint256",
1096
+ "name": "_gasLimit",
1097
+ "type": "uint256"
1098
+ }
1099
+ ],
1100
+ "name": "setTransferGasLimit",
1101
+ "outputs": [],
1102
+ "stateMutability": "nonpayable",
1103
+ "type": "function"
1104
+ },
1105
+ {
1106
+ "inputs": [
1107
+ {
1108
+ "internalType": "uint16",
1109
+ "name": "assetId",
1110
+ "type": "uint16"
1111
+ }
1112
+ ],
1113
+ "name": "stargateImpls",
1114
+ "outputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "stargateImpl",
1118
+ "type": "address"
1119
+ }
1120
+ ],
1121
+ "stateMutability": "view",
1122
+ "type": "function"
1123
+ },
1124
+ {
1125
+ "inputs": [
1126
+ {
1127
+ "internalType": "address",
1128
+ "name": "newOwner",
1129
+ "type": "address"
1130
+ }
1131
+ ],
1132
+ "name": "transferOwnership",
1133
+ "outputs": [],
1134
+ "stateMutability": "nonpayable",
1135
+ "type": "function"
1136
+ }
1137
+ ],
1138
+ "bytecode": "0x60c06040526108fc6008553480156200001757600080fd5b5060405162003df138038062003df18339810160408190526200003a91620001ea565b81818181818181816200004d336200017d565b6001600160a01b0380831660805281166200007b57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000c357600080fd5b505af1158015620000d8573d6000803e3d6000fd5b505050505050505050505050816001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000123573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000149919062000222565b6001600160a01b031660a08190526200017557604051638f156e3760e01b815260040160405180910390fd5b505062000247565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001e557600080fd5b919050565b60008060408385031215620001fe57600080fd5b6200020983620001cd565b91506200021960208401620001cd565b90509250929050565b6000602082840312156200023557600080fd5b6200024082620001cd565b9392505050565b60805160a051613b5a62000297600039600081816103b90152611dea01526000818161034f01528181610783015281816115d001528181611e0c01528181611ecb01526126490152613b5a6000f3fe6080604052600436106102345760003560e01c80638c70830b11610138578063bd815db0116100b0578063d8e8dbc71161007f578063f2fde38b11610064578063f2fde38b146106e1578063f8d50da614610701578063ff7bd03d1461076157600080fd5b8063d8e8dbc714610690578063e4c572cc146106c157600080fd5b8063bd815db01461062a578063ca5eb5e11461063d578063d045a0dc1461065d578063d42438851461067057600080fd5b8063b731ea0a11610107578063b98bd070116100ec578063b98bd070146105bd578063bb0b6a53146105dd578063bc70b3541461060a57600080fd5b8063b731ea0a14610562578063b76cbd7d1461058257600080fd5b80638c70830b146104be5780638da5cb5b146104de5780638f71f7dd146104fc578063917df23b1461051c57600080fd5b80635f6d9ae4116101cb578063715018a61161019a57806382413eac1161017f57806382413eac1461045f578063826f1fb11461047f57806388543f0e1461049f57600080fd5b8063715018a61461040e5780637d25a05e1461042357600080fd5b80635f6d9ae414610371578063647846a5146103a757806365b9bacb146103db57806370485155146103fb57600080fd5b806352ae28791161020757806352ae2879146102cd5780635535d461146102e05780635a0dfe4d1461030d5780635e280f111461033d57600080fd5b806313137d651461023957806317442b701461024e57806332e4e363146102755780633400288b146102ad575b600080fd5b61024c6102473660046129fe565b610781565b005b34801561025a57600080fd5b50604080516001815260026020820152015b60405180910390f35b34801561028157600080fd5b50600554610295906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b3480156102b957600080fd5b5061024c6102c8366004612aaf565b610873565b3480156102d957600080fd5b5030610295565b3480156102ec57600080fd5b506103006102fb366004612aed565b610889565b60405161026c9190612b72565b34801561031957600080fd5b5061032d610328366004612aaf565b61092e565b604051901515815260200161026c565b34801561034957600080fd5b506102957f000000000000000000000000000000000000000000000000000000000000000081565b34801561037d57600080fd5b5061029561038c366004612b85565b6004602052600090815260409020546001600160a01b031681565b3480156103b357600080fd5b506102957f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e757600080fd5b5061024c6103f6366004612ba0565b61094d565b61024c610409366004612c33565b6109e4565b34801561041a57600080fd5b5061024c610c2f565b34801561042f57600080fd5b5061044661043e366004612aaf565b600092915050565b60405167ffffffffffffffff909116815260200161026c565b34801561046b57600080fd5b5061032d61047a366004612c88565b610c43565b34801561048b57600080fd5b5061024c61049a366004612cee565b610c58565b3480156104ab57600080fd5b506008545b60405190815260200161026c565b3480156104ca57600080fd5b5061024c6104d9366004612d09565b610ccd565b3480156104ea57600080fd5b506000546001600160a01b0316610295565b34801561050857600080fd5b5061024c610517366004612d22565b610cda565b34801561052857600080fd5b5060025461054f9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff909116815260200161026c565b34801561056e57600080fd5b50600254610295906001600160a01b031681565b34801561058e57600080fd5b506105a261059d366004612c33565b610f9c565b6040805182518152602092830151928101929092520161026c565b3480156105c957600080fd5b5061024c6105d8366004612d3e565b611229565b3480156105e957600080fd5b506104b06105f8366004612d80565b60016020526000908152604090205481565b34801561061657600080fd5b50610300610625366004612d9d565b611243565b61024c610638366004612d3e565b611404565b34801561064957600080fd5b5061024c610658366004612cee565b611590565b61024c61066b3660046129fe565b61162f565b34801561067c57600080fd5b5061024c61068b366004612cee565b611677565b34801561069c57600080fd5b5061054f6106ab366004612cee565b60036020526000908152604090205461ffff1681565b3480156106cd57600080fd5b5061024c6106dc366004612b85565b6116e5565b3480156106ed57600080fd5b5061024c6106fc366004612cee565b611768565b34801561070d57600080fd5b5061074061071c366004612d80565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161026c565b34801561076d57600080fd5b5061032d61077c366004612e00565b611812565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107ea576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610804906107ff908a612d80565b611848565b1461085b576108166020880188612d80565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107e1565b61086a8787878787878761189d565b50505050505050565b61087b61196c565b61088582826119e0565b5050565b6006602090815260009283526040808420909152908252902080546108ad90612e1c565b80601f01602080910402602001604051908101604052809291908181526020018280546108d990612e1c565b80156109265780601f106108fb57610100808354040283529160200191610926565b820191906000526020600020905b81548152906001019060200180831161090957829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b61095561196c565b63ffffffff821660008181526007602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf5653791015b60405180910390a15050565b6005546001600160a01b03163314610a28576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115610a4357610a43612e69565b604051908082528060200260200182016040528015610a8957816020015b604080518082019091526000815260606020820152815260200190600190039081610a615790505b50905060008060005b84811015610bc95736868683818110610aad57610aad612e98565b9050602002810190610abf9190612ec7565b90506000610ad8610ad36020840184612b85565b611a2e565b6001600160a01b0316630141e41b8a610af46020860186612f05565b6040518463ffffffff1660e01b8152600401610b1293929190612f82565b6000604051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5991908101906130b0565b805190915015610bbf576040805180820190915280610b7b6020850185612b85565b61ffff1681526020018290528686610b92816131a2565b975081518110610ba457610ba4612e98565b6020026020010181905250805184610bbc91906131bc565b93505b5050600101610a92565b508115610c27578183526000610bf184836fffffffffffffffffffffffffffffffff16611a87565b90506000610bff8884611bfb565b9050610c238883836040518060400160405280348152602001600081525033611dbc565b5050505b505050505050565b610c3761196c565b610c416000611e4d565b565b6001600160a01b03811630145b949350505050565b610c6061196c565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b610cd561196c565b600855565b610ce261196c565b8061ffff16600003610d20576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff7401000000000000000000000000000000000000000090910481169082161115610dc957600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff86811685526004909352922054911691168115610e3a5761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b03811615610e88576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b038416610ed45761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610f51565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f5910160405180910390a150505050565b604080518082019091526000808252602082015260008267ffffffffffffffff811115610fcb57610fcb612e69565b60405190808252806020026020018201604052801561101157816020015b604080518082019091526000815260606020820152815260200190600190039081610fe95790505b5090506000805b848110156111e15736600087878481811061103557611035612e98565b90506020028101906110479190612ec7565b611055906020810190612f05565b909250905060008167ffffffffffffffff81111561107557611075612e69565b6040519080825280602002602001820160405280156110ba57816020015b60408051808201909152600080825260208201528152602001906001900390816110935790505b5090506110c782866131bc565b945060005b8281101561116e5760405180604001604052808585848181106110f1576110f1612e98565b6111079260206060909202019081019150612d80565b63ffffffff16815260200185858481811061112457611124612e98565b905060600201602001602081019061113c91906131ec565b67ffffffffffffffff1681525082828151811061115b5761115b612e98565b60209081029190910101526001016110cc565b5060405180604001604052808a8a8781811061118c5761118c612e98565b905060200281019061119e9190612ec7565b6111ac906020810190612b85565b61ffff168152602001828152508685815181106111cb576111cb612e98565b6020908102919091010152505050600101611018565b50600061120083836fffffffffffffffffffffffffffffffff16611a87565b9050600061120e8884611bfb565b905061121d8883836000611eb5565b98975050505050505050565b61123161196c565b61088561123e8284613231565b611f96565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061127790612e1c565b80601f01602080910402602001604051908101604052809291908181526020018280546112a390612e1c565b80156112f05780601f106112c5576101008083540402835291602001916112f0565b820191906000526020600020905b8154815290600101906020018083116112d357829003601f168201915b5050505050905080516000036113405783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610c509350505050565b6000839003611350579050610c50565b600283106113ce5761139784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061209d92505050565b806113a5846002818861333d565b6040516020016113b793929190613367565b604051602081830303815290604052915050610c50565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107e19291906133ba565b60005b818110156114f6573683838381811061142257611422612e98565b905060200281019061143491906133ce565b90506114506114466020830183612d80565b602083013561092e565b61145a57506114ee565b3063d045a0dc60c08301358360a0810135611479610100830183613402565b61148a610100890160e08a01612cee565b6114986101208a018a613402565b6040518963ffffffff1660e01b81526004016114ba9796959493929190613467565b6000604051808303818588803b1580156114d357600080fd5b505af11580156114e7573d6000803e3d6000fd5b5050505050505b600101611407565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d91908101906134f0565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107e19190612b72565b61159861196c565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b5050505050565b333014611668576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61086a8787878787878761085b565b61167f61196c565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610cc2565b6116ed61196c565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610cc2565b61177061196c565b6001600160a01b038116611806576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107e1565b61180f81611e4d565b50565b600060208201803590600190839061182a9086612d80565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610947576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107e1565b60006118a986866120e2565b805190915060005b818110156119605760008382815181106118cd576118cd612e98565b602002602001015190506118e48160000151611a2e565b6001600160a01b0316639561b12f6118ff60208e018e612d80565b83602001516040518363ffffffff1660e01b815260040161192192919061355e565b600060405180830381600087803b15801561193b57600080fd5b505af115801561194f573d6000803e3d6000fd5b5050600190930192506118b1915050565b50505050505050505050565b6000546001600160a01b03163314610c41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e1565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91016109d8565b61ffff81166000908152600460205260409020546001600160a01b031680611a82576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b81516060906000611a9a600860046135cd565b611aa79060ff16856135e6565b611ab3600260016135cd565b611ac09060ff16846135e6565b611acb9060016135fd565b611ad591906135fd565b9050611af4604051806040016040528060608152602001600081525090565b611afe818361236f565b50611b12611b0b846123e6565b829061247d565b5060005b83811015611bf0576000878281518110611b3257611b32612e98565b60209081029190910101518051909150611b5390849061ffff1660026124e6565b50602081015151611b6d611b66826123e6565b859061247d565b5060005b81811015611be557600083602001518281518110611b9157611b91612e98565b60200260200101519050611bbe816000015163ffffffff16600460ff16886124e69092919063ffffffff16565b506020810151611bdb90879067ffffffffffffffff1660086124e6565b5050600101611b71565b505050600101611b16565b505195945050505050565b6060600082611c098561255b565b611c139190613610565b63ffffffff85166000908152600660209081526040808320600384529091529020805491925090611c4390612e1c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c6f90612e1c565b8015611cbc5780601f10611c9157610100808354040283529160200191611cbc565b820191906000526020600020905b815481529060010190602001808311611c9f57829003601f168201915b505050505091508151600014611cfc578160016011600184604051602001611ce895949392919061363c565b604051602081830303815290604052610c50565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166026820152603601604051602081830303815290604052949350505050565b611dc461293e565b611dcc6125bd565b6000611ddb8787876000611eb5565b805190915015611e3557611e357f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000084600001516125f5565b611e42878787848761263d565b979650505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611f1889611848565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611f4d9291906136ed565b6040805180830381865afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d91906137b4565b95945050505050565b60005b815181101561206d57611fc8828281518110611fb757611fb7612e98565b60200260200101516040015161209d565b818181518110611fda57611fda612e98565b60200260200101516040015160066000848481518110611ffc57611ffc612e98565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061203657612036612e98565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612064919061381d565b50600101611f99565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610cc291906138dd565b600281015161ffff811660031461088557816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107e19190612b72565b60606000838360008181106120f9576120f9612e98565b919091013560f81c915081905067ffffffffffffffff81111561211e5761211e612e69565b60405190808252806020026020018201604052801561216457816020015b60408051808201909152600081526060602082015281526020019060019003908161213c5790505b509150600160005b8260ff1681101561232d5760008683876121876002836135fd565b9550612196928692919061333d565b61219f91613986565b60f01c905060008787858181106121b8576121b8612e98565b919091013560f81c91506121cf90506001856135fd565b935060008160ff1667ffffffffffffffff8111156121ef576121ef612e69565b60405190808252806020026020018201604052801561223457816020015b604080518082019091526000808252602082015281526020019060019003908161220d5790505b50905060005b8260ff168110156122eb5760008a878b6122556004836135fd565b9950612264928a92919061333d565b61226d916139cc565b60e01c905060008b888c6122826008836135fd565b9a50612291928b92919061333d565b61229a91613a12565b60c01c905060405180604001604052808363ffffffff1681526020018267ffffffffffffffff168152508484815181106122d6576122d6612e98565b6020908102919091010152505060010161223a565b5060405180604001604052808461ffff1681526020018281525087858151811061231757612317612e98565b602090810291909101015250505060010161216c565b50808414612367576040517fa7272c6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b60408051808201909152606081526000602082015261238f602083613a58565b156123b75761239f602083613a58565b6123aa906020613a93565b6123b490836135fd565b91505b6020808401839052604051808552600081529081840101818110156123db57600080fd5b604052509192915050565b600060ff821115612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f206269747300000000000000000000000000000000000000000000000000000060648201526084016107e1565b5090565b60408051808201909152606081526000602082015282515160006124a28260016135fd565b9050846020015182106124c3576124c3856124be8360026135e6565b612716565b84516020838201018581535080518211156124dc578181525b5093949350505050565b604080518082019091526060815260006020820152835151600061250a82856135fd565b9050856020015181111561252757612527866124be8360026135e6565b60006001856101000a039050865182810187831982511617815250805183111561254f578281525b50959695505050505050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003611a82576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c41576040517f63a99c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126018484848461272d565b612637576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b61264561293e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016126978c611848565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016126d39291906136ed565b60806040518083038185885af11580156126f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e429190613aa6565b8151612722838361236f565b5061263783826127b8565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052600090611f8d9086906127e0565b6040805180820190915260608152600060208201526127d98383845161286d565b9392505050565b6000806000846001600160a01b0316846040516127fd9190613af0565b6000604051808303816000865af19150503d806000811461283a576040519150601f19603f3d011682016040523d82523d6000602084013e61283f565b606091505b509150915081612850576000611f8d565b80511580611f8d575080806020019051810190611f8d9190613b02565b604080518082019091526060815260006020820152825182111561289057600080fd5b835151600061289f84836135fd565b905085602001518111156128bc576128bc866124be8360026135e6565b8551805183820160200191600091808511156128d6578482525b505050602086015b6020861061291657805182526128f56020836135fd565b91506129026020826135fd565b905061290f602087613a93565b95506128de565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612981604051806040016040528060008152602001600081525090565b905290565b60006060828403121561299857600080fd5b50919050565b60008083601f8401126129b057600080fd5b50813567ffffffffffffffff8111156129c857600080fd5b6020830191508360208285010111156129e057600080fd5b9250929050565b80356001600160a01b0381168114611a8257600080fd5b600080600080600080600060e0888a031215612a1957600080fd5b612a238989612986565b965060608801359550608088013567ffffffffffffffff80821115612a4757600080fd5b612a538b838c0161299e565b9097509550859150612a6760a08b016129e7565b945060c08a0135915080821115612a7d57600080fd5b50612a8a8a828b0161299e565b989b979a50959850939692959293505050565b63ffffffff8116811461180f57600080fd5b60008060408385031215612ac257600080fd5b8235612acd81612a9d565b946020939093013593505050565b803561ffff81168114611a8257600080fd5b60008060408385031215612b0057600080fd5b8235612b0b81612a9d565b9150612b1960208401612adb565b90509250929050565b60005b83811015612b3d578181015183820152602001612b25565b50506000910152565b60008151808452612b5e816020860160208601612b22565b601f01601f19169290920160200192915050565b6020815260006127d96020830184612b46565b600060208284031215612b9757600080fd5b6127d982612adb565b60008060408385031215612bb357600080fd5b8235612bbe81612a9d565b915060208301356fffffffffffffffffffffffffffffffff81168114612be357600080fd5b809150509250929050565b60008083601f840112612c0057600080fd5b50813567ffffffffffffffff811115612c1857600080fd5b6020830191508360208260051b85010111156129e057600080fd5b600080600060408486031215612c4857600080fd5b8335612c5381612a9d565b9250602084013567ffffffffffffffff811115612c6f57600080fd5b612c7b86828701612bee565b9497909650939450505050565b60008060008060a08587031215612c9e57600080fd5b612ca88686612986565b9350606085013567ffffffffffffffff811115612cc457600080fd5b612cd08782880161299e565b9094509250612ce39050608086016129e7565b905092959194509250565b600060208284031215612d0057600080fd5b6127d9826129e7565b600060208284031215612d1b57600080fd5b5035919050565b60008060408385031215612d3557600080fd5b612b0b836129e7565b60008060208385031215612d5157600080fd5b823567ffffffffffffffff811115612d6857600080fd5b612d7485828601612bee565b90969095509350505050565b600060208284031215612d9257600080fd5b81356127d981612a9d565b60008060008060608587031215612db357600080fd5b8435612dbe81612a9d565b9350612dcc60208601612adb565b9250604085013567ffffffffffffffff811115612de857600080fd5b612df48782880161299e565b95989497509550505050565b600060608284031215612e1257600080fd5b6127d98383612986565b600181811c90821680612e3057607f821691505b602082108103612998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612efb57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612f3a57600080fd5b83018035915067ffffffffffffffff821115612f5557600080fd5b60200191506060810236038213156129e057600080fd5b67ffffffffffffffff8116811461180f57600080fd5b63ffffffff84811682526040602080840182905283820185905260009260609182860188865b89811015612fff578135612fbb81612a9d565b8516835281840135612fcc81612f6c565b67ffffffffffffffff908116848601528288013590612fea82612f6c565b16838801529185019190850190600101612fa8565b50909a9950505050505050505050565b6040805190810167ffffffffffffffff8111828210171561303257613032612e69565b60405290565b6040516060810167ffffffffffffffff8111828210171561303257613032612e69565b604051601f8201601f1916810167ffffffffffffffff8111828210171561308457613084612e69565b604052919050565b600067ffffffffffffffff8211156130a6576130a6612e69565b5060051b60200190565b600060208083850312156130c357600080fd5b825167ffffffffffffffff8111156130da57600080fd5b8301601f810185136130eb57600080fd5b80516130fe6130f98261308c565b61305b565b81815260069190911b8201830190838101908783111561311d57600080fd5b928401925b82841015611e42576040848903121561313b5760008081fd5b61314361300f565b845161314e81612a9d565b81528486015161315d81612f6c565b8187015282526040939093019290840190613122565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060001982036131b5576131b5613173565b5060010190565b6fffffffffffffffffffffffffffffffff8181168382160190808211156131e5576131e5613173565b5092915050565b6000602082840312156131fe57600080fd5b81356127d981612f6c565b600067ffffffffffffffff82111561322357613223612e69565b50601f01601f191660200190565b600061323f6130f98461308c565b80848252602080830192508560051b85013681111561325d57600080fd5b855b8181101561333157803567ffffffffffffffff808211156132805760008081fd5b8189019150606082360312156132965760008081fd5b61329e613038565b82356132a981612a9d565b81526132b6838701612adb565b86820152604080840135838111156132ce5760008081fd5b939093019236601f8501126132e557600092508283fd5b833592506132f56130f984613209565b838152368885870101111561330a5760008081fd5b8388860189830137600093810188019390935281019190915286525093820193820161325f565b50919695505050505050565b6000808585111561334d57600080fd5b8386111561335a57600080fd5b5050820193919092039150565b60008451613379818460208901612b22565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610c5060208301848661338f565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612efb57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261343757600080fd5b83018035915067ffffffffffffffff82111561345257600080fd5b6020019150368190038213156129e057600080fd5b6000883561347481612a9d565b63ffffffff16825260208981013590830152604089013561349481612f6c565b67ffffffffffffffff811660408401525087606083015260e060808301526134c060e08301878961338f565b6001600160a01b03861660a084015282810360c08401526134e281858761338f565b9a9950505050505050505050565b60006020828403121561350257600080fd5b815167ffffffffffffffff81111561351957600080fd5b8201601f8101841361352a57600080fd5b80516135386130f982613209565b81815285602083850101111561354d57600080fd5b611f8d826020830160208601612b22565b6000604080830163ffffffff808716855260206040602087015282875180855260608801915060208901945060005b818110156135be57855180518616845284015167ffffffffffffffff1684840152948301949186019160010161358d565b50909998505050505050505050565b60ff818116838216019081111561094757610947613173565b808202811582820484141761094757610947613173565b8082018082111561094757610947613173565b6fffffffffffffffffffffffffffffffff81811683821602808216919082811461236757612367613173565b6000865161364e818460208b01612b22565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261372360e0840182612b46565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261375e8282612b46565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561379657600080fd5b61379e61300f565b9050815181526020820151602082015292915050565b6000604082840312156137c657600080fd5b6127d98383613784565b601f821115613818576000816000526020600020601f850160051c810160208610156137f95750805b601f850160051c820191505b81811015610c2757828155600101613805565b505050565b815167ffffffffffffffff81111561383757613837612e69565b61384b816138458454612e1c565b846137d0565b602080601f83116001811461388057600084156138685750858301515b600019600386901b1c1916600185901b178555610c27565b600085815260208120601f198616915b828110156138af57888601518255948401946001909101908401613890565b50858210156138cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613978578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261396481860183612b46565b968901969450505090860190600101613906565b509098975050505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156123675760029490940360031b84901b1690921692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156123675760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156123675760089490940360031b84901b1690921692915050565b600082613a8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b8181038181111561094757610947613173565b600060808284031215613ab857600080fd5b613ac0613038565b825181526020830151613ad281612f6c565b6020820152613ae48460408501613784565b60408201529392505050565b60008251612efb818460208701612b22565b600060208284031215613b1457600080fd5b815180151581146127d957600080fdfea264697066735822122010a81a249895f34cbd5a482f9e02ce8754e67db47529b7fc0acba8cab73a8cef64736f6c63430008160033",
1139
+ "deployedBytecode": "0x6080604052600436106102345760003560e01c80638c70830b11610138578063bd815db0116100b0578063d8e8dbc71161007f578063f2fde38b11610064578063f2fde38b146106e1578063f8d50da614610701578063ff7bd03d1461076157600080fd5b8063d8e8dbc714610690578063e4c572cc146106c157600080fd5b8063bd815db01461062a578063ca5eb5e11461063d578063d045a0dc1461065d578063d42438851461067057600080fd5b8063b731ea0a11610107578063b98bd070116100ec578063b98bd070146105bd578063bb0b6a53146105dd578063bc70b3541461060a57600080fd5b8063b731ea0a14610562578063b76cbd7d1461058257600080fd5b80638c70830b146104be5780638da5cb5b146104de5780638f71f7dd146104fc578063917df23b1461051c57600080fd5b80635f6d9ae4116101cb578063715018a61161019a57806382413eac1161017f57806382413eac1461045f578063826f1fb11461047f57806388543f0e1461049f57600080fd5b8063715018a61461040e5780637d25a05e1461042357600080fd5b80635f6d9ae414610371578063647846a5146103a757806365b9bacb146103db57806370485155146103fb57600080fd5b806352ae28791161020757806352ae2879146102cd5780635535d461146102e05780635a0dfe4d1461030d5780635e280f111461033d57600080fd5b806313137d651461023957806317442b701461024e57806332e4e363146102755780633400288b146102ad575b600080fd5b61024c6102473660046129fe565b610781565b005b34801561025a57600080fd5b50604080516001815260026020820152015b60405180910390f35b34801561028157600080fd5b50600554610295906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b3480156102b957600080fd5b5061024c6102c8366004612aaf565b610873565b3480156102d957600080fd5b5030610295565b3480156102ec57600080fd5b506103006102fb366004612aed565b610889565b60405161026c9190612b72565b34801561031957600080fd5b5061032d610328366004612aaf565b61092e565b604051901515815260200161026c565b34801561034957600080fd5b506102957f000000000000000000000000000000000000000000000000000000000000000081565b34801561037d57600080fd5b5061029561038c366004612b85565b6004602052600090815260409020546001600160a01b031681565b3480156103b357600080fd5b506102957f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e757600080fd5b5061024c6103f6366004612ba0565b61094d565b61024c610409366004612c33565b6109e4565b34801561041a57600080fd5b5061024c610c2f565b34801561042f57600080fd5b5061044661043e366004612aaf565b600092915050565b60405167ffffffffffffffff909116815260200161026c565b34801561046b57600080fd5b5061032d61047a366004612c88565b610c43565b34801561048b57600080fd5b5061024c61049a366004612cee565b610c58565b3480156104ab57600080fd5b506008545b60405190815260200161026c565b3480156104ca57600080fd5b5061024c6104d9366004612d09565b610ccd565b3480156104ea57600080fd5b506000546001600160a01b0316610295565b34801561050857600080fd5b5061024c610517366004612d22565b610cda565b34801561052857600080fd5b5060025461054f9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff909116815260200161026c565b34801561056e57600080fd5b50600254610295906001600160a01b031681565b34801561058e57600080fd5b506105a261059d366004612c33565b610f9c565b6040805182518152602092830151928101929092520161026c565b3480156105c957600080fd5b5061024c6105d8366004612d3e565b611229565b3480156105e957600080fd5b506104b06105f8366004612d80565b60016020526000908152604090205481565b34801561061657600080fd5b50610300610625366004612d9d565b611243565b61024c610638366004612d3e565b611404565b34801561064957600080fd5b5061024c610658366004612cee565b611590565b61024c61066b3660046129fe565b61162f565b34801561067c57600080fd5b5061024c61068b366004612cee565b611677565b34801561069c57600080fd5b5061054f6106ab366004612cee565b60036020526000908152604090205461ffff1681565b3480156106cd57600080fd5b5061024c6106dc366004612b85565b6116e5565b3480156106ed57600080fd5b5061024c6106fc366004612cee565b611768565b34801561070d57600080fd5b5061074061071c366004612d80565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161026c565b34801561076d57600080fd5b5061032d61077c366004612e00565b611812565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107ea576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610804906107ff908a612d80565b611848565b1461085b576108166020880188612d80565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107e1565b61086a8787878787878761189d565b50505050505050565b61087b61196c565b61088582826119e0565b5050565b6006602090815260009283526040808420909152908252902080546108ad90612e1c565b80601f01602080910402602001604051908101604052809291908181526020018280546108d990612e1c565b80156109265780601f106108fb57610100808354040283529160200191610926565b820191906000526020600020905b81548152906001019060200180831161090957829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b61095561196c565b63ffffffff821660008181526007602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf5653791015b60405180910390a15050565b6005546001600160a01b03163314610a28576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115610a4357610a43612e69565b604051908082528060200260200182016040528015610a8957816020015b604080518082019091526000815260606020820152815260200190600190039081610a615790505b50905060008060005b84811015610bc95736868683818110610aad57610aad612e98565b9050602002810190610abf9190612ec7565b90506000610ad8610ad36020840184612b85565b611a2e565b6001600160a01b0316630141e41b8a610af46020860186612f05565b6040518463ffffffff1660e01b8152600401610b1293929190612f82565b6000604051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5991908101906130b0565b805190915015610bbf576040805180820190915280610b7b6020850185612b85565b61ffff1681526020018290528686610b92816131a2565b975081518110610ba457610ba4612e98565b6020026020010181905250805184610bbc91906131bc565b93505b5050600101610a92565b508115610c27578183526000610bf184836fffffffffffffffffffffffffffffffff16611a87565b90506000610bff8884611bfb565b9050610c238883836040518060400160405280348152602001600081525033611dbc565b5050505b505050505050565b610c3761196c565b610c416000611e4d565b565b6001600160a01b03811630145b949350505050565b610c6061196c565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b610cd561196c565b600855565b610ce261196c565b8061ffff16600003610d20576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff7401000000000000000000000000000000000000000090910481169082161115610dc957600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff86811685526004909352922054911691168115610e3a5761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b03811615610e88576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b038416610ed45761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610f51565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f5910160405180910390a150505050565b604080518082019091526000808252602082015260008267ffffffffffffffff811115610fcb57610fcb612e69565b60405190808252806020026020018201604052801561101157816020015b604080518082019091526000815260606020820152815260200190600190039081610fe95790505b5090506000805b848110156111e15736600087878481811061103557611035612e98565b90506020028101906110479190612ec7565b611055906020810190612f05565b909250905060008167ffffffffffffffff81111561107557611075612e69565b6040519080825280602002602001820160405280156110ba57816020015b60408051808201909152600080825260208201528152602001906001900390816110935790505b5090506110c782866131bc565b945060005b8281101561116e5760405180604001604052808585848181106110f1576110f1612e98565b6111079260206060909202019081019150612d80565b63ffffffff16815260200185858481811061112457611124612e98565b905060600201602001602081019061113c91906131ec565b67ffffffffffffffff1681525082828151811061115b5761115b612e98565b60209081029190910101526001016110cc565b5060405180604001604052808a8a8781811061118c5761118c612e98565b905060200281019061119e9190612ec7565b6111ac906020810190612b85565b61ffff168152602001828152508685815181106111cb576111cb612e98565b6020908102919091010152505050600101611018565b50600061120083836fffffffffffffffffffffffffffffffff16611a87565b9050600061120e8884611bfb565b905061121d8883836000611eb5565b98975050505050505050565b61123161196c565b61088561123e8284613231565b611f96565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061127790612e1c565b80601f01602080910402602001604051908101604052809291908181526020018280546112a390612e1c565b80156112f05780601f106112c5576101008083540402835291602001916112f0565b820191906000526020600020905b8154815290600101906020018083116112d357829003601f168201915b5050505050905080516000036113405783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610c509350505050565b6000839003611350579050610c50565b600283106113ce5761139784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061209d92505050565b806113a5846002818861333d565b6040516020016113b793929190613367565b604051602081830303815290604052915050610c50565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107e19291906133ba565b60005b818110156114f6573683838381811061142257611422612e98565b905060200281019061143491906133ce565b90506114506114466020830183612d80565b602083013561092e565b61145a57506114ee565b3063d045a0dc60c08301358360a0810135611479610100830183613402565b61148a610100890160e08a01612cee565b6114986101208a018a613402565b6040518963ffffffff1660e01b81526004016114ba9796959493929190613467565b6000604051808303818588803b1580156114d357600080fd5b505af11580156114e7573d6000803e3d6000fd5b5050505050505b600101611407565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d91908101906134f0565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107e19190612b72565b61159861196c565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b5050505050565b333014611668576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61086a8787878787878761085b565b61167f61196c565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610cc2565b6116ed61196c565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610cc2565b61177061196c565b6001600160a01b038116611806576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107e1565b61180f81611e4d565b50565b600060208201803590600190839061182a9086612d80565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610947576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107e1565b60006118a986866120e2565b805190915060005b818110156119605760008382815181106118cd576118cd612e98565b602002602001015190506118e48160000151611a2e565b6001600160a01b0316639561b12f6118ff60208e018e612d80565b83602001516040518363ffffffff1660e01b815260040161192192919061355e565b600060405180830381600087803b15801561193b57600080fd5b505af115801561194f573d6000803e3d6000fd5b5050600190930192506118b1915050565b50505050505050505050565b6000546001600160a01b03163314610c41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e1565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91016109d8565b61ffff81166000908152600460205260409020546001600160a01b031680611a82576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b81516060906000611a9a600860046135cd565b611aa79060ff16856135e6565b611ab3600260016135cd565b611ac09060ff16846135e6565b611acb9060016135fd565b611ad591906135fd565b9050611af4604051806040016040528060608152602001600081525090565b611afe818361236f565b50611b12611b0b846123e6565b829061247d565b5060005b83811015611bf0576000878281518110611b3257611b32612e98565b60209081029190910101518051909150611b5390849061ffff1660026124e6565b50602081015151611b6d611b66826123e6565b859061247d565b5060005b81811015611be557600083602001518281518110611b9157611b91612e98565b60200260200101519050611bbe816000015163ffffffff16600460ff16886124e69092919063ffffffff16565b506020810151611bdb90879067ffffffffffffffff1660086124e6565b5050600101611b71565b505050600101611b16565b505195945050505050565b6060600082611c098561255b565b611c139190613610565b63ffffffff85166000908152600660209081526040808320600384529091529020805491925090611c4390612e1c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c6f90612e1c565b8015611cbc5780601f10611c9157610100808354040283529160200191611cbc565b820191906000526020600020905b815481529060010190602001808311611c9f57829003601f168201915b505050505091508151600014611cfc578160016011600184604051602001611ce895949392919061363c565b604051602081830303815290604052610c50565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166026820152603601604051602081830303815290604052949350505050565b611dc461293e565b611dcc6125bd565b6000611ddb8787876000611eb5565b805190915015611e3557611e357f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000084600001516125f5565b611e42878787848761263d565b979650505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611f1889611848565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611f4d9291906136ed565b6040805180830381865afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d91906137b4565b95945050505050565b60005b815181101561206d57611fc8828281518110611fb757611fb7612e98565b60200260200101516040015161209d565b818181518110611fda57611fda612e98565b60200260200101516040015160066000848481518110611ffc57611ffc612e98565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061203657612036612e98565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612064919061381d565b50600101611f99565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610cc291906138dd565b600281015161ffff811660031461088557816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107e19190612b72565b60606000838360008181106120f9576120f9612e98565b919091013560f81c915081905067ffffffffffffffff81111561211e5761211e612e69565b60405190808252806020026020018201604052801561216457816020015b60408051808201909152600081526060602082015281526020019060019003908161213c5790505b509150600160005b8260ff1681101561232d5760008683876121876002836135fd565b9550612196928692919061333d565b61219f91613986565b60f01c905060008787858181106121b8576121b8612e98565b919091013560f81c91506121cf90506001856135fd565b935060008160ff1667ffffffffffffffff8111156121ef576121ef612e69565b60405190808252806020026020018201604052801561223457816020015b604080518082019091526000808252602082015281526020019060019003908161220d5790505b50905060005b8260ff168110156122eb5760008a878b6122556004836135fd565b9950612264928a92919061333d565b61226d916139cc565b60e01c905060008b888c6122826008836135fd565b9a50612291928b92919061333d565b61229a91613a12565b60c01c905060405180604001604052808363ffffffff1681526020018267ffffffffffffffff168152508484815181106122d6576122d6612e98565b6020908102919091010152505060010161223a565b5060405180604001604052808461ffff1681526020018281525087858151811061231757612317612e98565b602090810291909101015250505060010161216c565b50808414612367576040517fa7272c6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b60408051808201909152606081526000602082015261238f602083613a58565b156123b75761239f602083613a58565b6123aa906020613a93565b6123b490836135fd565b91505b6020808401839052604051808552600081529081840101818110156123db57600080fd5b604052509192915050565b600060ff821115612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f206269747300000000000000000000000000000000000000000000000000000060648201526084016107e1565b5090565b60408051808201909152606081526000602082015282515160006124a28260016135fd565b9050846020015182106124c3576124c3856124be8360026135e6565b612716565b84516020838201018581535080518211156124dc578181525b5093949350505050565b604080518082019091526060815260006020820152835151600061250a82856135fd565b9050856020015181111561252757612527866124be8360026135e6565b60006001856101000a039050865182810187831982511617815250805183111561254f578281525b50959695505050505050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003611a82576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c41576040517f63a99c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126018484848461272d565b612637576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b61264561293e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016126978c611848565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016126d39291906136ed565b60806040518083038185885af11580156126f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e429190613aa6565b8151612722838361236f565b5061263783826127b8565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052600090611f8d9086906127e0565b6040805180820190915260608152600060208201526127d98383845161286d565b9392505050565b6000806000846001600160a01b0316846040516127fd9190613af0565b6000604051808303816000865af19150503d806000811461283a576040519150601f19603f3d011682016040523d82523d6000602084013e61283f565b606091505b509150915081612850576000611f8d565b80511580611f8d575080806020019051810190611f8d9190613b02565b604080518082019091526060815260006020820152825182111561289057600080fd5b835151600061289f84836135fd565b905085602001518111156128bc576128bc866124be8360026135e6565b8551805183820160200191600091808511156128d6578482525b505050602086015b6020861061291657805182526128f56020836135fd565b91506129026020826135fd565b905061290f602087613a93565b95506128de565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612981604051806040016040528060008152602001600081525090565b905290565b60006060828403121561299857600080fd5b50919050565b60008083601f8401126129b057600080fd5b50813567ffffffffffffffff8111156129c857600080fd5b6020830191508360208285010111156129e057600080fd5b9250929050565b80356001600160a01b0381168114611a8257600080fd5b600080600080600080600060e0888a031215612a1957600080fd5b612a238989612986565b965060608801359550608088013567ffffffffffffffff80821115612a4757600080fd5b612a538b838c0161299e565b9097509550859150612a6760a08b016129e7565b945060c08a0135915080821115612a7d57600080fd5b50612a8a8a828b0161299e565b989b979a50959850939692959293505050565b63ffffffff8116811461180f57600080fd5b60008060408385031215612ac257600080fd5b8235612acd81612a9d565b946020939093013593505050565b803561ffff81168114611a8257600080fd5b60008060408385031215612b0057600080fd5b8235612b0b81612a9d565b9150612b1960208401612adb565b90509250929050565b60005b83811015612b3d578181015183820152602001612b25565b50506000910152565b60008151808452612b5e816020860160208601612b22565b601f01601f19169290920160200192915050565b6020815260006127d96020830184612b46565b600060208284031215612b9757600080fd5b6127d982612adb565b60008060408385031215612bb357600080fd5b8235612bbe81612a9d565b915060208301356fffffffffffffffffffffffffffffffff81168114612be357600080fd5b809150509250929050565b60008083601f840112612c0057600080fd5b50813567ffffffffffffffff811115612c1857600080fd5b6020830191508360208260051b85010111156129e057600080fd5b600080600060408486031215612c4857600080fd5b8335612c5381612a9d565b9250602084013567ffffffffffffffff811115612c6f57600080fd5b612c7b86828701612bee565b9497909650939450505050565b60008060008060a08587031215612c9e57600080fd5b612ca88686612986565b9350606085013567ffffffffffffffff811115612cc457600080fd5b612cd08782880161299e565b9094509250612ce39050608086016129e7565b905092959194509250565b600060208284031215612d0057600080fd5b6127d9826129e7565b600060208284031215612d1b57600080fd5b5035919050565b60008060408385031215612d3557600080fd5b612b0b836129e7565b60008060208385031215612d5157600080fd5b823567ffffffffffffffff811115612d6857600080fd5b612d7485828601612bee565b90969095509350505050565b600060208284031215612d9257600080fd5b81356127d981612a9d565b60008060008060608587031215612db357600080fd5b8435612dbe81612a9d565b9350612dcc60208601612adb565b9250604085013567ffffffffffffffff811115612de857600080fd5b612df48782880161299e565b95989497509550505050565b600060608284031215612e1257600080fd5b6127d98383612986565b600181811c90821680612e3057607f821691505b602082108103612998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612efb57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612f3a57600080fd5b83018035915067ffffffffffffffff821115612f5557600080fd5b60200191506060810236038213156129e057600080fd5b67ffffffffffffffff8116811461180f57600080fd5b63ffffffff84811682526040602080840182905283820185905260009260609182860188865b89811015612fff578135612fbb81612a9d565b8516835281840135612fcc81612f6c565b67ffffffffffffffff908116848601528288013590612fea82612f6c565b16838801529185019190850190600101612fa8565b50909a9950505050505050505050565b6040805190810167ffffffffffffffff8111828210171561303257613032612e69565b60405290565b6040516060810167ffffffffffffffff8111828210171561303257613032612e69565b604051601f8201601f1916810167ffffffffffffffff8111828210171561308457613084612e69565b604052919050565b600067ffffffffffffffff8211156130a6576130a6612e69565b5060051b60200190565b600060208083850312156130c357600080fd5b825167ffffffffffffffff8111156130da57600080fd5b8301601f810185136130eb57600080fd5b80516130fe6130f98261308c565b61305b565b81815260069190911b8201830190838101908783111561311d57600080fd5b928401925b82841015611e42576040848903121561313b5760008081fd5b61314361300f565b845161314e81612a9d565b81528486015161315d81612f6c565b8187015282526040939093019290840190613122565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060001982036131b5576131b5613173565b5060010190565b6fffffffffffffffffffffffffffffffff8181168382160190808211156131e5576131e5613173565b5092915050565b6000602082840312156131fe57600080fd5b81356127d981612f6c565b600067ffffffffffffffff82111561322357613223612e69565b50601f01601f191660200190565b600061323f6130f98461308c565b80848252602080830192508560051b85013681111561325d57600080fd5b855b8181101561333157803567ffffffffffffffff808211156132805760008081fd5b8189019150606082360312156132965760008081fd5b61329e613038565b82356132a981612a9d565b81526132b6838701612adb565b86820152604080840135838111156132ce5760008081fd5b939093019236601f8501126132e557600092508283fd5b833592506132f56130f984613209565b838152368885870101111561330a5760008081fd5b8388860189830137600093810188019390935281019190915286525093820193820161325f565b50919695505050505050565b6000808585111561334d57600080fd5b8386111561335a57600080fd5b5050820193919092039150565b60008451613379818460208901612b22565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610c5060208301848661338f565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612efb57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261343757600080fd5b83018035915067ffffffffffffffff82111561345257600080fd5b6020019150368190038213156129e057600080fd5b6000883561347481612a9d565b63ffffffff16825260208981013590830152604089013561349481612f6c565b67ffffffffffffffff811660408401525087606083015260e060808301526134c060e08301878961338f565b6001600160a01b03861660a084015282810360c08401526134e281858761338f565b9a9950505050505050505050565b60006020828403121561350257600080fd5b815167ffffffffffffffff81111561351957600080fd5b8201601f8101841361352a57600080fd5b80516135386130f982613209565b81815285602083850101111561354d57600080fd5b611f8d826020830160208601612b22565b6000604080830163ffffffff808716855260206040602087015282875180855260608801915060208901945060005b818110156135be57855180518616845284015167ffffffffffffffff1684840152948301949186019160010161358d565b50909998505050505050505050565b60ff818116838216019081111561094757610947613173565b808202811582820484141761094757610947613173565b8082018082111561094757610947613173565b6fffffffffffffffffffffffffffffffff81811683821602808216919082811461236757612367613173565b6000865161364e818460208b01612b22565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261372360e0840182612b46565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261375e8282612b46565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561379657600080fd5b61379e61300f565b9050815181526020820151602082015292915050565b6000604082840312156137c657600080fd5b6127d98383613784565b601f821115613818576000816000526020600020601f850160051c810160208610156137f95750805b601f850160051c820191505b81811015610c2757828155600101613805565b505050565b815167ffffffffffffffff81111561383757613837612e69565b61384b816138458454612e1c565b846137d0565b602080601f83116001811461388057600084156138685750858301515b600019600386901b1c1916600185901b178555610c27565b600085815260208120601f198616915b828110156138af57888601518255948401946001909101908401613890565b50858210156138cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613978578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261396481860183612b46565b968901969450505090860190600101613906565b509098975050505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156123675760029490940360031b84901b1690921692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156123675760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156123675760089490940360031b84901b1690921692915050565b600082613a8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b8181038181111561094757610947613173565b600060808284031215613ab857600080fd5b613ac0613038565b825181526020830151613ad281612f6c565b6020820152613ae48460408501613784565b60408201529392505050565b60008251612efb818460208701612b22565b600060208284031215613b1457600080fd5b815180151581146127d957600080fdfea264697066735822122010a81a249895f34cbd5a482f9e02ce8754e67db47529b7fc0acba8cab73a8cef64736f6c63430008160033",
1140
+ "linkReferences": {},
1141
+ "deployedLinkReferences": {}
1142
+ }