@layerzerolabs/lz-evm-messagelib-v2 2.0.13 → 2.0.15

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 (110) hide show
  1. package/artifacts/contracts/Executor.sol/Executor.json +20 -20
  2. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +19 -19
  3. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +1 -1
  4. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +15 -15
  5. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +1 -1
  6. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +6 -6
  7. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +10 -10
  8. package/artifacts/contracts/Treasury.sol/Treasury.json +9 -9
  9. package/artifacts/contracts/Worker.sol/Worker.json +18 -18
  10. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +3 -3
  11. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +4 -4
  12. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +3 -3
  13. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +3 -3
  14. package/artifacts/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  15. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +279 -20
  16. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +90 -11
  17. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +7 -7
  18. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +7 -7
  19. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +31 -31
  20. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +14 -14
  21. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +5 -5
  22. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +488 -169
  23. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +372 -16
  24. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +419 -93
  25. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  26. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  27. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  28. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  29. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +611 -249
  30. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  31. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +526 -13
  32. package/artifacts/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  33. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  34. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  35. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +3 -3
  36. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +1 -1
  37. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +0 -24
  38. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  39. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +282 -0
  40. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +91 -0
  41. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +290 -0
  42. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +4 -4
  43. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +7 -7
  44. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +2 -2
  45. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +5 -5
  46. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +88 -57
  47. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  48. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  49. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +15 -15
  50. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +76 -76
  51. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +5 -5
  52. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +4 -4
  53. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +79 -24
  54. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  55. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  56. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +75 -75
  57. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +18 -18
  58. package/contracts/ExecutorFeeLib.sol +6 -6
  59. package/contracts/MessageLibBase.sol +2 -2
  60. package/contracts/PriceFeed.sol +3 -3
  61. package/contracts/ReceiveLibBaseE2.sol +0 -26
  62. package/contracts/SendLibBase.sol +10 -10
  63. package/contracts/SendLibBaseE2.sol +4 -4
  64. package/contracts/Treasury.sol +2 -2
  65. package/contracts/Worker.sol +3 -3
  66. package/contracts/interfaces/IExecutorFeeLib.sol +4 -4
  67. package/contracts/interfaces/ILayerZeroPriceFeed.sol +3 -3
  68. package/contracts/interfaces/IWorker.sol +3 -3
  69. package/contracts/uln/LzExecutor.sol +51 -19
  70. package/contracts/uln/ReceiveUlnBase.sol +21 -14
  71. package/contracts/uln/UlnBase.sol +19 -19
  72. package/contracts/uln/dvn/DVN.sol +16 -16
  73. package/contracts/uln/dvn/DVNFeeLib.sol +2 -2
  74. package/contracts/uln/dvn/MultiSig.sol +13 -13
  75. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol +95 -97
  76. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol +64 -2
  77. package/contracts/uln/dvn/adapters/DVNAdapterBase.sol +74 -124
  78. package/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol +126 -0
  79. package/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol +50 -0
  80. package/contracts/uln/dvn/adapters/avalanche/NOTES.md +4 -0
  81. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol +85 -100
  82. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol +121 -2
  83. package/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol +36 -0
  84. package/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol +86 -0
  85. package/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol +58 -0
  86. package/contracts/uln/interfaces/IDVNFeeLib.sol +1 -1
  87. package/contracts/uln/interfaces/IReceiveUlnE2.sol +0 -5
  88. package/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol +45 -0
  89. package/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol +48 -0
  90. package/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol +30 -0
  91. package/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol +45 -0
  92. package/contracts/uln/libs/DVNOptions.sol +6 -6
  93. package/contracts/uln/libs/UlnOptions.sol +13 -13
  94. package/contracts/uln/uln301/AddressSizeConfig.sol +4 -4
  95. package/contracts/uln/uln301/ReceiveLibBaseE1.sol +4 -4
  96. package/contracts/uln/uln301/ReceiveUln301.sol +4 -41
  97. package/contracts/uln/uln301/ReceiveUln301View.sol +89 -0
  98. package/contracts/uln/uln301/SendLibBaseE1.sol +5 -5
  99. package/contracts/uln/uln301/SendUln301.sol +3 -3
  100. package/contracts/uln/uln301/TreasuryFeeHandler.sol +6 -6
  101. package/contracts/uln/uln301/interfaces/IMessageLibE1.sol +4 -4
  102. package/contracts/uln/uln302/ReceiveUln302.sol +4 -27
  103. package/contracts/uln/uln302/ReceiveUln302View.sol +89 -0
  104. package/contracts/uln/uln302/SendUln302.sol +3 -3
  105. package/contracts/upgradeable/WorkerUpgradeable.sol +3 -3
  106. package/package.json +7 -5
  107. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +0 -50
  108. package/artifacts/contracts/uln/interfaces/IDVNAdapterFeeLib.sol/IDVNAdapterFeeLib.json +0 -50
  109. package/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol +0 -20
  110. package/contracts/uln/interfaces/IDVNAdapterFeeLib.sol +0 -13
