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