@layerzerolabs/protocol-v2-oapp-evm-contracts 1.2.96 → 1.2.98

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/README.md +1 -1
  2. package/artifacts/contracts/oapp/OApp.sol/OApp.json +383 -0
  3. package/artifacts/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  4. package/artifacts/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  5. package/artifacts/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  6. package/artifacts/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  7. package/artifacts/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  8. package/artifacts/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  9. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  10. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  11. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  12. package/artifacts/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  13. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  14. package/artifacts/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  15. package/artifacts/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  16. package/artifacts/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  17. package/artifacts/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  18. package/artifacts/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  19. package/artifacts/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  20. package/artifacts/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  21. package/artifacts/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  22. package/artifacts/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  23. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  24. package/artifacts/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  25. package/artifacts/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  26. package/artifacts/contracts/oft/OFT.sol/OFT.json +1514 -0
  27. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  28. package/artifacts/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  29. package/artifacts/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  30. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  31. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  32. package/artifacts/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  33. package/artifacts/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  34. package/artifacts/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  35. package/artifacts/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  36. package/artifacts/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  37. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  38. package/artifacts-tron/contracts/oapp/OApp.sol/OApp.json +383 -0
  39. package/artifacts-tron/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  40. package/artifacts-tron/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  41. package/artifacts-tron/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  42. package/artifacts-tron/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  43. package/artifacts-tron/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  44. package/artifacts-tron/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  45. package/artifacts-tron/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  46. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  47. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  48. package/artifacts-tron/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  49. package/artifacts-tron/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  50. package/artifacts-tron/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  51. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  52. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  53. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  54. package/artifacts-tron/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  55. package/artifacts-tron/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  56. package/artifacts-tron/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  57. package/artifacts-tron/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  58. package/artifacts-tron/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  59. package/artifacts-tron/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  60. package/artifacts-tron/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  61. package/artifacts-tron/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  62. package/artifacts-tron/contracts/oft/OFT.sol/OFT.json +1514 -0
  63. package/artifacts-tron/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  64. package/artifacts-tron/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  65. package/artifacts-tron/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  66. package/artifacts-tron/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  67. package/artifacts-tron/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  68. package/artifacts-tron/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  69. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  70. package/artifacts-tron/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  71. package/artifacts-tron/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  72. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  73. package/artifacts-tron/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  74. package/artifacts-zk/contracts/oapp/OApp.sol/OApp.json +384 -0
  75. package/artifacts-zk/contracts/oapp/OAppCore.sol/OAppCore.json +201 -0
  76. package/artifacts-zk/contracts/oapp/OAppRead.sol/OAppRead.json +402 -0
  77. package/artifacts-zk/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +368 -0
  78. package/artifacts-zk/contracts/oapp/OAppSender.sol/OAppSender.json +217 -0
  79. package/artifacts-zk/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +279 -0
  80. package/artifacts-zk/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +844 -0
  81. package/artifacts-zk/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +926 -0
  82. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +11 -0
  83. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +910 -0
  84. package/artifacts-zk/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +949 -0
  85. package/artifacts-zk/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +369 -0
  86. package/artifacts-zk/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +45 -0
  87. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +60 -0
  88. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +36 -0
  89. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +36 -0
  90. package/artifacts-zk/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +149 -0
  91. package/artifacts-zk/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +52 -0
  92. package/artifacts-zk/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +112 -0
  93. package/artifacts-zk/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +168 -0
  94. package/artifacts-zk/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +188 -0
  95. package/artifacts-zk/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +39 -0
  96. package/artifacts-zk/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +22 -0
  97. package/artifacts-zk/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +105 -0
  98. package/artifacts-zk/contracts/oft/OFT.sol/OFT.json +1515 -0
  99. package/artifacts-zk/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1245 -0
  100. package/artifacts-zk/contracts/oft/OFTCore.sol/OFTCore.json +1245 -0
  101. package/artifacts-zk/contracts/oft/interfaces/IOFT.sol/IOFT.json +457 -0
  102. package/artifacts-zk/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +11 -0
  103. package/artifacts-zk/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +11 -0
  104. package/artifacts-zk/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +278 -0
  105. package/artifacts-zk/contracts/precrime/PreCrime.sol/PreCrime.json +353 -0
  106. package/artifacts-zk/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +353 -0
  107. package/artifacts-zk/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +176 -0
  108. package/artifacts-zk/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +189 -0
  109. package/artifacts-zk/contracts/precrime/libs/Packet.sol/PacketDecoder.json +11 -0
  110. package/package.json +7 -7