@@ -0,0 +1,891 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OptimismDVNAdapterL2",
4
+ "sourceName": "contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address[]",
10
+ "name": "_admins",
11
+ "type": "address[]"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_l2Messenger",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "actual",
27
+ "type": "uint256"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "requested",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "DVNAdapter_InsufficientBalance",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "DVNAdapter_InvalidMessageSize",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "sendLib",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "dstEid",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "DVNAdapter_MissingRecieveLib",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "DVNAdapter_NotImplemented",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "_to",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "_value",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "Transfer_NativeFailed",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "Transfer_ToAddressIsZero",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "Unauthorized",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "address",
94
+ "name": "peer",
95
+ "type": "address"
96
+ }
97
+ ],
98
+ "name": "UntrustedPeer",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "Worker_NotAllowed",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "Worker_OnlyMessageLib",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "Worker_RoleRenouncingDisabled",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "anonymous": false,
118
+ "inputs": [
119
+ {
120
+ "indexed": false,
121
+ "internalType": "address",
122
+ "name": "account",
123
+ "type": "address"
124
+ }
125
+ ],
126
+ "name": "Paused",
127
+ "type": "event"
128
+ },
129
+ {
130
+ "anonymous": false,
131
+ "inputs": [
132
+ {
133
+ "indexed": true,
134
+ "internalType": "address",
135
+ "name": "peer",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "name": "PeerSet",
140
+ "type": "event"
141
+ },
142
+ {
143
+ "anonymous": false,
144
+ "inputs": [
145
+ {
146
+ "components": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "sendLib",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "internalType": "uint32",
154
+ "name": "dstEid",
155
+ "type": "uint32"
156
+ },
157
+ {
158
+ "internalType": "bytes32",
159
+ "name": "receiveLib",
160
+ "type": "bytes32"
161
+ }
162
+ ],
163
+ "indexed": false,
164
+ "internalType": "struct ReceiveLibParam[]",
165
+ "name": "params",
166
+ "type": "tuple[]"
167
+ }
168
+ ],
169
+ "name": "ReceiveLibsSet",
170
+ "type": "event"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": true,
177
+ "internalType": "bytes32",
178
+ "name": "role",
179
+ "type": "bytes32"
180
+ },
181
+ {
182
+ "indexed": true,
183
+ "internalType": "bytes32",
184
+ "name": "previousAdminRole",
185
+ "type": "bytes32"
186
+ },
187
+ {
188
+ "indexed": true,
189
+ "internalType": "bytes32",
190
+ "name": "newAdminRole",
191
+ "type": "bytes32"
192
+ }
193
+ ],
194
+ "name": "RoleAdminChanged",
195
+ "type": "event"
196
+ },
197
+ {
198
+ "anonymous": false,
199
+ "inputs": [
200
+ {
201
+ "indexed": true,
202
+ "internalType": "bytes32",
203
+ "name": "role",
204
+ "type": "bytes32"
205
+ },
206
+ {
207
+ "indexed": true,
208
+ "internalType": "address",
209
+ "name": "account",
210
+ "type": "address"
211
+ },
212
+ {
213
+ "indexed": true,
214
+ "internalType": "address",
215
+ "name": "sender",
216
+ "type": "address"
217
+ }
218
+ ],
219
+ "name": "RoleGranted",
220
+ "type": "event"
221
+ },
222
+ {
223
+ "anonymous": false,
224
+ "inputs": [
225
+ {
226
+ "indexed": true,
227
+ "internalType": "bytes32",
228
+ "name": "role",
229
+ "type": "bytes32"
230
+ },
231
+ {
232
+ "indexed": true,
233
+ "internalType": "address",
234
+ "name": "account",
235
+ "type": "address"
236
+ },
237
+ {
238
+ "indexed": true,
239
+ "internalType": "address",
240
+ "name": "sender",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "RoleRevoked",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "anonymous": false,
249
+ "inputs": [
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint16",
253
+ "name": "multiplierBps",
254
+ "type": "uint16"
255
+ }
256
+ ],
257
+ "name": "SetDefaultMultiplierBps",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": false,
265
+ "internalType": "address",
266
+ "name": "priceFeed",
267
+ "type": "address"
268
+ }
269
+ ],
270
+ "name": "SetPriceFeed",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": false,
278
+ "internalType": "uint32",
279
+ "name": "dstEid",
280
+ "type": "uint32"
281
+ },
282
+ {
283
+ "indexed": false,
284
+ "internalType": "uint8[]",
285
+ "name": "optionTypes",
286
+ "type": "uint8[]"
287
+ }
288
+ ],
289
+ "name": "SetSupportedOptionTypes",
290
+ "type": "event"
291
+ },
292
+ {
293
+ "anonymous": false,
294
+ "inputs": [
295
+ {
296
+ "indexed": false,
297
+ "internalType": "address",
298
+ "name": "workerLib",
299
+ "type": "address"
300
+ }
301
+ ],
302
+ "name": "SetWorkerLib",
303
+ "type": "event"
304
+ },
305
+ {
306
+ "anonymous": false,
307
+ "inputs": [
308
+ {
309
+ "indexed": false,
310
+ "internalType": "address",
311
+ "name": "account",
312
+ "type": "address"
313
+ }
314
+ ],
315
+ "name": "Unpaused",
316
+ "type": "event"
317
+ },
318
+ {
319
+ "anonymous": false,
320
+ "inputs": [
321
+ {
322
+ "indexed": false,
323
+ "internalType": "address",
324
+ "name": "lib",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "indexed": false,
329
+ "internalType": "address",
330
+ "name": "to",
331
+ "type": "address"
332
+ },
333
+ {
334
+ "indexed": false,
335
+ "internalType": "uint256",
336
+ "name": "amount",
337
+ "type": "uint256"
338
+ }
339
+ ],
340
+ "name": "Withdraw",
341
+ "type": "event"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "DEFAULT_ADMIN_ROLE",
346
+ "outputs": [
347
+ {
348
+ "internalType": "bytes32",
349
+ "name": "",
350
+ "type": "bytes32"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [],
358
+ "name": "allowlistSize",
359
+ "outputs": [
360
+ {
361
+ "internalType": "uint64",
362
+ "name": "",
363
+ "type": "uint64"
364
+ }
365
+ ],
366
+ "stateMutability": "view",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [
371
+ {
372
+ "components": [
373
+ {
374
+ "internalType": "uint32",
375
+ "name": "dstEid",
376
+ "type": "uint32"
377
+ },
378
+ {
379
+ "internalType": "bytes",
380
+ "name": "packetHeader",
381
+ "type": "bytes"
382
+ },
383
+ {
384
+ "internalType": "bytes32",
385
+ "name": "payloadHash",
386
+ "type": "bytes32"
387
+ },
388
+ {
389
+ "internalType": "uint64",
390
+ "name": "confirmations",
391
+ "type": "uint64"
392
+ },
393
+ {
394
+ "internalType": "address",
395
+ "name": "sender",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
400
+ "name": "",
401
+ "type": "tuple"
402
+ },
403
+ {
404
+ "internalType": "bytes",
405
+ "name": "",
406
+ "type": "bytes"
407
+ }
408
+ ],
409
+ "name": "assignJob",
410
+ "outputs": [
411
+ {
412
+ "internalType": "uint256",
413
+ "name": "",
414
+ "type": "uint256"
415
+ }
416
+ ],
417
+ "stateMutability": "payable",
418
+ "type": "function"
419
+ },
420
+ {
421
+ "inputs": [],
422
+ "name": "defaultMultiplierBps",
423
+ "outputs": [
424
+ {
425
+ "internalType": "uint16",
426
+ "name": "",
427
+ "type": "uint16"
428
+ }
429
+ ],
430
+ "stateMutability": "view",
431
+ "type": "function"
432
+ },
433
+ {
434
+ "inputs": [
435
+ {
436
+ "internalType": "uint32",
437
+ "name": "",
438
+ "type": "uint32"
439
+ },
440
+ {
441
+ "internalType": "uint64",
442
+ "name": "",
443
+ "type": "uint64"
444
+ },
445
+ {
446
+ "internalType": "address",
447
+ "name": "",
448
+ "type": "address"
449
+ },
450
+ {
451
+ "internalType": "bytes",
452
+ "name": "",
453
+ "type": "bytes"
454
+ }
455
+ ],
456
+ "name": "getFee",
457
+ "outputs": [
458
+ {
459
+ "internalType": "uint256",
460
+ "name": "",
461
+ "type": "uint256"
462
+ }
463
+ ],
464
+ "stateMutability": "pure",
465
+ "type": "function"
466
+ },
467
+ {
468
+ "inputs": [
469
+ {
470
+ "internalType": "bytes32",
471
+ "name": "role",
472
+ "type": "bytes32"
473
+ }
474
+ ],
475
+ "name": "getRoleAdmin",
476
+ "outputs": [
477
+ {
478
+ "internalType": "bytes32",
479
+ "name": "",
480
+ "type": "bytes32"
481
+ }
482
+ ],
483
+ "stateMutability": "view",
484
+ "type": "function"
485
+ },
486
+ {
487
+ "inputs": [
488
+ {
489
+ "internalType": "uint32",
490
+ "name": "_eid",
491
+ "type": "uint32"
492
+ }
493
+ ],
494
+ "name": "getSupportedOptionTypes",
495
+ "outputs": [
496
+ {
497
+ "internalType": "uint8[]",
498
+ "name": "",
499
+ "type": "uint8[]"
500
+ }
501
+ ],
502
+ "stateMutability": "view",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "inputs": [
507
+ {
508
+ "internalType": "bytes32",
509
+ "name": "role",
510
+ "type": "bytes32"
511
+ },
512
+ {
513
+ "internalType": "address",
514
+ "name": "account",
515
+ "type": "address"
516
+ }
517
+ ],
518
+ "name": "grantRole",
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "address",
527
+ "name": "_sender",
528
+ "type": "address"
529
+ }
530
+ ],
531
+ "name": "hasAcl",
532
+ "outputs": [
533
+ {
534
+ "internalType": "bool",
535
+ "name": "",
536
+ "type": "bool"
537
+ }
538
+ ],
539
+ "stateMutability": "view",
540
+ "type": "function"
541
+ },
542
+ {
543
+ "inputs": [
544
+ {
545
+ "internalType": "bytes32",
546
+ "name": "role",
547
+ "type": "bytes32"
548
+ },
549
+ {
550
+ "internalType": "address",
551
+ "name": "account",
552
+ "type": "address"
553
+ }
554
+ ],
555
+ "name": "hasRole",
556
+ "outputs": [
557
+ {
558
+ "internalType": "bool",
559
+ "name": "",
560
+ "type": "bool"
561
+ }
562
+ ],
563
+ "stateMutability": "view",
564
+ "type": "function"
565
+ },
566
+ {
567
+ "inputs": [],
568
+ "name": "l2Messenger",
569
+ "outputs": [
570
+ {
571
+ "internalType": "address",
572
+ "name": "",
573
+ "type": "address"
574
+ }
575
+ ],
576
+ "stateMutability": "view",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [],
581
+ "name": "paused",
582
+ "outputs": [
583
+ {
584
+ "internalType": "bool",
585
+ "name": "",
586
+ "type": "bool"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [],
594
+ "name": "peer",
595
+ "outputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "",
599
+ "type": "address"
600
+ }
601
+ ],
602
+ "stateMutability": "view",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [],
607
+ "name": "priceFeed",
608
+ "outputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "stateMutability": "view",
616
+ "type": "function"
617
+ },
618
+ {
619
+ "inputs": [
620
+ {
621
+ "internalType": "address",
622
+ "name": "sendLib",
623
+ "type": "address"
624
+ },
625
+ {
626
+ "internalType": "uint32",
627
+ "name": "dstEid",
628
+ "type": "uint32"
629
+ }
630
+ ],
631
+ "name": "receiveLibs",
632
+ "outputs": [
633
+ {
634
+ "internalType": "bytes32",
635
+ "name": "receiveLib",
636
+ "type": "bytes32"
637
+ }
638
+ ],
639
+ "stateMutability": "view",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "bytes32",
646
+ "name": "",
647
+ "type": "bytes32"
648
+ },
649
+ {
650
+ "internalType": "address",
651
+ "name": "",
652
+ "type": "address"
653
+ }
654
+ ],
655
+ "name": "renounceRole",
656
+ "outputs": [],
657
+ "stateMutability": "pure",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "role",
665
+ "type": "bytes32"
666
+ },
667
+ {
668
+ "internalType": "address",
669
+ "name": "account",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "name": "revokeRole",
674
+ "outputs": [],
675
+ "stateMutability": "nonpayable",
676
+ "type": "function"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "internalType": "uint16",
682
+ "name": "_multiplierBps",
683
+ "type": "uint16"
684
+ }
685
+ ],
686
+ "name": "setDefaultMultiplierBps",
687
+ "outputs": [],
688
+ "stateMutability": "nonpayable",
689
+ "type": "function"
690
+ },
691
+ {
692
+ "inputs": [
693
+ {
694
+ "internalType": "bool",
695
+ "name": "_paused",
696
+ "type": "bool"
697
+ }
698
+ ],
699
+ "name": "setPaused",
700
+ "outputs": [],
701
+ "stateMutability": "nonpayable",
702
+ "type": "function"
703
+ },
704
+ {
705
+ "inputs": [
706
+ {
707
+ "internalType": "address",
708
+ "name": "_peer",
709
+ "type": "address"
710
+ }
711
+ ],
712
+ "name": "setPeer",
713
+ "outputs": [],
714
+ "stateMutability": "nonpayable",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [
719
+ {
720
+ "internalType": "address",
721
+ "name": "_priceFeed",
722
+ "type": "address"
723
+ }
724
+ ],
725
+ "name": "setPriceFeed",
726
+ "outputs": [],
727
+ "stateMutability": "nonpayable",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "components": [
734
+ {
735
+ "internalType": "address",
736
+ "name": "sendLib",
737
+ "type": "address"
738
+ },
739
+ {
740
+ "internalType": "uint32",
741
+ "name": "dstEid",
742
+ "type": "uint32"
743
+ },
744
+ {
745
+ "internalType": "bytes32",
746
+ "name": "receiveLib",
747
+ "type": "bytes32"
748
+ }
749
+ ],
750
+ "internalType": "struct ReceiveLibParam[]",
751
+ "name": "_params",
752
+ "type": "tuple[]"
753
+ }
754
+ ],
755
+ "name": "setReceiveLibs",
756
+ "outputs": [],
757
+ "stateMutability": "nonpayable",
758
+ "type": "function"
759
+ },
760
+ {
761
+ "inputs": [
762
+ {
763
+ "internalType": "uint32",
764
+ "name": "_eid",
765
+ "type": "uint32"
766
+ },
767
+ {
768
+ "internalType": "uint8[]",
769
+ "name": "_optionTypes",
770
+ "type": "uint8[]"
771
+ }
772
+ ],
773
+ "name": "setSupportedOptionTypes",
774
+ "outputs": [],
775
+ "stateMutability": "nonpayable",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [
780
+ {
781
+ "internalType": "address",
782
+ "name": "_workerFeeLib",
783
+ "type": "address"
784
+ }
785
+ ],
786
+ "name": "setWorkerFeeLib",
787
+ "outputs": [],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [
793
+ {
794
+ "internalType": "bytes4",
795
+ "name": "interfaceId",
796
+ "type": "bytes4"
797
+ }
798
+ ],
799
+ "name": "supportsInterface",
800
+ "outputs": [
801
+ {
802
+ "internalType": "bool",
803
+ "name": "",
804
+ "type": "bool"
805
+ }
806
+ ],
807
+ "stateMutability": "view",
808
+ "type": "function"
809
+ },
810
+ {
811
+ "inputs": [
812
+ {
813
+ "internalType": "bytes",
814
+ "name": "_payload",
815
+ "type": "bytes"
816
+ }
817
+ ],
818
+ "name": "verify",
819
+ "outputs": [],
820
+ "stateMutability": "nonpayable",
821
+ "type": "function"
822
+ },
823
+ {
824
+ "inputs": [
825
+ {
826
+ "internalType": "address",
827
+ "name": "_lib",
828
+ "type": "address"
829
+ },
830
+ {
831
+ "internalType": "address",
832
+ "name": "_to",
833
+ "type": "address"
834
+ },
835
+ {
836
+ "internalType": "uint256",
837
+ "name": "_amount",
838
+ "type": "uint256"
839
+ }
840
+ ],
841
+ "name": "withdrawFee",
842
+ "outputs": [],
843
+ "stateMutability": "nonpayable",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "address",
850
+ "name": "_token",
851
+ "type": "address"
852
+ },
853
+ {
854
+ "internalType": "address",
855
+ "name": "_to",
856
+ "type": "address"
857
+ },
858
+ {
859
+ "internalType": "uint256",
860
+ "name": "_amount",
861
+ "type": "uint256"
862
+ }
863
+ ],
864
+ "name": "withdrawToken",
865
+ "outputs": [],
866
+ "stateMutability": "nonpayable",
867
+ "type": "function"
868
+ },
869
+ {
870
+ "inputs": [],
871
+ "name": "workerFeeLib",
872
+ "outputs": [
873
+ {
874
+ "internalType": "address",
875
+ "name": "",
876
+ "type": "address"
877
+ }
878
+ ],
879
+ "stateMutability": "view",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "stateMutability": "payable",
884
+ "type": "receive"
885
+ }
886
+ ],
887
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162002cb738038062002cb78339810160408190526200003491620002e0565b604080516000808252602082019092526001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b031916905533918491612ee09182858581156200008b576200008b6000836200015f565b60005b8551811015620000ef57620000e67f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d257620000d2620003c6565b60200260200101516200015f60201b60201c565b6001016200008e565b5060005b81518110156200014057620001377fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d257620000d2620003c6565b600101620000f3565b5050506001600160a01b03909616608052506200041995505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620001b057506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b15620001fd5760018054601590620001d890600160a81b90046001600160401b0316620003dc565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b6200020982826200020d565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000209576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002693390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620002db57600080fd5b919050565b60008060408385031215620002f457600080fd5b82516001600160401b03808211156200030c57600080fd5b818501915085601f8301126200032157600080fd5b8151602082821115620003385762000338620002ad565b8160051b604051601f19603f83011681018181108682111715620003605762000360620002ad565b6040529283528183019350848101820192898411156200037f57600080fd5b948201945b83861015620003a8576200039886620002c3565b8552948201949382019362000384565b9650620003b99050878201620002c3565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b031981016200040f57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b608051612874620004436000396000818161067c01528181610d700152610dcb01526128746000f3fe6080604052600436106101c55760003560e01c80635c975abb116100f7578063a217fddf11610095578063cd88b90311610064578063cd88b903146105d7578063d2ae2104146105f7578063d547741f1461064a578063f5730a721461066a57600080fd5b8063a217fddf14610550578063c358de0a14610565578063c416aa5114610585578063c7b2370b146105b757600080fd5b8063741bef1a116100d1578063741bef1a146104a45780638e760afe146104d157806391d14854146104f157806395d376d71461054257600080fd5b80635c975abb1461044c57806369b90d6814610464578063724e78da1461048457600080fd5b806326e67a371161016457806330bb3aac1161013e57806330bb3aac146103b457806336568abe146103d45780634cfa6d2c146103f457806351b6a0fd1461042c57600080fd5b806326e67a37146103475780632de11376146103745780632f2ff15d1461039457600080fd5b80631095b6d7116101a05780631095b6d71461027757806311cda4151461029757806316c38b3c146102e9578063248a9ca31461030957600080fd5b8062bf2e80146101d157806301e336671461022557806301ffc9a71461024757600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b5060015461020d907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561023157600080fd5b5061024561024036600461201c565b61069e565b005b34801561025357600080fd5b5061026761026236600461205d565b6106d9565b604051901515815260200161021c565b34801561028357600080fd5b5061024561029236600461201c565b610772565b3480156102a357600080fd5b506005546102c49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021c565b3480156102f557600080fd5b506102456103043660046120ad565b610901565b34801561031557600080fd5b506103396103243660046120ca565b60009081526020819052604090206001015490565b60405190815260200161021c565b34801561035357600080fd5b506103676103623660046120f7565b610926565b60405161021c9190612112565b34801561038057600080fd5b5061026761038f366004612159565b6109ad565b3480156103a057600080fd5b506102456103af366004612176565b610a92565b3480156103c057600080fd5b506103396103cf3660046121ef565b610abc565b3480156103e057600080fd5b506102456103ef366004612176565b610af0565b34801561040057600080fd5b5061033961040f366004612274565b600460209081526000928352604080842090915290825290205481565b34801561043857600080fd5b506102456104473660046122a9565b610b22565b34801561045857600080fd5b5060015460ff16610267565b34801561047057600080fd5b5061024561047f366004612159565b610c19565b34801561049057600080fd5b5061024561049f366004612159565b610cb3565b3480156104b057600080fd5b506002546102c49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104dd57600080fd5b506102456104ec36600461231e565b610d58565b3480156104fd57600080fd5b5061026761050c366004612176565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6103396103cf366004612360565b34801561055c57600080fd5b50610339600081565b34801561057157600080fd5b506102456105803660046123d1565b610ed6565b34801561059157600080fd5b506001546102c490610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156105c357600080fd5b506102456105d2366004612159565b610f84565b3480156105e357600080fd5b506102456105f23660046123f5565b611028565b34801561060357600080fd5b50600154610631907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161021c565b34801561065657600080fd5b50610245610665366004612176565b611079565b34801561067657600080fd5b506102c47f000000000000000000000000000000000000000000000000000000000000000081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106c88161109e565b6106d38484846110ab565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061076c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561079c8161109e565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff1661081a576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600061090c8161109e565b811561091e5761091a6110db565b5050565b61091a61115a565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156109a157602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116109725790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610a0257506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610a78575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610a8557506001919050565b506000919050565b919050565b600082815260208190526040902060010154610aad8161109e565b610ab783836111b1565b505050565b60006040517f9c5846fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610b2d8161109e565b60005b82811015610bda5736848483818110610b4b57610b4b61247b565b60600291909101915050604081013560046000610b6b6020850185612159565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836020016020810190610bba91906120f7565b63ffffffff16815260208101919091526040016000205550600101610b30565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610c0c9291906124aa565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c438161109e565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f25fecc89eba6e3655a12d5db63dceb5f0711081bd42663652110b98d9a1ec77390600090a25050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cdd8161109e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610dc7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e589190612527565b60055490915073ffffffffffffffffffffffffffffffffffffffff808316911614610ecc576040517f624ac80300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b610ab78383611277565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f008161109e565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610d4c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fae8161109e565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610d4c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110528161109e565b63ffffffff84166000908152600360205260409020611072908484611f3c565b5050505050565b6000828152602081905260409020600101546110948161109e565b610ab7838361130a565b6110a881336113cf565b50565b73ffffffffffffffffffffffffffffffffffffffff83166110d057610ab78282611487565b610ab783838361158d565b6110e36115fb565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61116261166a565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611130565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561120e575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561126d5760018054601590611246907501000000000000000000000000000000000000000000900467ffffffffffffffff16612573565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b61091a82826116d6565b600080600061128685856117c6565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016112d193929190612608565b600060405180830381600087803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611366575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156113c5576001805460159061139e907501000000000000000000000000000000000000000000900467ffffffffffffffff1661263b565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b61091a8282611895565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661091a5761140d8161194c565b61141883602061196b565b60405160200161142992919061267d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ec3916004016126fe565b73ffffffffffffffffffffffffffffffffffffffff82166114d4576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461152e576040519150601f19603f3d011682016040523d82523d6000602084013e611533565b606091505b5050905080610ab7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610ec3565b73ffffffffffffffffffffffffffffffffffffffff82166115da576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab773ffffffffffffffffffffffffffffffffffffffff84168383611bb5565b60015460ff1615611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ec3565b565b60015460ff16611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ec3565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661091a5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556117683390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006060816117d760516040612711565b841461180f576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61182c611820602060008789612724565b6118299161274e565b90565b925061183c604060208688612724565b6118459161274e565b90506118548460408188612724565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561091a5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061076c73ffffffffffffffffffffffffffffffffffffffff831660145b6060600061197a83600261278a565b611985906002612711565b67ffffffffffffffff81111561199d5761199d6127a1565b6040519080825280601f01601f1916602001820160405280156119c7576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119fe576119fe61247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a6157611a6161247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a9d84600261278a565b611aa8906001612711565b90505b6001811115611b45577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ae957611ae961247b565b1a60f81b828281518110611aff57611aff61247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611b3e816127d0565b9050611aab565b508315611bae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ec3565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610ab792869291600091611c80918516908490611d2d565b9050805160001480611ca1575080806020019051810190611ca19190612805565b610ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ec3565b6060611d3c8484600085611d44565b949350505050565b606082471015611dd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610ec3565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611dff9190612822565b60006040518083038185875af1925050503d8060008114611e3c576040519150601f19603f3d011682016040523d82523d6000602084013e611e41565b606091505b5091509150611e5287838387611e5d565b979650505050505050565b60608315611ef3578251600003611eec5773ffffffffffffffffffffffffffffffffffffffff85163b611eec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ec3565b5081611d3c565b611d3c8383815115611f085781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec391906126fe565b82805482825590600052602060002090601f01602090048101928215611fd55791602002820160005b83821115611fa657833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302611f65565b8015611fd35782816101000a81549060ff0219169055600101602081600001049283019260010302611fa6565b505b50611fe1929150611fe5565b5090565b5b80821115611fe15760008155600101611fe6565b73ffffffffffffffffffffffffffffffffffffffff811681146110a857600080fd5b60008060006060848603121561203157600080fd5b833561203c81611ffa565b9250602084013561204c81611ffa565b929592945050506040919091013590565b60006020828403121561206f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bae57600080fd5b80151581146110a857600080fd5b6000602082840312156120bf57600080fd5b8135611bae8161209f565b6000602082840312156120dc57600080fd5b5035919050565b803563ffffffff81168114610a8d57600080fd5b60006020828403121561210957600080fd5b611bae826120e3565b6020808252825182820181905260009190848201906040850190845b8181101561214d57835160ff168352928401929184019160010161212e565b50909695505050505050565b60006020828403121561216b57600080fd5b8135611bae81611ffa565b6000806040838503121561218957600080fd5b82359150602083013561219b81611ffa565b809150509250929050565b60008083601f8401126121b857600080fd5b50813567ffffffffffffffff8111156121d057600080fd5b6020830191508360208285010111156121e857600080fd5b9250929050565b60008060008060006080868803121561220757600080fd5b612210866120e3565b9450602086013567ffffffffffffffff808216821461222e57600080fd5b90945060408701359061224082611ffa565b9093506060870135908082111561225657600080fd5b50612263888289016121a6565b969995985093965092949392505050565b6000806040838503121561228757600080fd5b823561229281611ffa565b91506122a0602084016120e3565b90509250929050565b600080602083850312156122bc57600080fd5b823567ffffffffffffffff808211156122d457600080fd5b818501915085601f8301126122e857600080fd5b8135818111156122f757600080fd5b86602060608302850101111561230c57600080fd5b60209290920196919550909350505050565b6000806020838503121561233157600080fd5b823567ffffffffffffffff81111561234857600080fd5b612354858286016121a6565b90969095509350505050565b60008060006040848603121561237557600080fd5b833567ffffffffffffffff8082111561238d57600080fd5b9085019060a082880312156123a157600080fd5b909350602085013590808211156123b757600080fd5b506123c4868287016121a6565b9497909650939450505050565b6000602082840312156123e357600080fd5b813561ffff81168114611bae57600080fd5b60008060006040848603121561240a57600080fd5b612413846120e3565b9250602084013567ffffffffffffffff8082111561243057600080fd5b818601915086601f83011261244457600080fd5b81358181111561245357600080fd5b8760208260051b850101111561246857600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b8781101561251a5781356124d381611ffa565b73ffffffffffffffffffffffffffffffffffffffff16835263ffffffff6124fb8387016120e3565b16838601528184013584840152606092830192909101906001016124c0565b5090979650505050505050565b60006020828403121561253957600080fd5b8151611bae81611ffa565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361259057612590612544565b6001019392505050565b60005b838110156125b557818101518382015260200161259d565b50506000910152565b600081518084526125d681602086016020860161259a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60608152600061261b60608301866125be565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff82168061265557612655612544565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516126b581601785016020880161259a565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516126f281602884016020880161259a565b01602801949350505050565b602081526000611bae60208301846125be565b8082018082111561076c5761076c612544565b6000808585111561273457600080fd5b8386111561274157600080fd5b5050820193919092039150565b8035602083101561076c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b808202811582820484141761076c5761076c612544565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816127df576127df612544565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561281757600080fd5b8151611bae8161209f565b6000825161283481846020870161259a565b919091019291505056fea26469706673582212204b12e1efddca8ee1418c24f32da3e858822f740465e595b0f20667d46e6afacf64736f6c63430008160033",
888
+ "deployedBytecode": "0x6080604052600436106101c55760003560e01c80635c975abb116100f7578063a217fddf11610095578063cd88b90311610064578063cd88b903146105d7578063d2ae2104146105f7578063d547741f1461064a578063f5730a721461066a57600080fd5b8063a217fddf14610550578063c358de0a14610565578063c416aa5114610585578063c7b2370b146105b757600080fd5b8063741bef1a116100d1578063741bef1a146104a45780638e760afe146104d157806391d14854146104f157806395d376d71461054257600080fd5b80635c975abb1461044c57806369b90d6814610464578063724e78da1461048457600080fd5b806326e67a371161016457806330bb3aac1161013e57806330bb3aac146103b457806336568abe146103d45780634cfa6d2c146103f457806351b6a0fd1461042c57600080fd5b806326e67a37146103475780632de11376146103745780632f2ff15d1461039457600080fd5b80631095b6d7116101a05780631095b6d71461027757806311cda4151461029757806316c38b3c146102e9578063248a9ca31461030957600080fd5b8062bf2e80146101d157806301e336671461022557806301ffc9a71461024757600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b5060015461020d907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561023157600080fd5b5061024561024036600461201c565b61069e565b005b34801561025357600080fd5b5061026761026236600461205d565b6106d9565b604051901515815260200161021c565b34801561028357600080fd5b5061024561029236600461201c565b610772565b3480156102a357600080fd5b506005546102c49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021c565b3480156102f557600080fd5b506102456103043660046120ad565b610901565b34801561031557600080fd5b506103396103243660046120ca565b60009081526020819052604090206001015490565b60405190815260200161021c565b34801561035357600080fd5b506103676103623660046120f7565b610926565b60405161021c9190612112565b34801561038057600080fd5b5061026761038f366004612159565b6109ad565b3480156103a057600080fd5b506102456103af366004612176565b610a92565b3480156103c057600080fd5b506103396103cf3660046121ef565b610abc565b3480156103e057600080fd5b506102456103ef366004612176565b610af0565b34801561040057600080fd5b5061033961040f366004612274565b600460209081526000928352604080842090915290825290205481565b34801561043857600080fd5b506102456104473660046122a9565b610b22565b34801561045857600080fd5b5060015460ff16610267565b34801561047057600080fd5b5061024561047f366004612159565b610c19565b34801561049057600080fd5b5061024561049f366004612159565b610cb3565b3480156104b057600080fd5b506002546102c49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104dd57600080fd5b506102456104ec36600461231e565b610d58565b3480156104fd57600080fd5b5061026761050c366004612176565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6103396103cf366004612360565b34801561055c57600080fd5b50610339600081565b34801561057157600080fd5b506102456105803660046123d1565b610ed6565b34801561059157600080fd5b506001546102c490610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156105c357600080fd5b506102456105d2366004612159565b610f84565b3480156105e357600080fd5b506102456105f23660046123f5565b611028565b34801561060357600080fd5b50600154610631907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161021c565b34801561065657600080fd5b50610245610665366004612176565b611079565b34801561067657600080fd5b506102c47f000000000000000000000000000000000000000000000000000000000000000081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106c88161109e565b6106d38484846110ab565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061076c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561079c8161109e565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff1661081a576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600061090c8161109e565b811561091e5761091a6110db565b5050565b61091a61115a565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156109a157602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116109725790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610a0257506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610a78575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610a8557506001919050565b506000919050565b919050565b600082815260208190526040902060010154610aad8161109e565b610ab783836111b1565b505050565b60006040517f9c5846fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610b2d8161109e565b60005b82811015610bda5736848483818110610b4b57610b4b61247b565b60600291909101915050604081013560046000610b6b6020850185612159565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836020016020810190610bba91906120f7565b63ffffffff16815260208101919091526040016000205550600101610b30565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610c0c9291906124aa565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c438161109e565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f25fecc89eba6e3655a12d5db63dceb5f0711081bd42663652110b98d9a1ec77390600090a25050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cdd8161109e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610dc7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e589190612527565b60055490915073ffffffffffffffffffffffffffffffffffffffff808316911614610ecc576040517f624ac80300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b610ab78383611277565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f008161109e565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610d4c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fae8161109e565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610d4c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110528161109e565b63ffffffff84166000908152600360205260409020611072908484611f3c565b5050505050565b6000828152602081905260409020600101546110948161109e565b610ab7838361130a565b6110a881336113cf565b50565b73ffffffffffffffffffffffffffffffffffffffff83166110d057610ab78282611487565b610ab783838361158d565b6110e36115fb565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61116261166a565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611130565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561120e575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561126d5760018054601590611246907501000000000000000000000000000000000000000000900467ffffffffffffffff16612573565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b61091a82826116d6565b600080600061128685856117c6565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016112d193929190612608565b600060405180830381600087803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611366575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156113c5576001805460159061139e907501000000000000000000000000000000000000000000900467ffffffffffffffff1661263b565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b61091a8282611895565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661091a5761140d8161194c565b61141883602061196b565b60405160200161142992919061267d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ec3916004016126fe565b73ffffffffffffffffffffffffffffffffffffffff82166114d4576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461152e576040519150601f19603f3d011682016040523d82523d6000602084013e611533565b606091505b5050905080610ab7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610ec3565b73ffffffffffffffffffffffffffffffffffffffff82166115da576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab773ffffffffffffffffffffffffffffffffffffffff84168383611bb5565b60015460ff1615611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ec3565b565b60015460ff16611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ec3565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661091a5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556117683390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006060816117d760516040612711565b841461180f576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61182c611820602060008789612724565b6118299161274e565b90565b925061183c604060208688612724565b6118459161274e565b90506118548460408188612724565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561091a5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061076c73ffffffffffffffffffffffffffffffffffffffff831660145b6060600061197a83600261278a565b611985906002612711565b67ffffffffffffffff81111561199d5761199d6127a1565b6040519080825280601f01601f1916602001820160405280156119c7576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119fe576119fe61247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a6157611a6161247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a9d84600261278a565b611aa8906001612711565b90505b6001811115611b45577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ae957611ae961247b565b1a60f81b828281518110611aff57611aff61247b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611b3e816127d0565b9050611aab565b508315611bae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ec3565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610ab792869291600091611c80918516908490611d2d565b9050805160001480611ca1575080806020019051810190611ca19190612805565b610ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ec3565b6060611d3c8484600085611d44565b949350505050565b606082471015611dd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610ec3565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611dff9190612822565b60006040518083038185875af1925050503d8060008114611e3c576040519150601f19603f3d011682016040523d82523d6000602084013e611e41565b606091505b5091509150611e5287838387611e5d565b979650505050505050565b60608315611ef3578251600003611eec5773ffffffffffffffffffffffffffffffffffffffff85163b611eec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ec3565b5081611d3c565b611d3c8383815115611f085781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec391906126fe565b82805482825590600052602060002090601f01602090048101928215611fd55791602002820160005b83821115611fa657833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302611f65565b8015611fd35782816101000a81549060ff0219169055600101602081600001049283019260010302611fa6565b505b50611fe1929150611fe5565b5090565b5b80821115611fe15760008155600101611fe6565b73ffffffffffffffffffffffffffffffffffffffff811681146110a857600080fd5b60008060006060848603121561203157600080fd5b833561203c81611ffa565b9250602084013561204c81611ffa565b929592945050506040919091013590565b60006020828403121561206f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bae57600080fd5b80151581146110a857600080fd5b6000602082840312156120bf57600080fd5b8135611bae8161209f565b6000602082840312156120dc57600080fd5b5035919050565b803563ffffffff81168114610a8d57600080fd5b60006020828403121561210957600080fd5b611bae826120e3565b6020808252825182820181905260009190848201906040850190845b8181101561214d57835160ff168352928401929184019160010161212e565b50909695505050505050565b60006020828403121561216b57600080fd5b8135611bae81611ffa565b6000806040838503121561218957600080fd5b82359150602083013561219b81611ffa565b809150509250929050565b60008083601f8401126121b857600080fd5b50813567ffffffffffffffff8111156121d057600080fd5b6020830191508360208285010111156121e857600080fd5b9250929050565b60008060008060006080868803121561220757600080fd5b612210866120e3565b9450602086013567ffffffffffffffff808216821461222e57600080fd5b90945060408701359061224082611ffa565b9093506060870135908082111561225657600080fd5b50612263888289016121a6565b969995985093965092949392505050565b6000806040838503121561228757600080fd5b823561229281611ffa565b91506122a0602084016120e3565b90509250929050565b600080602083850312156122bc57600080fd5b823567ffffffffffffffff808211156122d457600080fd5b818501915085601f8301126122e857600080fd5b8135818111156122f757600080fd5b86602060608302850101111561230c57600080fd5b60209290920196919550909350505050565b6000806020838503121561233157600080fd5b823567ffffffffffffffff81111561234857600080fd5b612354858286016121a6565b90969095509350505050565b60008060006040848603121561237557600080fd5b833567ffffffffffffffff8082111561238d57600080fd5b9085019060a082880312156123a157600080fd5b909350602085013590808211156123b757600080fd5b506123c4868287016121a6565b9497909650939450505050565b6000602082840312156123e357600080fd5b813561ffff81168114611bae57600080fd5b60008060006040848603121561240a57600080fd5b612413846120e3565b9250602084013567ffffffffffffffff8082111561243057600080fd5b818601915086601f83011261244457600080fd5b81358181111561245357600080fd5b8760208260051b850101111561246857600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b8781101561251a5781356124d381611ffa565b73ffffffffffffffffffffffffffffffffffffffff16835263ffffffff6124fb8387016120e3565b16838601528184013584840152606092830192909101906001016124c0565b5090979650505050505050565b60006020828403121561253957600080fd5b8151611bae81611ffa565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361259057612590612544565b6001019392505050565b60005b838110156125b557818101518382015260200161259d565b50506000910152565b600081518084526125d681602086016020860161259a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60608152600061261b60608301866125be565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff82168061265557612655612544565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516126b581601785016020880161259a565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516126f281602884016020880161259a565b01602801949350505050565b602081526000611bae60208301846125be565b8082018082111561076c5761076c612544565b6000808585111561273457600080fd5b8386111561274157600080fd5b5050820193919092039150565b8035602083101561076c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b808202811582820484141761076c5761076c612544565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816127df576127df612544565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561281757600080fd5b8151611bae8161209f565b6000825161283481846020870161259a565b919091019291505056fea26469706673582212204b12e1efddca8ee1418c24f32da3e858822f740465e595b0f20667d46e6afacf64736f6c63430008160033",
889
+ "linkReferences": {},
890
+ "deployedLinkReferences": {}
891
+ }