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