@@ -0,0 +1,925 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OmniCounter",
4
+ "sourceName": "contracts/oapp/examples/OmniCounter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_delegate",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "InvalidDelegate",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidEndpointCall",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint16",
36
+ "name": "optionType",
37
+ "type": "uint16"
38
+ }
39
+ ],
40
+ "name": "InvalidOptionType",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "LzTokenUnavailable",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "eid",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "NoPeer",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "msgValue",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "NotEnoughNative",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "addr",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "OnlyEndpoint",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "uint32",
85
+ "name": "eid",
86
+ "type": "uint32"
87
+ },
88
+ {
89
+ "internalType": "bytes32",
90
+ "name": "sender",
91
+ "type": "bytes32"
92
+ }
93
+ ],
94
+ "name": "OnlyPeer",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "OnlySelf",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "bytes",
106
+ "name": "result",
107
+ "type": "bytes"
108
+ }
109
+ ],
110
+ "name": "SimulationResult",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "anonymous": false,
115
+ "inputs": [
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "previousOwner",
120
+ "type": "address"
121
+ },
122
+ {
123
+ "indexed": true,
124
+ "internalType": "address",
125
+ "name": "newOwner",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "name": "OwnershipTransferred",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": false,
137
+ "internalType": "uint32",
138
+ "name": "eid",
139
+ "type": "uint32"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "bytes32",
144
+ "name": "peer",
145
+ "type": "bytes32"
146
+ }
147
+ ],
148
+ "name": "PeerSet",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": false,
156
+ "internalType": "address",
157
+ "name": "preCrimeAddress",
158
+ "type": "address"
159
+ }
160
+ ],
161
+ "name": "PreCrimeSet",
162
+ "type": "event"
163
+ },
164
+ {
165
+ "stateMutability": "payable",
166
+ "type": "fallback"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "admin",
171
+ "outputs": [
172
+ {
173
+ "internalType": "address",
174
+ "name": "",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "stateMutability": "view",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [
183
+ {
184
+ "components": [
185
+ {
186
+ "internalType": "uint32",
187
+ "name": "srcEid",
188
+ "type": "uint32"
189
+ },
190
+ {
191
+ "internalType": "bytes32",
192
+ "name": "sender",
193
+ "type": "bytes32"
194
+ },
195
+ {
196
+ "internalType": "uint64",
197
+ "name": "nonce",
198
+ "type": "uint64"
199
+ }
200
+ ],
201
+ "internalType": "struct Origin",
202
+ "name": "origin",
203
+ "type": "tuple"
204
+ }
205
+ ],
206
+ "name": "allowInitializePath",
207
+ "outputs": [
208
+ {
209
+ "internalType": "bool",
210
+ "name": "",
211
+ "type": "bool"
212
+ }
213
+ ],
214
+ "stateMutability": "view",
215
+ "type": "function"
216
+ },
217
+ {
218
+ "inputs": [
219
+ {
220
+ "internalType": "uint32[]",
221
+ "name": "_eids",
222
+ "type": "uint32[]"
223
+ },
224
+ {
225
+ "internalType": "uint8[]",
226
+ "name": "_types",
227
+ "type": "uint8[]"
228
+ },
229
+ {
230
+ "internalType": "bytes[]",
231
+ "name": "_options",
232
+ "type": "bytes[]"
233
+ }
234
+ ],
235
+ "name": "batchIncrement",
236
+ "outputs": [],
237
+ "stateMutability": "payable",
238
+ "type": "function"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "uint32",
244
+ "name": "_eid",
245
+ "type": "uint32"
246
+ },
247
+ {
248
+ "internalType": "uint8",
249
+ "name": "_type",
250
+ "type": "uint8"
251
+ },
252
+ {
253
+ "internalType": "bytes",
254
+ "name": "_options",
255
+ "type": "bytes"
256
+ }
257
+ ],
258
+ "name": "brokenIncrement",
259
+ "outputs": [],
260
+ "stateMutability": "payable",
261
+ "type": "function"
262
+ },
263
+ {
264
+ "inputs": [],
265
+ "name": "composedCount",
266
+ "outputs": [
267
+ {
268
+ "internalType": "uint256",
269
+ "name": "",
270
+ "type": "uint256"
271
+ }
272
+ ],
273
+ "stateMutability": "view",
274
+ "type": "function"
275
+ },
276
+ {
277
+ "inputs": [],
278
+ "name": "count",
279
+ "outputs": [
280
+ {
281
+ "internalType": "uint256",
282
+ "name": "",
283
+ "type": "uint256"
284
+ }
285
+ ],
286
+ "stateMutability": "view",
287
+ "type": "function"
288
+ },
289
+ {
290
+ "inputs": [],
291
+ "name": "eid",
292
+ "outputs": [
293
+ {
294
+ "internalType": "uint32",
295
+ "name": "",
296
+ "type": "uint32"
297
+ }
298
+ ],
299
+ "stateMutability": "view",
300
+ "type": "function"
301
+ },
302
+ {
303
+ "inputs": [],
304
+ "name": "endpoint",
305
+ "outputs": [
306
+ {
307
+ "internalType": "contract ILayerZeroEndpointV2",
308
+ "name": "",
309
+ "type": "address"
310
+ }
311
+ ],
312
+ "stateMutability": "view",
313
+ "type": "function"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "uint32",
319
+ "name": "srcEid",
320
+ "type": "uint32"
321
+ }
322
+ ],
323
+ "name": "inboundCount",
324
+ "outputs": [
325
+ {
326
+ "internalType": "uint256",
327
+ "name": "count",
328
+ "type": "uint256"
329
+ }
330
+ ],
331
+ "stateMutability": "view",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [
336
+ {
337
+ "internalType": "uint32",
338
+ "name": "_eid",
339
+ "type": "uint32"
340
+ },
341
+ {
342
+ "internalType": "uint8",
343
+ "name": "_type",
344
+ "type": "uint8"
345
+ },
346
+ {
347
+ "internalType": "bytes",
348
+ "name": "_options",
349
+ "type": "bytes"
350
+ }
351
+ ],
352
+ "name": "increment",
353
+ "outputs": [],
354
+ "stateMutability": "payable",
355
+ "type": "function"
356
+ },
357
+ {
358
+ "inputs": [
359
+ {
360
+ "components": [
361
+ {
362
+ "internalType": "uint32",
363
+ "name": "srcEid",
364
+ "type": "uint32"
365
+ },
366
+ {
367
+ "internalType": "bytes32",
368
+ "name": "sender",
369
+ "type": "bytes32"
370
+ },
371
+ {
372
+ "internalType": "uint64",
373
+ "name": "nonce",
374
+ "type": "uint64"
375
+ }
376
+ ],
377
+ "internalType": "struct Origin",
378
+ "name": "",
379
+ "type": "tuple"
380
+ },
381
+ {
382
+ "internalType": "bytes",
383
+ "name": "",
384
+ "type": "bytes"
385
+ },
386
+ {
387
+ "internalType": "address",
388
+ "name": "_sender",
389
+ "type": "address"
390
+ }
391
+ ],
392
+ "name": "isComposeMsgSender",
393
+ "outputs": [
394
+ {
395
+ "internalType": "bool",
396
+ "name": "",
397
+ "type": "bool"
398
+ }
399
+ ],
400
+ "stateMutability": "view",
401
+ "type": "function"
402
+ },
403
+ {
404
+ "inputs": [
405
+ {
406
+ "internalType": "uint32",
407
+ "name": "_eid",
408
+ "type": "uint32"
409
+ },
410
+ {
411
+ "internalType": "bytes32",
412
+ "name": "_peer",
413
+ "type": "bytes32"
414
+ }
415
+ ],
416
+ "name": "isPeer",
417
+ "outputs": [
418
+ {
419
+ "internalType": "bool",
420
+ "name": "",
421
+ "type": "bool"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "inputs": [
429
+ {
430
+ "internalType": "address",
431
+ "name": "_oApp",
432
+ "type": "address"
433
+ },
434
+ {
435
+ "internalType": "bytes32",
436
+ "name": "",
437
+ "type": "bytes32"
438
+ },
439
+ {
440
+ "internalType": "bytes",
441
+ "name": "_message",
442
+ "type": "bytes"
443
+ },
444
+ {
445
+ "internalType": "address",
446
+ "name": "",
447
+ "type": "address"
448
+ },
449
+ {
450
+ "internalType": "bytes",
451
+ "name": "",
452
+ "type": "bytes"
453
+ }
454
+ ],
455
+ "name": "lzCompose",
456
+ "outputs": [],
457
+ "stateMutability": "payable",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "components": [
464
+ {
465
+ "internalType": "uint32",
466
+ "name": "srcEid",
467
+ "type": "uint32"
468
+ },
469
+ {
470
+ "internalType": "bytes32",
471
+ "name": "sender",
472
+ "type": "bytes32"
473
+ },
474
+ {
475
+ "internalType": "uint64",
476
+ "name": "nonce",
477
+ "type": "uint64"
478
+ }
479
+ ],
480
+ "internalType": "struct Origin",
481
+ "name": "_origin",
482
+ "type": "tuple"
483
+ },
484
+ {
485
+ "internalType": "bytes32",
486
+ "name": "_guid",
487
+ "type": "bytes32"
488
+ },
489
+ {
490
+ "internalType": "bytes",
491
+ "name": "_message",
492
+ "type": "bytes"
493
+ },
494
+ {
495
+ "internalType": "address",
496
+ "name": "_executor",
497
+ "type": "address"
498
+ },
499
+ {
500
+ "internalType": "bytes",
501
+ "name": "_extraData",
502
+ "type": "bytes"
503
+ }
504
+ ],
505
+ "name": "lzReceive",
506
+ "outputs": [],
507
+ "stateMutability": "payable",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "components": [
514
+ {
515
+ "components": [
516
+ {
517
+ "internalType": "uint32",
518
+ "name": "srcEid",
519
+ "type": "uint32"
520
+ },
521
+ {
522
+ "internalType": "bytes32",
523
+ "name": "sender",
524
+ "type": "bytes32"
525
+ },
526
+ {
527
+ "internalType": "uint64",
528
+ "name": "nonce",
529
+ "type": "uint64"
530
+ }
531
+ ],
532
+ "internalType": "struct Origin",
533
+ "name": "origin",
534
+ "type": "tuple"
535
+ },
536
+ {
537
+ "internalType": "uint32",
538
+ "name": "dstEid",
539
+ "type": "uint32"
540
+ },
541
+ {
542
+ "internalType": "address",
543
+ "name": "receiver",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "bytes32",
548
+ "name": "guid",
549
+ "type": "bytes32"
550
+ },
551
+ {
552
+ "internalType": "uint256",
553
+ "name": "value",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "internalType": "address",
558
+ "name": "executor",
559
+ "type": "address"
560
+ },
561
+ {
562
+ "internalType": "bytes",
563
+ "name": "message",
564
+ "type": "bytes"
565
+ },
566
+ {
567
+ "internalType": "bytes",
568
+ "name": "extraData",
569
+ "type": "bytes"
570
+ }
571
+ ],
572
+ "internalType": "struct InboundPacket[]",
573
+ "name": "_packets",
574
+ "type": "tuple[]"
575
+ }
576
+ ],
577
+ "name": "lzReceiveAndRevert",
578
+ "outputs": [],
579
+ "stateMutability": "payable",
580
+ "type": "function"
581
+ },
582
+ {
583
+ "inputs": [
584
+ {
585
+ "components": [
586
+ {
587
+ "internalType": "uint32",
588
+ "name": "srcEid",
589
+ "type": "uint32"
590
+ },
591
+ {
592
+ "internalType": "bytes32",
593
+ "name": "sender",
594
+ "type": "bytes32"
595
+ },
596
+ {
597
+ "internalType": "uint64",
598
+ "name": "nonce",
599
+ "type": "uint64"
600
+ }
601
+ ],
602
+ "internalType": "struct Origin",
603
+ "name": "_origin",
604
+ "type": "tuple"
605
+ },
606
+ {
607
+ "internalType": "bytes32",
608
+ "name": "_guid",
609
+ "type": "bytes32"
610
+ },
611
+ {
612
+ "internalType": "bytes",
613
+ "name": "_message",
614
+ "type": "bytes"
615
+ },
616
+ {
617
+ "internalType": "address",
618
+ "name": "_executor",
619
+ "type": "address"
620
+ },
621
+ {
622
+ "internalType": "bytes",
623
+ "name": "_extraData",
624
+ "type": "bytes"
625
+ }
626
+ ],
627
+ "name": "lzReceiveSimulate",
628
+ "outputs": [],
629
+ "stateMutability": "payable",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [
634
+ {
635
+ "internalType": "uint32",
636
+ "name": "_srcEid",
637
+ "type": "uint32"
638
+ },
639
+ {
640
+ "internalType": "bytes32",
641
+ "name": "_sender",
642
+ "type": "bytes32"
643
+ }
644
+ ],
645
+ "name": "nextNonce",
646
+ "outputs": [
647
+ {
648
+ "internalType": "uint64",
649
+ "name": "",
650
+ "type": "uint64"
651
+ }
652
+ ],
653
+ "stateMutability": "view",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [],
658
+ "name": "oApp",
659
+ "outputs": [
660
+ {
661
+ "internalType": "address",
662
+ "name": "",
663
+ "type": "address"
664
+ }
665
+ ],
666
+ "stateMutability": "view",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [],
671
+ "name": "oAppVersion",
672
+ "outputs": [
673
+ {
674
+ "internalType": "uint64",
675
+ "name": "senderVersion",
676
+ "type": "uint64"
677
+ },
678
+ {
679
+ "internalType": "uint64",
680
+ "name": "receiverVersion",
681
+ "type": "uint64"
682
+ }
683
+ ],
684
+ "stateMutability": "pure",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "inputs": [
689
+ {
690
+ "internalType": "uint32",
691
+ "name": "dstEid",
692
+ "type": "uint32"
693
+ }
694
+ ],
695
+ "name": "outboundCount",
696
+ "outputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "count",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "stateMutability": "view",
704
+ "type": "function"
705
+ },
706
+ {
707
+ "inputs": [],
708
+ "name": "owner",
709
+ "outputs": [
710
+ {
711
+ "internalType": "address",
712
+ "name": "",
713
+ "type": "address"
714
+ }
715
+ ],
716
+ "stateMutability": "view",
717
+ "type": "function"
718
+ },
719
+ {
720
+ "inputs": [
721
+ {
722
+ "internalType": "uint32",
723
+ "name": "eid",
724
+ "type": "uint32"
725
+ }
726
+ ],
727
+ "name": "peers",
728
+ "outputs": [
729
+ {
730
+ "internalType": "bytes32",
731
+ "name": "peer",
732
+ "type": "bytes32"
733
+ }
734
+ ],
735
+ "stateMutability": "view",
736
+ "type": "function"
737
+ },
738
+ {
739
+ "inputs": [],
740
+ "name": "preCrime",
741
+ "outputs": [
742
+ {
743
+ "internalType": "address",
744
+ "name": "",
745
+ "type": "address"
746
+ }
747
+ ],
748
+ "stateMutability": "view",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "uint32",
755
+ "name": "_eid",
756
+ "type": "uint32"
757
+ },
758
+ {
759
+ "internalType": "uint8",
760
+ "name": "_type",
761
+ "type": "uint8"
762
+ },
763
+ {
764
+ "internalType": "bytes",
765
+ "name": "_options",
766
+ "type": "bytes"
767
+ }
768
+ ],
769
+ "name": "quote",
770
+ "outputs": [
771
+ {
772
+ "internalType": "uint256",
773
+ "name": "nativeFee",
774
+ "type": "uint256"
775
+ },
776
+ {
777
+ "internalType": "uint256",
778
+ "name": "lzTokenFee",
779
+ "type": "uint256"
780
+ }
781
+ ],
782
+ "stateMutability": "view",
783
+ "type": "function"
784
+ },
785
+ {
786
+ "inputs": [],
787
+ "name": "renounceOwnership",
788
+ "outputs": [],
789
+ "stateMutability": "nonpayable",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [
794
+ {
795
+ "internalType": "address",
796
+ "name": "_admin",
797
+ "type": "address"
798
+ }
799
+ ],
800
+ "name": "setAdmin",
801
+ "outputs": [],
802
+ "stateMutability": "nonpayable",
803
+ "type": "function"
804
+ },
805
+ {
806
+ "inputs": [
807
+ {
808
+ "internalType": "address",
809
+ "name": "_delegate",
810
+ "type": "address"
811
+ }
812
+ ],
813
+ "name": "setDelegate",
814
+ "outputs": [],
815
+ "stateMutability": "nonpayable",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "bool",
822
+ "name": "_orderedNonce",
823
+ "type": "bool"
824
+ }
825
+ ],
826
+ "name": "setOrderedNonce",
827
+ "outputs": [],
828
+ "stateMutability": "nonpayable",
829
+ "type": "function"
830
+ },
831
+ {
832
+ "inputs": [
833
+ {
834
+ "internalType": "uint32",
835
+ "name": "_eid",
836
+ "type": "uint32"
837
+ },
838
+ {
839
+ "internalType": "bytes32",
840
+ "name": "_peer",
841
+ "type": "bytes32"
842
+ }
843
+ ],
844
+ "name": "setPeer",
845
+ "outputs": [],
846
+ "stateMutability": "nonpayable",
847
+ "type": "function"
848
+ },
849
+ {
850
+ "inputs": [
851
+ {
852
+ "internalType": "address",
853
+ "name": "_preCrime",
854
+ "type": "address"
855
+ }
856
+ ],
857
+ "name": "setPreCrime",
858
+ "outputs": [],
859
+ "stateMutability": "nonpayable",
860
+ "type": "function"
861
+ },
862
+ {
863
+ "inputs": [
864
+ {
865
+ "internalType": "uint32",
866
+ "name": "_srcEid",
867
+ "type": "uint32"
868
+ },
869
+ {
870
+ "internalType": "bytes32",
871
+ "name": "_sender",
872
+ "type": "bytes32"
873
+ },
874
+ {
875
+ "internalType": "uint64",
876
+ "name": "_nonce",
877
+ "type": "uint64"
878
+ }
879
+ ],
880
+ "name": "skipInboundNonce",
881
+ "outputs": [],
882
+ "stateMutability": "nonpayable",
883
+ "type": "function"
884
+ },
885
+ {
886
+ "inputs": [
887
+ {
888
+ "internalType": "address",
889
+ "name": "newOwner",
890
+ "type": "address"
891
+ }
892
+ ],
893
+ "name": "transferOwnership",
894
+ "outputs": [],
895
+ "stateMutability": "nonpayable",
896
+ "type": "function"
897
+ },
898
+ {
899
+ "inputs": [
900
+ {
901
+ "internalType": "address payable",
902
+ "name": "_to",
903
+ "type": "address"
904
+ },
905
+ {
906
+ "internalType": "uint256",
907
+ "name": "_amount",
908
+ "type": "uint256"
909
+ }
910
+ ],
911
+ "name": "withdraw",
912
+ "outputs": [],
913
+ "stateMutability": "nonpayable",
914
+ "type": "function"
915
+ },
916
+ {
917
+ "stateMutability": "payable",
918
+ "type": "receive"
919
+ }
920
+ ],
921
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162003656380380620036568339810160408190526200003491620001ed565b818181818181620000453362000180565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050600580546001600160a01b0319163317905550506040805163416ecebf60e01b815290516001600160a01b038816955063416ecebf9450600480830194506020935090918290030181865afa15801562000130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000156919062000225565b600560146101000a81548163ffffffff021916908363ffffffff1602179055505050505062000254565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001e857600080fd5b919050565b600080604083850312156200020157600080fd5b6200020c83620001d0565b91506200021c60208401620001d0565b90509250929050565b6000602082840312156200023857600080fd5b815163ffffffff811681146200024d57600080fd5b9392505050565b6080516133a7620002af600039600081816103a40152818161068901528181610adc01528181610f75015281816110ac015281816117f001528181611b4201528181611da101528181612035015261212e01526133a76000f3fe6080604052600436106101e75760003560e01c80637d25a05e1161010e578063ca5eb5e1116100a7578063d424388511610079578063f3fef3a311610061578063f3fef3a31461061a578063f851a4401461063a578063ff7bd03d1461066757005b8063d4243885146105da578063f2fde38b146105fa57005b8063ca5eb5e11461055f578063d045a0dc1461057f578063d0a1026014610592578063d22446ce146105a557005b8063b7abbb5d116100e0578063b7abbb5d146104f9578063bb0b6a531461050c578063bd815db014610539578063c95c55be1461054c57005b80637d25a05e1461044857806382413eac146104815780638da5cb5b146104a1578063b731ea0a146104cc57005b806356a4728911610180578063622f17f611610152578063622f17f6146103c6578063704b6c02146103f35780637112f86f14610413578063715018a61461043357005b806356a47289146103155780635a0dfe4d146103425780635b849af6146103725780635e280f111461039257005b80633400288b116101b95780633400288b14610264578063416ecebf1461028457806352ae2879146102ce578063542e7b561461030257005b806306661abd146101f057806313137d651461021957806317442b701461022c578063257f4e051461024e57005b366101ee57005b005b3480156101fc57600080fd5b5061020660035481565b6040519081526020015b60405180910390f35b6101ee610227366004612742565b610687565b34801561023857600080fd5b5060408051600181526002602082015201610210565b34801561025a57600080fd5b5061020660045481565b34801561027057600080fd5b506101ee61027f3660046127fb565b610786565b34801561029057600080fd5b506005546102b99074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610210565b3480156102da57600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610210565b6101ee61031036600461286a565b61079c565b34801561032157600080fd5b50610206610330366004612904565b60086020526000908152604090205481565b34801561034e57600080fd5b5061036261035d3660046127fb565b610963565b6040519015158152602001610210565b34801561037e57600080fd5b506101ee61038d36600461292d565b610982565b34801561039e57600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d257600080fd5b506102066103e1366004612904565b60096020526000908152604090205481565b3480156103ff57600080fd5b506101ee61040e36600461294a565b6109bb565b34801561041f57600080fd5b506101ee61042e36600461297d565b610a83565b34801561043f57600080fd5b506101ee610bbd565b34801561045457600080fd5b506104686104633660046127fb565b610bd1565b60405167ffffffffffffffff9091168152602001610210565b34801561048d57600080fd5b5061036261049c3660046129bd565b610c24565b3480156104ad57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166102dd565b3480156104d857600080fd5b506002546102dd9073ffffffffffffffffffffffffffffffffffffffff1681565b6101ee610507366004612a35565b610c46565b34801561051857600080fd5b50610206610527366004612904565b60016020526000908152604090205481565b6101ee610547366004612a96565b610cc9565b6101ee61055a366004612a35565b610e80565b34801561056b57600080fd5b506101ee61057a36600461294a565b610f28565b6101ee61058d366004612742565b610fcd565b6101ee6105a0366004612ad8565b611015565b3480156105b157600080fd5b506105c56105c0366004612a35565b6112ea565b60408051928352602083019190915201610210565b3480156105e657600080fd5b506101ee6105f536600461294a565b611361565b34801561060657600080fd5b506101ee61061536600461294a565b6113e2565b34801561062657600080fd5b506101ee610635366004612b59565b611499565b34801561064657600080fd5b506005546102dd9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067357600080fd5b50610362610682366004612b77565b6115e4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146106fd576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061071790610712908a612904565b61161a565b1461076e576107296020880188612904565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016106f4565b61077d8787878787878761166f565b50505050505050565b61078e6119c0565b6107988282611a41565b5050565b84811480156107aa57508483145b610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d617463680000000060448201526064016106f4565b610818612677565b3460005b8781101561095857600061083160018a612bc2565b821461083d573061083f565b335b905060008a8a8481811061085557610855612bd5565b905060200201602081019061086a9190612904565b9050600089898581811061088057610880612bd5565b90506020020160208101906108959190612c04565b905061092c826108b783600560149054906101000a900463ffffffff16611a96565b8a8a888181106108c9576108c9612bd5565b90506020028101906108db9190612c1f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528d815260208101919091529250899150611b0f9050565b955061093782611c27565b6040860151516109479086612bc2565b9450506001909201915061081c9050565b505050505050505050565b63ffffffff821660009081526001602052604090205481145b92915050565b61098a6119c0565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314610a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610a8b6119c0565b6040517fd70b890200000000000000000000000000000000000000000000000000000000815230600482015263ffffffff841660248201526044810183905267ffffffffffffffff821660648201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d70b890290608401600060405180830381600087803b158015610b3557600080fd5b505af1158015610b49573d6000803e3d6000fd5b505060075460ff16159150610bb890505763ffffffff831660009081526006602090815260408083208584529091528120805467ffffffffffffffff1691610b9083612c84565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610bc56119c0565b610bcf6000611c50565b565b60075460009060ff1615610c1c5763ffffffff83166000908152600660209081526040808320858452909152902054610c159067ffffffffffffffff166001612cab565b905061097c565b50600061097c565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b610cb984610c6685600560149054906101000a900463ffffffff16611a96565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611b0f9050565b50610cc384611c27565b50505050565b60005b81811015610dbb5736838383818110610ce757610ce7612bd5565b9050602002810190610cf99190612cd3565b9050610d15610d0b6020830183612904565b6020830135610963565b610d1f5750610db3565b3063d045a0dc60c08301358360a0810135610d3e610100830183612c1f565b610d4f610100890160e08a0161294a565b610d5d6101208a018a612c1f565b6040518963ffffffff1660e01b8152600401610d7f9796959493929190612d5a565b6000604051808303818588803b158015610d9857600080fd5b505af1158015610dac573d6000803e3d6000fd5b5050505050505b600101610ccc565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e07573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e4d9190810190612e41565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016106f49190612f4b565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b610f2184610c6685600560149054906101000a900463ffffffff16611a96565b5050505050565b610f306119c0565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610fb957600080fd5b505af1158015610f21573d6000803e3d6000fd5b333014611006576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61077d8787878787878761076e565b73ffffffffffffffffffffffffffffffffffffffff87163014611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f216f41707000000000000000000000000000000000000000000000000000000060448201526064016106f4565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e74000000000000000000000000000000000000000000000060448201526064016106f4565b600061113f8686611cc5565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016111895760016004600082825461117e9190612f5e565b909155506112e09050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff82160161127e576001600460008282546111c69190612f5e565b90915550600090506111d88787611ce7565b90506111e381611c27565b600061123662030d40600061122f604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9190611d0a565b9050611276826112596001600560149054906101000a900463ffffffff16611a96565b836040518060400160405280348152602001600081525030611b0f565b5050506112e0565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d657373616765207479706500000000000000000000000060448201526064016106f4565b5050505050505050565b600080600061134b8761130f88600560149054906101000a900463ffffffff16611a96565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611d8b915050565b8051602090910151909890975095505050505050565b6113696119c0565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6113ea6119c0565b73ffffffffffffffffffffffffffffffffffffffff811661148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106f4565b61149681611c50565b50565b60055473ffffffffffffffffffffffffffffffffffffffff16331461151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611574576040519150601f19603f3d011682016040523d82523d6000602084013e611579565b606091505b5050905080610bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a207769746864726177206661696c65640000000060448201526064016106f4565b60006020820180359060019083906115fc9086612904565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061097c576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016106f4565b61169961167f6020890189612904565b602089013561169460608b0160408c01612f71565b611e79565b60006116a58686611cc5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff82160161177357600380549060006116e183612f8e565b91905055506116f08686611faf565b341015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6d6e69436f756e7465723a20696e73756666696369656e742076616c75650060448201526064016106f4565b61176e61176960208a018a612904565b611fce565b6112e0565b60ff811660021480611788575060ff81166004145b15611865576003805490600061179d83612f8e565b909155506117b3905061176960208a018a612904565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061182e9030908b906000908c908c90600401612fc6565b600060405180830381600087803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b505050506112e0565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff82160161127e576003805490600061189f83612f8e565b909155506118b5905061176960208a018a612904565b6118ca6118c560208a018a612904565b611c27565b600061191662030d40600a61122f604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b90506119b961192860208b018b612904565b600554604080517f010000000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090920460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166021830152600a6025808401919091528151808403909101815260459092019052611259565b50506112e0565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106f4565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b611b17612677565b6000611b268460000151611fef565b602085015190915015611b4057611b408460200151612031565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001611b9d8c61161a565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611bd9929190613006565b60806040518083038185885af1158015611bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c1c91906130f9565b979650505050505050565b63ffffffff81166000908152600960205260408120805491611c4883612f8e565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000611cd46001828486613161565b611cdd9161318b565b60f81c9392505050565b6000611cf7600560018486613161565b611d00916131d3565b60e01c9392505050565b6060836003611d1a826000612153565b61ffff1614611d6757611d2e816000612153565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff90911660048201526024016106f4565b6000611d7385856121d3565b9050611d8186600183612273565b9695505050505050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611dfb8961161a565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e30929190613006565b6040805180830381865afa158015611e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e709190613219565b95945050505050565b63ffffffff8316600090815260066020908152604080832085845290915290205460075467ffffffffffffffff9091169060ff1615611f3957611ebd816001612cab565b67ffffffffffffffff168267ffffffffffffffff1614611f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e63650000000000000000000000000060448201526064016106f4565b8067ffffffffffffffff168267ffffffffffffffff161115610cc35763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff84167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905550505050565b6000611fbe8260058186613161565b611fc791613235565b9392505050565b63ffffffff81166000908152600860205260408120805491611c4883612f8e565b60008134101561202d576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016106f4565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190613271565b905073ffffffffffffffffffffffffffffffffffffffff8116612111576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61079873ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000856122de565b6000612160826002612f5e565b835110156121ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016106f4565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561223c57604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052611fc7565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611af8565b6060836003612283826000612153565b61ffff161461229757611d2e816000612153565b8460016122a48551612373565b6122af90600161328e565b86866040516020016122c59594939291906132a9565b6040516020818303038152906040529150509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610cc3908590612407565b600061ffff82111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016106f4565b6000612469826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125169092919063ffffffff16565b905080516000148061248a57508080602001905181019061248a9190613342565b610bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106f4565b6060610c3e8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161254a919061335f565b60006040518083038185875af1925050503d8060008114612587576040519150601f19603f3d011682016040523d82523d6000602084013e61258c565b606091505b5091509150611c1c878383876060831561262e5782516000036126275773ffffffffffffffffffffffffffffffffffffffff85163b612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106f4565b5081610c3e565b610c3e83838151156126435781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f49190612f4b565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016126ba604051806040016040528060008152602001600081525090565b905290565b6000606082840312156126d157600080fd5b50919050565b60008083601f8401126126e957600080fd5b50813567ffffffffffffffff81111561270157600080fd5b60208301915083602082850101111561271957600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461149657600080fd5b600080600080600080600060e0888a03121561275d57600080fd5b61276789896126bf565b965060608801359550608088013567ffffffffffffffff8082111561278b57600080fd5b6127978b838c016126d7565b909750955060a08a013591506127ac82612720565b90935060c089013590808211156127c257600080fd5b506127cf8a828b016126d7565b989b979a50959850939692959293505050565b803563ffffffff811681146127f657600080fd5b919050565b6000806040838503121561280e57600080fd5b612817836127e2565b946020939093013593505050565b60008083601f84011261283757600080fd5b50813567ffffffffffffffff81111561284f57600080fd5b6020830191508360208260051b850101111561271957600080fd5b6000806000806000806060878903121561288357600080fd5b863567ffffffffffffffff8082111561289b57600080fd5b6128a78a838b01612825565b909850965060208901359150808211156128c057600080fd5b6128cc8a838b01612825565b909650945060408901359150808211156128e557600080fd5b506128f289828a01612825565b979a9699509497509295939492505050565b60006020828403121561291657600080fd5b611fc7826127e2565b801515811461149657600080fd5b60006020828403121561293f57600080fd5b8135611fc78161291f565b60006020828403121561295c57600080fd5b8135611fc781612720565b67ffffffffffffffff8116811461149657600080fd5b60008060006060848603121561299257600080fd5b61299b846127e2565b92506020840135915060408401356129b281612967565b809150509250925092565b60008060008060a085870312156129d357600080fd5b6129dd86866126bf565b9350606085013567ffffffffffffffff8111156129f957600080fd5b612a05878288016126d7565b9094509250506080850135612a1981612720565b939692955090935050565b803560ff811681146127f657600080fd5b60008060008060608587031215612a4b57600080fd5b612a54856127e2565b9350612a6260208601612a24565b9250604085013567ffffffffffffffff811115612a7e57600080fd5b612a8a878288016126d7565b95989497509550505050565b60008060208385031215612aa957600080fd5b823567ffffffffffffffff811115612ac057600080fd5b612acc85828601612825565b90969095509350505050565b600080600080600080600060a0888a031215612af357600080fd5b8735612afe81612720565b965060208801359550604088013567ffffffffffffffff80821115612b2257600080fd5b612b2e8b838c016126d7565b909750955060608a01359150612b4382612720565b909350608089013590808211156127c257600080fd5b60008060408385031215612b6c57600080fd5b823561281781612720565b600060608284031215612b8957600080fd5b611fc783836126bf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561097c5761097c612b93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c1657600080fd5b611fc782612a24565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c5457600080fd5b83018035915067ffffffffffffffff821115612c6f57600080fd5b60200191503681900382131561271957600080fd5b600067ffffffffffffffff808316818103612ca157612ca1612b93565b6001019392505050565b67ffffffffffffffff818116838216019080821115612ccc57612ccc612b93565b5092915050565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612d0757600080fd5b9190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff612d68896127e2565b1681526020880135602082015260006040890135612d8581612967565b67ffffffffffffffff811660408401525087606083015260e06080830152612db160e083018789612d11565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c0840152612de0818587612d11565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015612e38578181015183820152602001612e20565b50506000910152565b600060208284031215612e5357600080fd5b815167ffffffffffffffff80821115612e6b57600080fd5b818401915084601f830112612e7f57600080fd5b815181811115612e9157612e91612dee565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715612ed757612ed7612dee565b81604052828152876020848701011115612ef057600080fd5b611c1c836020830160208801612e1d565b60008151808452612f19816020860160208601612e1d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611fc76020830184612f01565b8082018082111561097c5761097c612b93565b600060208284031215612f8357600080fd5b8135611fc781612967565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbf57612fbf612b93565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015261ffff84166040820152608060608201526000611c1c608083018486612d11565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261303c60e0840182612f01565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526130778282612f01565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b6000604082840312156130bc57600080fd5b6040516040810181811067ffffffffffffffff821117156130df576130df612dee565b604052825181526020928301519281019290925250919050565b60006080828403121561310b57600080fd5b6040516060810181811067ffffffffffffffff8211171561312e5761312e612dee565b60405282518152602083015161314381612967565b602082015261315584604085016130aa565b60408201529392505050565b6000808585111561317157600080fd5b8386111561317e57600080fd5b5050820193919092039150565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156131cb5780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156131cb5760049490940360031b84901b1690921692915050565b60006040828403121561322b57600080fd5b611fc783836130aa565b8035602083101561097c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561328357600080fd5b8151611fc781612720565b61ffff818116838216019080821115612ccc57612ccc612b93565b600086516132bb818460208b01612e1d565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351613333816004840160208801612e1d565b01600401979650505050505050565b60006020828403121561335457600080fd5b8151611fc78161291f565b60008251612d07818460208701612e1d56fea264697066735822122014cad46b13b7f2e6b8500845ee4571a49748eca0c36049d5e64db1cca585c1ee64736f6c63430008160033",
922
+ "deployedBytecode": "0x6080604052600436106101e75760003560e01c80637d25a05e1161010e578063ca5eb5e1116100a7578063d424388511610079578063f3fef3a311610061578063f3fef3a31461061a578063f851a4401461063a578063ff7bd03d1461066757005b8063d4243885146105da578063f2fde38b146105fa57005b8063ca5eb5e11461055f578063d045a0dc1461057f578063d0a1026014610592578063d22446ce146105a557005b8063b7abbb5d116100e0578063b7abbb5d146104f9578063bb0b6a531461050c578063bd815db014610539578063c95c55be1461054c57005b80637d25a05e1461044857806382413eac146104815780638da5cb5b146104a1578063b731ea0a146104cc57005b806356a4728911610180578063622f17f611610152578063622f17f6146103c6578063704b6c02146103f35780637112f86f14610413578063715018a61461043357005b806356a47289146103155780635a0dfe4d146103425780635b849af6146103725780635e280f111461039257005b80633400288b116101b95780633400288b14610264578063416ecebf1461028457806352ae2879146102ce578063542e7b561461030257005b806306661abd146101f057806313137d651461021957806317442b701461022c578063257f4e051461024e57005b366101ee57005b005b3480156101fc57600080fd5b5061020660035481565b6040519081526020015b60405180910390f35b6101ee610227366004612742565b610687565b34801561023857600080fd5b5060408051600181526002602082015201610210565b34801561025a57600080fd5b5061020660045481565b34801561027057600080fd5b506101ee61027f3660046127fb565b610786565b34801561029057600080fd5b506005546102b99074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610210565b3480156102da57600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610210565b6101ee61031036600461286a565b61079c565b34801561032157600080fd5b50610206610330366004612904565b60086020526000908152604090205481565b34801561034e57600080fd5b5061036261035d3660046127fb565b610963565b6040519015158152602001610210565b34801561037e57600080fd5b506101ee61038d36600461292d565b610982565b34801561039e57600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d257600080fd5b506102066103e1366004612904565b60096020526000908152604090205481565b3480156103ff57600080fd5b506101ee61040e36600461294a565b6109bb565b34801561041f57600080fd5b506101ee61042e36600461297d565b610a83565b34801561043f57600080fd5b506101ee610bbd565b34801561045457600080fd5b506104686104633660046127fb565b610bd1565b60405167ffffffffffffffff9091168152602001610210565b34801561048d57600080fd5b5061036261049c3660046129bd565b610c24565b3480156104ad57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166102dd565b3480156104d857600080fd5b506002546102dd9073ffffffffffffffffffffffffffffffffffffffff1681565b6101ee610507366004612a35565b610c46565b34801561051857600080fd5b50610206610527366004612904565b60016020526000908152604090205481565b6101ee610547366004612a96565b610cc9565b6101ee61055a366004612a35565b610e80565b34801561056b57600080fd5b506101ee61057a36600461294a565b610f28565b6101ee61058d366004612742565b610fcd565b6101ee6105a0366004612ad8565b611015565b3480156105b157600080fd5b506105c56105c0366004612a35565b6112ea565b60408051928352602083019190915201610210565b3480156105e657600080fd5b506101ee6105f536600461294a565b611361565b34801561060657600080fd5b506101ee61061536600461294a565b6113e2565b34801561062657600080fd5b506101ee610635366004612b59565b611499565b34801561064657600080fd5b506005546102dd9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067357600080fd5b50610362610682366004612b77565b6115e4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146106fd576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061071790610712908a612904565b61161a565b1461076e576107296020880188612904565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016106f4565b61077d8787878787878761166f565b50505050505050565b61078e6119c0565b6107988282611a41565b5050565b84811480156107aa57508483145b610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d617463680000000060448201526064016106f4565b610818612677565b3460005b8781101561095857600061083160018a612bc2565b821461083d573061083f565b335b905060008a8a8481811061085557610855612bd5565b905060200201602081019061086a9190612904565b9050600089898581811061088057610880612bd5565b90506020020160208101906108959190612c04565b905061092c826108b783600560149054906101000a900463ffffffff16611a96565b8a8a888181106108c9576108c9612bd5565b90506020028101906108db9190612c1f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528d815260208101919091529250899150611b0f9050565b955061093782611c27565b6040860151516109479086612bc2565b9450506001909201915061081c9050565b505050505050505050565b63ffffffff821660009081526001602052604090205481145b92915050565b61098a6119c0565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314610a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610a8b6119c0565b6040517fd70b890200000000000000000000000000000000000000000000000000000000815230600482015263ffffffff841660248201526044810183905267ffffffffffffffff821660648201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d70b890290608401600060405180830381600087803b158015610b3557600080fd5b505af1158015610b49573d6000803e3d6000fd5b505060075460ff16159150610bb890505763ffffffff831660009081526006602090815260408083208584529091528120805467ffffffffffffffff1691610b9083612c84565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610bc56119c0565b610bcf6000611c50565b565b60075460009060ff1615610c1c5763ffffffff83166000908152600660209081526040808320858452909152902054610c159067ffffffffffffffff166001612cab565b905061097c565b50600061097c565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b610cb984610c6685600560149054906101000a900463ffffffff16611a96565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611b0f9050565b50610cc384611c27565b50505050565b60005b81811015610dbb5736838383818110610ce757610ce7612bd5565b9050602002810190610cf99190612cd3565b9050610d15610d0b6020830183612904565b6020830135610963565b610d1f5750610db3565b3063d045a0dc60c08301358360a0810135610d3e610100830183612c1f565b610d4f610100890160e08a0161294a565b610d5d6101208a018a612c1f565b6040518963ffffffff1660e01b8152600401610d7f9796959493929190612d5a565b6000604051808303818588803b158015610d9857600080fd5b505af1158015610dac573d6000803e3d6000fd5b5050505050505b600101610ccc565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e07573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e4d9190810190612e41565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016106f49190612f4b565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b610f2184610c6685600560149054906101000a900463ffffffff16611a96565b5050505050565b610f306119c0565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610fb957600080fd5b505af1158015610f21573d6000803e3d6000fd5b333014611006576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61077d8787878787878761076e565b73ffffffffffffffffffffffffffffffffffffffff87163014611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f216f41707000000000000000000000000000000000000000000000000000000060448201526064016106f4565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e74000000000000000000000000000000000000000000000060448201526064016106f4565b600061113f8686611cc5565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016111895760016004600082825461117e9190612f5e565b909155506112e09050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff82160161127e576001600460008282546111c69190612f5e565b90915550600090506111d88787611ce7565b90506111e381611c27565b600061123662030d40600061122f604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9190611d0a565b9050611276826112596001600560149054906101000a900463ffffffff16611a96565b836040518060400160405280348152602001600081525030611b0f565b5050506112e0565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d657373616765207479706500000000000000000000000060448201526064016106f4565b5050505050505050565b600080600061134b8761130f88600560149054906101000a900463ffffffff16611a96565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611d8b915050565b8051602090910151909890975095505050505050565b6113696119c0565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6113ea6119c0565b73ffffffffffffffffffffffffffffffffffffffff811661148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106f4565b61149681611c50565b50565b60055473ffffffffffffffffffffffffffffffffffffffff16331461151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016106f4565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611574576040519150601f19603f3d011682016040523d82523d6000602084013e611579565b606091505b5050905080610bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a207769746864726177206661696c65640000000060448201526064016106f4565b60006020820180359060019083906115fc9086612904565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061097c576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016106f4565b61169961167f6020890189612904565b602089013561169460608b0160408c01612f71565b611e79565b60006116a58686611cc5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff82160161177357600380549060006116e183612f8e565b91905055506116f08686611faf565b341015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6d6e69436f756e7465723a20696e73756666696369656e742076616c75650060448201526064016106f4565b61176e61176960208a018a612904565b611fce565b6112e0565b60ff811660021480611788575060ff81166004145b15611865576003805490600061179d83612f8e565b909155506117b3905061176960208a018a612904565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061182e9030908b906000908c908c90600401612fc6565b600060405180830381600087803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b505050506112e0565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff82160161127e576003805490600061189f83612f8e565b909155506118b5905061176960208a018a612904565b6118ca6118c560208a018a612904565b611c27565b600061191662030d40600a61122f604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b90506119b961192860208b018b612904565b600554604080517f010000000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090920460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166021830152600a6025808401919091528151808403909101815260459092019052611259565b50506112e0565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106f4565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b611b17612677565b6000611b268460000151611fef565b602085015190915015611b4057611b408460200151612031565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001611b9d8c61161a565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611bd9929190613006565b60806040518083038185885af1158015611bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c1c91906130f9565b979650505050505050565b63ffffffff81166000908152600960205260408120805491611c4883612f8e565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000611cd46001828486613161565b611cdd9161318b565b60f81c9392505050565b6000611cf7600560018486613161565b611d00916131d3565b60e01c9392505050565b6060836003611d1a826000612153565b61ffff1614611d6757611d2e816000612153565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff90911660048201526024016106f4565b6000611d7385856121d3565b9050611d8186600183612273565b9695505050505050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611dfb8961161a565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e30929190613006565b6040805180830381865afa158015611e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e709190613219565b95945050505050565b63ffffffff8316600090815260066020908152604080832085845290915290205460075467ffffffffffffffff9091169060ff1615611f3957611ebd816001612cab565b67ffffffffffffffff168267ffffffffffffffff1614611f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e63650000000000000000000000000060448201526064016106f4565b8067ffffffffffffffff168267ffffffffffffffff161115610cc35763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff84167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905550505050565b6000611fbe8260058186613161565b611fc791613235565b9392505050565b63ffffffff81166000908152600860205260408120805491611c4883612f8e565b60008134101561202d576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016106f4565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190613271565b905073ffffffffffffffffffffffffffffffffffffffff8116612111576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61079873ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000856122de565b6000612160826002612f5e565b835110156121ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016106f4565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561223c57604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052611fc7565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611af8565b6060836003612283826000612153565b61ffff161461229757611d2e816000612153565b8460016122a48551612373565b6122af90600161328e565b86866040516020016122c59594939291906132a9565b6040516020818303038152906040529150509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610cc3908590612407565b600061ffff82111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016106f4565b6000612469826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125169092919063ffffffff16565b905080516000148061248a57508080602001905181019061248a9190613342565b610bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106f4565b6060610c3e8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161254a919061335f565b60006040518083038185875af1925050503d8060008114612587576040519150601f19603f3d011682016040523d82523d6000602084013e61258c565b606091505b5091509150611c1c878383876060831561262e5782516000036126275773ffffffffffffffffffffffffffffffffffffffff85163b612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106f4565b5081610c3e565b610c3e83838151156126435781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f49190612f4b565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016126ba604051806040016040528060008152602001600081525090565b905290565b6000606082840312156126d157600080fd5b50919050565b60008083601f8401126126e957600080fd5b50813567ffffffffffffffff81111561270157600080fd5b60208301915083602082850101111561271957600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461149657600080fd5b600080600080600080600060e0888a03121561275d57600080fd5b61276789896126bf565b965060608801359550608088013567ffffffffffffffff8082111561278b57600080fd5b6127978b838c016126d7565b909750955060a08a013591506127ac82612720565b90935060c089013590808211156127c257600080fd5b506127cf8a828b016126d7565b989b979a50959850939692959293505050565b803563ffffffff811681146127f657600080fd5b919050565b6000806040838503121561280e57600080fd5b612817836127e2565b946020939093013593505050565b60008083601f84011261283757600080fd5b50813567ffffffffffffffff81111561284f57600080fd5b6020830191508360208260051b850101111561271957600080fd5b6000806000806000806060878903121561288357600080fd5b863567ffffffffffffffff8082111561289b57600080fd5b6128a78a838b01612825565b909850965060208901359150808211156128c057600080fd5b6128cc8a838b01612825565b909650945060408901359150808211156128e557600080fd5b506128f289828a01612825565b979a9699509497509295939492505050565b60006020828403121561291657600080fd5b611fc7826127e2565b801515811461149657600080fd5b60006020828403121561293f57600080fd5b8135611fc78161291f565b60006020828403121561295c57600080fd5b8135611fc781612720565b67ffffffffffffffff8116811461149657600080fd5b60008060006060848603121561299257600080fd5b61299b846127e2565b92506020840135915060408401356129b281612967565b809150509250925092565b60008060008060a085870312156129d357600080fd5b6129dd86866126bf565b9350606085013567ffffffffffffffff8111156129f957600080fd5b612a05878288016126d7565b9094509250506080850135612a1981612720565b939692955090935050565b803560ff811681146127f657600080fd5b60008060008060608587031215612a4b57600080fd5b612a54856127e2565b9350612a6260208601612a24565b9250604085013567ffffffffffffffff811115612a7e57600080fd5b612a8a878288016126d7565b95989497509550505050565b60008060208385031215612aa957600080fd5b823567ffffffffffffffff811115612ac057600080fd5b612acc85828601612825565b90969095509350505050565b600080600080600080600060a0888a031215612af357600080fd5b8735612afe81612720565b965060208801359550604088013567ffffffffffffffff80821115612b2257600080fd5b612b2e8b838c016126d7565b909750955060608a01359150612b4382612720565b909350608089013590808211156127c257600080fd5b60008060408385031215612b6c57600080fd5b823561281781612720565b600060608284031215612b8957600080fd5b611fc783836126bf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561097c5761097c612b93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c1657600080fd5b611fc782612a24565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c5457600080fd5b83018035915067ffffffffffffffff821115612c6f57600080fd5b60200191503681900382131561271957600080fd5b600067ffffffffffffffff808316818103612ca157612ca1612b93565b6001019392505050565b67ffffffffffffffff818116838216019080821115612ccc57612ccc612b93565b5092915050565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612d0757600080fd5b9190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff612d68896127e2565b1681526020880135602082015260006040890135612d8581612967565b67ffffffffffffffff811660408401525087606083015260e06080830152612db160e083018789612d11565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c0840152612de0818587612d11565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015612e38578181015183820152602001612e20565b50506000910152565b600060208284031215612e5357600080fd5b815167ffffffffffffffff80821115612e6b57600080fd5b818401915084601f830112612e7f57600080fd5b815181811115612e9157612e91612dee565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715612ed757612ed7612dee565b81604052828152876020848701011115612ef057600080fd5b611c1c836020830160208801612e1d565b60008151808452612f19816020860160208601612e1d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611fc76020830184612f01565b8082018082111561097c5761097c612b93565b600060208284031215612f8357600080fd5b8135611fc781612967565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbf57612fbf612b93565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015261ffff84166040820152608060608201526000611c1c608083018486612d11565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261303c60e0840182612f01565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526130778282612f01565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b6000604082840312156130bc57600080fd5b6040516040810181811067ffffffffffffffff821117156130df576130df612dee565b604052825181526020928301519281019290925250919050565b60006080828403121561310b57600080fd5b6040516060810181811067ffffffffffffffff8211171561312e5761312e612dee565b60405282518152602083015161314381612967565b602082015261315584604085016130aa565b60408201529392505050565b6000808585111561317157600080fd5b8386111561317e57600080fd5b5050820193919092039150565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156131cb5780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156131cb5760049490940360031b84901b1690921692915050565b60006040828403121561322b57600080fd5b611fc783836130aa565b8035602083101561097c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561328357600080fd5b8151611fc781612720565b61ffff818116838216019080821115612ccc57612ccc612b93565b600086516132bb818460208b01612e1d565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351613333816004840160208801612e1d565b01600401979650505050505050565b60006020828403121561335457600080fd5b8151611fc78161291f565b60008251612d07818460208701612e1d56fea264697066735822122014cad46b13b7f2e6b8500845ee4571a49748eca0c36049d5e64db1cca585c1ee64736f6c63430008160033",
923
+ "linkReferences": {},
924
+ "deployedLinkReferences": {}
925
+ }