@pendle/core-v2 5.12.2-cross-chain-pt → 6.0.0

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 (55) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  7. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  8. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  9. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.json +2 -2
  10. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  11. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
  12. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +4 -0
  13. package/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol +1 -3
  14. package/deployments/1-core.json +1 -2
  15. package/deployments/999-core.json +52 -0
  16. package/deployments/999-offchain-helper.json +7 -0
  17. package/package.json +6 -6
  18. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  19. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  20. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
  21. package/typechain-types/factories/PendleSparkLinearDiscountOracle__factory.ts +1 -1
  22. package/typechain-types/hardhat.d.ts +0 -108
  23. package/typechain-types/index.ts +0 -24
  24. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +0 -4
  25. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +0 -466
  26. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +0 -4
  27. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +0 -191
  28. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +0 -4
  29. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.json +0 -1265
  30. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.dbg.json +0 -4
  31. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.json +0 -1527
  32. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.dbg.json +0 -4
  33. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.json +0 -1558
  34. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.dbg.json +0 -4
  35. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.json +0 -1558
  36. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.dbg.json +0 -4
  37. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.json +0 -1558
  38. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +0 -4
  39. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.json +0 -928
  40. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +0 -4
  41. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.json +0 -57
  42. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +0 -4
  43. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.json +0 -302
  44. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +0 -4
  45. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.json +0 -34
  46. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +0 -4
  47. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.json +0 -81
  48. package/contracts/cross-chain/FixedPricePTAMM.sol +0 -121
  49. package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +0 -33
  50. package/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol +0 -12
  51. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +0 -61
  52. package/contracts/interfaces/IPBridgedPrincipalToken.sol +0 -11
  53. package/contracts/interfaces/IPChainlinkOracleEssential.sol +0 -11
  54. package/contracts/interfaces/IPFixedPricePTAMM.sol +0 -54
  55. package/contracts/interfaces/IPPTOFTAdapterFactory.sol +0 -12
@@ -1,1558 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "PendleBridgedPrincipalToken_6Decimals",
4
- "sourceName": "contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "string",
10
- "name": "_name",
11
- "type": "string"
12
- },
13
- {
14
- "internalType": "string",
15
- "name": "_symbol",
16
- "type": "string"
17
- },
18
- {
19
- "internalType": "address",
20
- "name": "_lzEndpoint",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "address",
25
- "name": "_delegate",
26
- "type": "address"
27
- },
28
- {
29
- "internalType": "uint256",
30
- "name": "_expiry",
31
- "type": "uint256"
32
- }
33
- ],
34
- "stateMutability": "nonpayable",
35
- "type": "constructor"
36
- },
37
- {
38
- "inputs": [],
39
- "name": "InvalidDelegate",
40
- "type": "error"
41
- },
42
- {
43
- "inputs": [],
44
- "name": "InvalidEndpointCall",
45
- "type": "error"
46
- },
47
- {
48
- "inputs": [],
49
- "name": "InvalidLocalDecimals",
50
- "type": "error"
51
- },
52
- {
53
- "inputs": [
54
- {
55
- "internalType": "bytes",
56
- "name": "options",
57
- "type": "bytes"
58
- }
59
- ],
60
- "name": "InvalidOptions",
61
- "type": "error"
62
- },
63
- {
64
- "inputs": [],
65
- "name": "LzTokenUnavailable",
66
- "type": "error"
67
- },
68
- {
69
- "inputs": [
70
- {
71
- "internalType": "uint32",
72
- "name": "eid",
73
- "type": "uint32"
74
- }
75
- ],
76
- "name": "NoPeer",
77
- "type": "error"
78
- },
79
- {
80
- "inputs": [
81
- {
82
- "internalType": "uint256",
83
- "name": "msgValue",
84
- "type": "uint256"
85
- }
86
- ],
87
- "name": "NotEnoughNative",
88
- "type": "error"
89
- },
90
- {
91
- "inputs": [
92
- {
93
- "internalType": "address",
94
- "name": "addr",
95
- "type": "address"
96
- }
97
- ],
98
- "name": "OnlyEndpoint",
99
- "type": "error"
100
- },
101
- {
102
- "inputs": [
103
- {
104
- "internalType": "uint32",
105
- "name": "eid",
106
- "type": "uint32"
107
- },
108
- {
109
- "internalType": "bytes32",
110
- "name": "sender",
111
- "type": "bytes32"
112
- }
113
- ],
114
- "name": "OnlyPeer",
115
- "type": "error"
116
- },
117
- {
118
- "inputs": [],
119
- "name": "OnlySelf",
120
- "type": "error"
121
- },
122
- {
123
- "inputs": [
124
- {
125
- "internalType": "bytes",
126
- "name": "result",
127
- "type": "bytes"
128
- }
129
- ],
130
- "name": "SimulationResult",
131
- "type": "error"
132
- },
133
- {
134
- "inputs": [
135
- {
136
- "internalType": "uint256",
137
- "name": "amountLD",
138
- "type": "uint256"
139
- },
140
- {
141
- "internalType": "uint256",
142
- "name": "minAmountLD",
143
- "type": "uint256"
144
- }
145
- ],
146
- "name": "SlippageExceeded",
147
- "type": "error"
148
- },
149
- {
150
- "anonymous": false,
151
- "inputs": [
152
- {
153
- "indexed": true,
154
- "internalType": "address",
155
- "name": "owner",
156
- "type": "address"
157
- },
158
- {
159
- "indexed": true,
160
- "internalType": "address",
161
- "name": "spender",
162
- "type": "address"
163
- },
164
- {
165
- "indexed": false,
166
- "internalType": "uint256",
167
- "name": "value",
168
- "type": "uint256"
169
- }
170
- ],
171
- "name": "Approval",
172
- "type": "event"
173
- },
174
- {
175
- "anonymous": false,
176
- "inputs": [
177
- {
178
- "components": [
179
- {
180
- "internalType": "uint32",
181
- "name": "eid",
182
- "type": "uint32"
183
- },
184
- {
185
- "internalType": "uint16",
186
- "name": "msgType",
187
- "type": "uint16"
188
- },
189
- {
190
- "internalType": "bytes",
191
- "name": "options",
192
- "type": "bytes"
193
- }
194
- ],
195
- "indexed": false,
196
- "internalType": "struct EnforcedOptionParam[]",
197
- "name": "_enforcedOptions",
198
- "type": "tuple[]"
199
- }
200
- ],
201
- "name": "EnforcedOptionSet",
202
- "type": "event"
203
- },
204
- {
205
- "anonymous": false,
206
- "inputs": [
207
- {
208
- "indexed": false,
209
- "internalType": "address",
210
- "name": "inspector",
211
- "type": "address"
212
- }
213
- ],
214
- "name": "MsgInspectorSet",
215
- "type": "event"
216
- },
217
- {
218
- "anonymous": false,
219
- "inputs": [
220
- {
221
- "indexed": true,
222
- "internalType": "bytes32",
223
- "name": "guid",
224
- "type": "bytes32"
225
- },
226
- {
227
- "indexed": false,
228
- "internalType": "uint32",
229
- "name": "srcEid",
230
- "type": "uint32"
231
- },
232
- {
233
- "indexed": true,
234
- "internalType": "address",
235
- "name": "toAddress",
236
- "type": "address"
237
- },
238
- {
239
- "indexed": false,
240
- "internalType": "uint256",
241
- "name": "amountReceivedLD",
242
- "type": "uint256"
243
- }
244
- ],
245
- "name": "OFTReceived",
246
- "type": "event"
247
- },
248
- {
249
- "anonymous": false,
250
- "inputs": [
251
- {
252
- "indexed": true,
253
- "internalType": "bytes32",
254
- "name": "guid",
255
- "type": "bytes32"
256
- },
257
- {
258
- "indexed": false,
259
- "internalType": "uint32",
260
- "name": "dstEid",
261
- "type": "uint32"
262
- },
263
- {
264
- "indexed": true,
265
- "internalType": "address",
266
- "name": "fromAddress",
267
- "type": "address"
268
- },
269
- {
270
- "indexed": false,
271
- "internalType": "uint256",
272
- "name": "amountSentLD",
273
- "type": "uint256"
274
- },
275
- {
276
- "indexed": false,
277
- "internalType": "uint256",
278
- "name": "amountReceivedLD",
279
- "type": "uint256"
280
- }
281
- ],
282
- "name": "OFTSent",
283
- "type": "event"
284
- },
285
- {
286
- "anonymous": false,
287
- "inputs": [
288
- {
289
- "indexed": true,
290
- "internalType": "address",
291
- "name": "previousOwner",
292
- "type": "address"
293
- },
294
- {
295
- "indexed": true,
296
- "internalType": "address",
297
- "name": "newOwner",
298
- "type": "address"
299
- }
300
- ],
301
- "name": "OwnershipTransferred",
302
- "type": "event"
303
- },
304
- {
305
- "anonymous": false,
306
- "inputs": [
307
- {
308
- "indexed": false,
309
- "internalType": "uint32",
310
- "name": "eid",
311
- "type": "uint32"
312
- },
313
- {
314
- "indexed": false,
315
- "internalType": "bytes32",
316
- "name": "peer",
317
- "type": "bytes32"
318
- }
319
- ],
320
- "name": "PeerSet",
321
- "type": "event"
322
- },
323
- {
324
- "anonymous": false,
325
- "inputs": [
326
- {
327
- "indexed": false,
328
- "internalType": "address",
329
- "name": "preCrimeAddress",
330
- "type": "address"
331
- }
332
- ],
333
- "name": "PreCrimeSet",
334
- "type": "event"
335
- },
336
- {
337
- "anonymous": false,
338
- "inputs": [
339
- {
340
- "indexed": true,
341
- "internalType": "address",
342
- "name": "from",
343
- "type": "address"
344
- },
345
- {
346
- "indexed": true,
347
- "internalType": "address",
348
- "name": "to",
349
- "type": "address"
350
- },
351
- {
352
- "indexed": false,
353
- "internalType": "uint256",
354
- "name": "value",
355
- "type": "uint256"
356
- }
357
- ],
358
- "name": "Transfer",
359
- "type": "event"
360
- },
361
- {
362
- "inputs": [],
363
- "name": "SEND",
364
- "outputs": [
365
- {
366
- "internalType": "uint16",
367
- "name": "",
368
- "type": "uint16"
369
- }
370
- ],
371
- "stateMutability": "view",
372
- "type": "function"
373
- },
374
- {
375
- "inputs": [],
376
- "name": "SEND_AND_CALL",
377
- "outputs": [
378
- {
379
- "internalType": "uint16",
380
- "name": "",
381
- "type": "uint16"
382
- }
383
- ],
384
- "stateMutability": "view",
385
- "type": "function"
386
- },
387
- {
388
- "inputs": [
389
- {
390
- "components": [
391
- {
392
- "internalType": "uint32",
393
- "name": "srcEid",
394
- "type": "uint32"
395
- },
396
- {
397
- "internalType": "bytes32",
398
- "name": "sender",
399
- "type": "bytes32"
400
- },
401
- {
402
- "internalType": "uint64",
403
- "name": "nonce",
404
- "type": "uint64"
405
- }
406
- ],
407
- "internalType": "struct Origin",
408
- "name": "origin",
409
- "type": "tuple"
410
- }
411
- ],
412
- "name": "allowInitializePath",
413
- "outputs": [
414
- {
415
- "internalType": "bool",
416
- "name": "",
417
- "type": "bool"
418
- }
419
- ],
420
- "stateMutability": "view",
421
- "type": "function"
422
- },
423
- {
424
- "inputs": [
425
- {
426
- "internalType": "address",
427
- "name": "owner",
428
- "type": "address"
429
- },
430
- {
431
- "internalType": "address",
432
- "name": "spender",
433
- "type": "address"
434
- }
435
- ],
436
- "name": "allowance",
437
- "outputs": [
438
- {
439
- "internalType": "uint256",
440
- "name": "",
441
- "type": "uint256"
442
- }
443
- ],
444
- "stateMutability": "view",
445
- "type": "function"
446
- },
447
- {
448
- "inputs": [],
449
- "name": "approvalRequired",
450
- "outputs": [
451
- {
452
- "internalType": "bool",
453
- "name": "",
454
- "type": "bool"
455
- }
456
- ],
457
- "stateMutability": "pure",
458
- "type": "function"
459
- },
460
- {
461
- "inputs": [
462
- {
463
- "internalType": "address",
464
- "name": "spender",
465
- "type": "address"
466
- },
467
- {
468
- "internalType": "uint256",
469
- "name": "amount",
470
- "type": "uint256"
471
- }
472
- ],
473
- "name": "approve",
474
- "outputs": [
475
- {
476
- "internalType": "bool",
477
- "name": "",
478
- "type": "bool"
479
- }
480
- ],
481
- "stateMutability": "nonpayable",
482
- "type": "function"
483
- },
484
- {
485
- "inputs": [
486
- {
487
- "internalType": "address",
488
- "name": "account",
489
- "type": "address"
490
- }
491
- ],
492
- "name": "balanceOf",
493
- "outputs": [
494
- {
495
- "internalType": "uint256",
496
- "name": "",
497
- "type": "uint256"
498
- }
499
- ],
500
- "stateMutability": "view",
501
- "type": "function"
502
- },
503
- {
504
- "inputs": [
505
- {
506
- "internalType": "uint32",
507
- "name": "_eid",
508
- "type": "uint32"
509
- },
510
- {
511
- "internalType": "uint16",
512
- "name": "_msgType",
513
- "type": "uint16"
514
- },
515
- {
516
- "internalType": "bytes",
517
- "name": "_extraOptions",
518
- "type": "bytes"
519
- }
520
- ],
521
- "name": "combineOptions",
522
- "outputs": [
523
- {
524
- "internalType": "bytes",
525
- "name": "",
526
- "type": "bytes"
527
- }
528
- ],
529
- "stateMutability": "view",
530
- "type": "function"
531
- },
532
- {
533
- "inputs": [],
534
- "name": "decimalConversionRate",
535
- "outputs": [
536
- {
537
- "internalType": "uint256",
538
- "name": "",
539
- "type": "uint256"
540
- }
541
- ],
542
- "stateMutability": "view",
543
- "type": "function"
544
- },
545
- {
546
- "inputs": [],
547
- "name": "decimals",
548
- "outputs": [
549
- {
550
- "internalType": "uint8",
551
- "name": "",
552
- "type": "uint8"
553
- }
554
- ],
555
- "stateMutability": "pure",
556
- "type": "function"
557
- },
558
- {
559
- "inputs": [
560
- {
561
- "internalType": "address",
562
- "name": "spender",
563
- "type": "address"
564
- },
565
- {
566
- "internalType": "uint256",
567
- "name": "subtractedValue",
568
- "type": "uint256"
569
- }
570
- ],
571
- "name": "decreaseAllowance",
572
- "outputs": [
573
- {
574
- "internalType": "bool",
575
- "name": "",
576
- "type": "bool"
577
- }
578
- ],
579
- "stateMutability": "nonpayable",
580
- "type": "function"
581
- },
582
- {
583
- "inputs": [],
584
- "name": "endpoint",
585
- "outputs": [
586
- {
587
- "internalType": "contract ILayerZeroEndpointV2",
588
- "name": "",
589
- "type": "address"
590
- }
591
- ],
592
- "stateMutability": "view",
593
- "type": "function"
594
- },
595
- {
596
- "inputs": [
597
- {
598
- "internalType": "uint32",
599
- "name": "eid",
600
- "type": "uint32"
601
- },
602
- {
603
- "internalType": "uint16",
604
- "name": "msgType",
605
- "type": "uint16"
606
- }
607
- ],
608
- "name": "enforcedOptions",
609
- "outputs": [
610
- {
611
- "internalType": "bytes",
612
- "name": "enforcedOption",
613
- "type": "bytes"
614
- }
615
- ],
616
- "stateMutability": "view",
617
- "type": "function"
618
- },
619
- {
620
- "inputs": [],
621
- "name": "expiry",
622
- "outputs": [
623
- {
624
- "internalType": "uint256",
625
- "name": "",
626
- "type": "uint256"
627
- }
628
- ],
629
- "stateMutability": "view",
630
- "type": "function"
631
- },
632
- {
633
- "inputs": [
634
- {
635
- "internalType": "address",
636
- "name": "spender",
637
- "type": "address"
638
- },
639
- {
640
- "internalType": "uint256",
641
- "name": "addedValue",
642
- "type": "uint256"
643
- }
644
- ],
645
- "name": "increaseAllowance",
646
- "outputs": [
647
- {
648
- "internalType": "bool",
649
- "name": "",
650
- "type": "bool"
651
- }
652
- ],
653
- "stateMutability": "nonpayable",
654
- "type": "function"
655
- },
656
- {
657
- "inputs": [
658
- {
659
- "components": [
660
- {
661
- "internalType": "uint32",
662
- "name": "srcEid",
663
- "type": "uint32"
664
- },
665
- {
666
- "internalType": "bytes32",
667
- "name": "sender",
668
- "type": "bytes32"
669
- },
670
- {
671
- "internalType": "uint64",
672
- "name": "nonce",
673
- "type": "uint64"
674
- }
675
- ],
676
- "internalType": "struct Origin",
677
- "name": "",
678
- "type": "tuple"
679
- },
680
- {
681
- "internalType": "bytes",
682
- "name": "",
683
- "type": "bytes"
684
- },
685
- {
686
- "internalType": "address",
687
- "name": "_sender",
688
- "type": "address"
689
- }
690
- ],
691
- "name": "isComposeMsgSender",
692
- "outputs": [
693
- {
694
- "internalType": "bool",
695
- "name": "",
696
- "type": "bool"
697
- }
698
- ],
699
- "stateMutability": "view",
700
- "type": "function"
701
- },
702
- {
703
- "inputs": [
704
- {
705
- "internalType": "uint32",
706
- "name": "_eid",
707
- "type": "uint32"
708
- },
709
- {
710
- "internalType": "bytes32",
711
- "name": "_peer",
712
- "type": "bytes32"
713
- }
714
- ],
715
- "name": "isPeer",
716
- "outputs": [
717
- {
718
- "internalType": "bool",
719
- "name": "",
720
- "type": "bool"
721
- }
722
- ],
723
- "stateMutability": "view",
724
- "type": "function"
725
- },
726
- {
727
- "inputs": [
728
- {
729
- "components": [
730
- {
731
- "internalType": "uint32",
732
- "name": "srcEid",
733
- "type": "uint32"
734
- },
735
- {
736
- "internalType": "bytes32",
737
- "name": "sender",
738
- "type": "bytes32"
739
- },
740
- {
741
- "internalType": "uint64",
742
- "name": "nonce",
743
- "type": "uint64"
744
- }
745
- ],
746
- "internalType": "struct Origin",
747
- "name": "_origin",
748
- "type": "tuple"
749
- },
750
- {
751
- "internalType": "bytes32",
752
- "name": "_guid",
753
- "type": "bytes32"
754
- },
755
- {
756
- "internalType": "bytes",
757
- "name": "_message",
758
- "type": "bytes"
759
- },
760
- {
761
- "internalType": "address",
762
- "name": "_executor",
763
- "type": "address"
764
- },
765
- {
766
- "internalType": "bytes",
767
- "name": "_extraData",
768
- "type": "bytes"
769
- }
770
- ],
771
- "name": "lzReceive",
772
- "outputs": [],
773
- "stateMutability": "payable",
774
- "type": "function"
775
- },
776
- {
777
- "inputs": [
778
- {
779
- "components": [
780
- {
781
- "components": [
782
- {
783
- "internalType": "uint32",
784
- "name": "srcEid",
785
- "type": "uint32"
786
- },
787
- {
788
- "internalType": "bytes32",
789
- "name": "sender",
790
- "type": "bytes32"
791
- },
792
- {
793
- "internalType": "uint64",
794
- "name": "nonce",
795
- "type": "uint64"
796
- }
797
- ],
798
- "internalType": "struct Origin",
799
- "name": "origin",
800
- "type": "tuple"
801
- },
802
- {
803
- "internalType": "uint32",
804
- "name": "dstEid",
805
- "type": "uint32"
806
- },
807
- {
808
- "internalType": "address",
809
- "name": "receiver",
810
- "type": "address"
811
- },
812
- {
813
- "internalType": "bytes32",
814
- "name": "guid",
815
- "type": "bytes32"
816
- },
817
- {
818
- "internalType": "uint256",
819
- "name": "value",
820
- "type": "uint256"
821
- },
822
- {
823
- "internalType": "address",
824
- "name": "executor",
825
- "type": "address"
826
- },
827
- {
828
- "internalType": "bytes",
829
- "name": "message",
830
- "type": "bytes"
831
- },
832
- {
833
- "internalType": "bytes",
834
- "name": "extraData",
835
- "type": "bytes"
836
- }
837
- ],
838
- "internalType": "struct InboundPacket[]",
839
- "name": "_packets",
840
- "type": "tuple[]"
841
- }
842
- ],
843
- "name": "lzReceiveAndRevert",
844
- "outputs": [],
845
- "stateMutability": "payable",
846
- "type": "function"
847
- },
848
- {
849
- "inputs": [
850
- {
851
- "components": [
852
- {
853
- "internalType": "uint32",
854
- "name": "srcEid",
855
- "type": "uint32"
856
- },
857
- {
858
- "internalType": "bytes32",
859
- "name": "sender",
860
- "type": "bytes32"
861
- },
862
- {
863
- "internalType": "uint64",
864
- "name": "nonce",
865
- "type": "uint64"
866
- }
867
- ],
868
- "internalType": "struct Origin",
869
- "name": "_origin",
870
- "type": "tuple"
871
- },
872
- {
873
- "internalType": "bytes32",
874
- "name": "_guid",
875
- "type": "bytes32"
876
- },
877
- {
878
- "internalType": "bytes",
879
- "name": "_message",
880
- "type": "bytes"
881
- },
882
- {
883
- "internalType": "address",
884
- "name": "_executor",
885
- "type": "address"
886
- },
887
- {
888
- "internalType": "bytes",
889
- "name": "_extraData",
890
- "type": "bytes"
891
- }
892
- ],
893
- "name": "lzReceiveSimulate",
894
- "outputs": [],
895
- "stateMutability": "payable",
896
- "type": "function"
897
- },
898
- {
899
- "inputs": [],
900
- "name": "msgInspector",
901
- "outputs": [
902
- {
903
- "internalType": "address",
904
- "name": "",
905
- "type": "address"
906
- }
907
- ],
908
- "stateMutability": "view",
909
- "type": "function"
910
- },
911
- {
912
- "inputs": [],
913
- "name": "name",
914
- "outputs": [
915
- {
916
- "internalType": "string",
917
- "name": "",
918
- "type": "string"
919
- }
920
- ],
921
- "stateMutability": "view",
922
- "type": "function"
923
- },
924
- {
925
- "inputs": [
926
- {
927
- "internalType": "uint32",
928
- "name": "",
929
- "type": "uint32"
930
- },
931
- {
932
- "internalType": "bytes32",
933
- "name": "",
934
- "type": "bytes32"
935
- }
936
- ],
937
- "name": "nextNonce",
938
- "outputs": [
939
- {
940
- "internalType": "uint64",
941
- "name": "nonce",
942
- "type": "uint64"
943
- }
944
- ],
945
- "stateMutability": "view",
946
- "type": "function"
947
- },
948
- {
949
- "inputs": [],
950
- "name": "oApp",
951
- "outputs": [
952
- {
953
- "internalType": "address",
954
- "name": "",
955
- "type": "address"
956
- }
957
- ],
958
- "stateMutability": "view",
959
- "type": "function"
960
- },
961
- {
962
- "inputs": [],
963
- "name": "oAppVersion",
964
- "outputs": [
965
- {
966
- "internalType": "uint64",
967
- "name": "senderVersion",
968
- "type": "uint64"
969
- },
970
- {
971
- "internalType": "uint64",
972
- "name": "receiverVersion",
973
- "type": "uint64"
974
- }
975
- ],
976
- "stateMutability": "pure",
977
- "type": "function"
978
- },
979
- {
980
- "inputs": [],
981
- "name": "oftVersion",
982
- "outputs": [
983
- {
984
- "internalType": "bytes4",
985
- "name": "interfaceId",
986
- "type": "bytes4"
987
- },
988
- {
989
- "internalType": "uint64",
990
- "name": "version",
991
- "type": "uint64"
992
- }
993
- ],
994
- "stateMutability": "pure",
995
- "type": "function"
996
- },
997
- {
998
- "inputs": [],
999
- "name": "owner",
1000
- "outputs": [
1001
- {
1002
- "internalType": "address",
1003
- "name": "",
1004
- "type": "address"
1005
- }
1006
- ],
1007
- "stateMutability": "view",
1008
- "type": "function"
1009
- },
1010
- {
1011
- "inputs": [
1012
- {
1013
- "internalType": "uint32",
1014
- "name": "eid",
1015
- "type": "uint32"
1016
- }
1017
- ],
1018
- "name": "peers",
1019
- "outputs": [
1020
- {
1021
- "internalType": "bytes32",
1022
- "name": "peer",
1023
- "type": "bytes32"
1024
- }
1025
- ],
1026
- "stateMutability": "view",
1027
- "type": "function"
1028
- },
1029
- {
1030
- "inputs": [],
1031
- "name": "preCrime",
1032
- "outputs": [
1033
- {
1034
- "internalType": "address",
1035
- "name": "",
1036
- "type": "address"
1037
- }
1038
- ],
1039
- "stateMutability": "view",
1040
- "type": "function"
1041
- },
1042
- {
1043
- "inputs": [
1044
- {
1045
- "components": [
1046
- {
1047
- "internalType": "uint32",
1048
- "name": "dstEid",
1049
- "type": "uint32"
1050
- },
1051
- {
1052
- "internalType": "bytes32",
1053
- "name": "to",
1054
- "type": "bytes32"
1055
- },
1056
- {
1057
- "internalType": "uint256",
1058
- "name": "amountLD",
1059
- "type": "uint256"
1060
- },
1061
- {
1062
- "internalType": "uint256",
1063
- "name": "minAmountLD",
1064
- "type": "uint256"
1065
- },
1066
- {
1067
- "internalType": "bytes",
1068
- "name": "extraOptions",
1069
- "type": "bytes"
1070
- },
1071
- {
1072
- "internalType": "bytes",
1073
- "name": "composeMsg",
1074
- "type": "bytes"
1075
- },
1076
- {
1077
- "internalType": "bytes",
1078
- "name": "oftCmd",
1079
- "type": "bytes"
1080
- }
1081
- ],
1082
- "internalType": "struct SendParam",
1083
- "name": "_sendParam",
1084
- "type": "tuple"
1085
- }
1086
- ],
1087
- "name": "quoteOFT",
1088
- "outputs": [
1089
- {
1090
- "components": [
1091
- {
1092
- "internalType": "uint256",
1093
- "name": "minAmountLD",
1094
- "type": "uint256"
1095
- },
1096
- {
1097
- "internalType": "uint256",
1098
- "name": "maxAmountLD",
1099
- "type": "uint256"
1100
- }
1101
- ],
1102
- "internalType": "struct OFTLimit",
1103
- "name": "oftLimit",
1104
- "type": "tuple"
1105
- },
1106
- {
1107
- "components": [
1108
- {
1109
- "internalType": "int256",
1110
- "name": "feeAmountLD",
1111
- "type": "int256"
1112
- },
1113
- {
1114
- "internalType": "string",
1115
- "name": "description",
1116
- "type": "string"
1117
- }
1118
- ],
1119
- "internalType": "struct OFTFeeDetail[]",
1120
- "name": "oftFeeDetails",
1121
- "type": "tuple[]"
1122
- },
1123
- {
1124
- "components": [
1125
- {
1126
- "internalType": "uint256",
1127
- "name": "amountSentLD",
1128
- "type": "uint256"
1129
- },
1130
- {
1131
- "internalType": "uint256",
1132
- "name": "amountReceivedLD",
1133
- "type": "uint256"
1134
- }
1135
- ],
1136
- "internalType": "struct OFTReceipt",
1137
- "name": "oftReceipt",
1138
- "type": "tuple"
1139
- }
1140
- ],
1141
- "stateMutability": "view",
1142
- "type": "function"
1143
- },
1144
- {
1145
- "inputs": [
1146
- {
1147
- "components": [
1148
- {
1149
- "internalType": "uint32",
1150
- "name": "dstEid",
1151
- "type": "uint32"
1152
- },
1153
- {
1154
- "internalType": "bytes32",
1155
- "name": "to",
1156
- "type": "bytes32"
1157
- },
1158
- {
1159
- "internalType": "uint256",
1160
- "name": "amountLD",
1161
- "type": "uint256"
1162
- },
1163
- {
1164
- "internalType": "uint256",
1165
- "name": "minAmountLD",
1166
- "type": "uint256"
1167
- },
1168
- {
1169
- "internalType": "bytes",
1170
- "name": "extraOptions",
1171
- "type": "bytes"
1172
- },
1173
- {
1174
- "internalType": "bytes",
1175
- "name": "composeMsg",
1176
- "type": "bytes"
1177
- },
1178
- {
1179
- "internalType": "bytes",
1180
- "name": "oftCmd",
1181
- "type": "bytes"
1182
- }
1183
- ],
1184
- "internalType": "struct SendParam",
1185
- "name": "_sendParam",
1186
- "type": "tuple"
1187
- },
1188
- {
1189
- "internalType": "bool",
1190
- "name": "_payInLzToken",
1191
- "type": "bool"
1192
- }
1193
- ],
1194
- "name": "quoteSend",
1195
- "outputs": [
1196
- {
1197
- "components": [
1198
- {
1199
- "internalType": "uint256",
1200
- "name": "nativeFee",
1201
- "type": "uint256"
1202
- },
1203
- {
1204
- "internalType": "uint256",
1205
- "name": "lzTokenFee",
1206
- "type": "uint256"
1207
- }
1208
- ],
1209
- "internalType": "struct MessagingFee",
1210
- "name": "msgFee",
1211
- "type": "tuple"
1212
- }
1213
- ],
1214
- "stateMutability": "view",
1215
- "type": "function"
1216
- },
1217
- {
1218
- "inputs": [],
1219
- "name": "renounceOwnership",
1220
- "outputs": [],
1221
- "stateMutability": "nonpayable",
1222
- "type": "function"
1223
- },
1224
- {
1225
- "inputs": [
1226
- {
1227
- "components": [
1228
- {
1229
- "internalType": "uint32",
1230
- "name": "dstEid",
1231
- "type": "uint32"
1232
- },
1233
- {
1234
- "internalType": "bytes32",
1235
- "name": "to",
1236
- "type": "bytes32"
1237
- },
1238
- {
1239
- "internalType": "uint256",
1240
- "name": "amountLD",
1241
- "type": "uint256"
1242
- },
1243
- {
1244
- "internalType": "uint256",
1245
- "name": "minAmountLD",
1246
- "type": "uint256"
1247
- },
1248
- {
1249
- "internalType": "bytes",
1250
- "name": "extraOptions",
1251
- "type": "bytes"
1252
- },
1253
- {
1254
- "internalType": "bytes",
1255
- "name": "composeMsg",
1256
- "type": "bytes"
1257
- },
1258
- {
1259
- "internalType": "bytes",
1260
- "name": "oftCmd",
1261
- "type": "bytes"
1262
- }
1263
- ],
1264
- "internalType": "struct SendParam",
1265
- "name": "_sendParam",
1266
- "type": "tuple"
1267
- },
1268
- {
1269
- "components": [
1270
- {
1271
- "internalType": "uint256",
1272
- "name": "nativeFee",
1273
- "type": "uint256"
1274
- },
1275
- {
1276
- "internalType": "uint256",
1277
- "name": "lzTokenFee",
1278
- "type": "uint256"
1279
- }
1280
- ],
1281
- "internalType": "struct MessagingFee",
1282
- "name": "_fee",
1283
- "type": "tuple"
1284
- },
1285
- {
1286
- "internalType": "address",
1287
- "name": "_refundAddress",
1288
- "type": "address"
1289
- }
1290
- ],
1291
- "name": "send",
1292
- "outputs": [
1293
- {
1294
- "components": [
1295
- {
1296
- "internalType": "bytes32",
1297
- "name": "guid",
1298
- "type": "bytes32"
1299
- },
1300
- {
1301
- "internalType": "uint64",
1302
- "name": "nonce",
1303
- "type": "uint64"
1304
- },
1305
- {
1306
- "components": [
1307
- {
1308
- "internalType": "uint256",
1309
- "name": "nativeFee",
1310
- "type": "uint256"
1311
- },
1312
- {
1313
- "internalType": "uint256",
1314
- "name": "lzTokenFee",
1315
- "type": "uint256"
1316
- }
1317
- ],
1318
- "internalType": "struct MessagingFee",
1319
- "name": "fee",
1320
- "type": "tuple"
1321
- }
1322
- ],
1323
- "internalType": "struct MessagingReceipt",
1324
- "name": "msgReceipt",
1325
- "type": "tuple"
1326
- },
1327
- {
1328
- "components": [
1329
- {
1330
- "internalType": "uint256",
1331
- "name": "amountSentLD",
1332
- "type": "uint256"
1333
- },
1334
- {
1335
- "internalType": "uint256",
1336
- "name": "amountReceivedLD",
1337
- "type": "uint256"
1338
- }
1339
- ],
1340
- "internalType": "struct OFTReceipt",
1341
- "name": "oftReceipt",
1342
- "type": "tuple"
1343
- }
1344
- ],
1345
- "stateMutability": "payable",
1346
- "type": "function"
1347
- },
1348
- {
1349
- "inputs": [
1350
- {
1351
- "internalType": "address",
1352
- "name": "_delegate",
1353
- "type": "address"
1354
- }
1355
- ],
1356
- "name": "setDelegate",
1357
- "outputs": [],
1358
- "stateMutability": "nonpayable",
1359
- "type": "function"
1360
- },
1361
- {
1362
- "inputs": [
1363
- {
1364
- "components": [
1365
- {
1366
- "internalType": "uint32",
1367
- "name": "eid",
1368
- "type": "uint32"
1369
- },
1370
- {
1371
- "internalType": "uint16",
1372
- "name": "msgType",
1373
- "type": "uint16"
1374
- },
1375
- {
1376
- "internalType": "bytes",
1377
- "name": "options",
1378
- "type": "bytes"
1379
- }
1380
- ],
1381
- "internalType": "struct EnforcedOptionParam[]",
1382
- "name": "_enforcedOptions",
1383
- "type": "tuple[]"
1384
- }
1385
- ],
1386
- "name": "setEnforcedOptions",
1387
- "outputs": [],
1388
- "stateMutability": "nonpayable",
1389
- "type": "function"
1390
- },
1391
- {
1392
- "inputs": [
1393
- {
1394
- "internalType": "address",
1395
- "name": "_msgInspector",
1396
- "type": "address"
1397
- }
1398
- ],
1399
- "name": "setMsgInspector",
1400
- "outputs": [],
1401
- "stateMutability": "nonpayable",
1402
- "type": "function"
1403
- },
1404
- {
1405
- "inputs": [
1406
- {
1407
- "internalType": "uint32",
1408
- "name": "_eid",
1409
- "type": "uint32"
1410
- },
1411
- {
1412
- "internalType": "bytes32",
1413
- "name": "_peer",
1414
- "type": "bytes32"
1415
- }
1416
- ],
1417
- "name": "setPeer",
1418
- "outputs": [],
1419
- "stateMutability": "nonpayable",
1420
- "type": "function"
1421
- },
1422
- {
1423
- "inputs": [
1424
- {
1425
- "internalType": "address",
1426
- "name": "_preCrime",
1427
- "type": "address"
1428
- }
1429
- ],
1430
- "name": "setPreCrime",
1431
- "outputs": [],
1432
- "stateMutability": "nonpayable",
1433
- "type": "function"
1434
- },
1435
- {
1436
- "inputs": [],
1437
- "name": "sharedDecimals",
1438
- "outputs": [
1439
- {
1440
- "internalType": "uint8",
1441
- "name": "",
1442
- "type": "uint8"
1443
- }
1444
- ],
1445
- "stateMutability": "pure",
1446
- "type": "function"
1447
- },
1448
- {
1449
- "inputs": [],
1450
- "name": "symbol",
1451
- "outputs": [
1452
- {
1453
- "internalType": "string",
1454
- "name": "",
1455
- "type": "string"
1456
- }
1457
- ],
1458
- "stateMutability": "view",
1459
- "type": "function"
1460
- },
1461
- {
1462
- "inputs": [],
1463
- "name": "token",
1464
- "outputs": [
1465
- {
1466
- "internalType": "address",
1467
- "name": "",
1468
- "type": "address"
1469
- }
1470
- ],
1471
- "stateMutability": "view",
1472
- "type": "function"
1473
- },
1474
- {
1475
- "inputs": [],
1476
- "name": "totalSupply",
1477
- "outputs": [
1478
- {
1479
- "internalType": "uint256",
1480
- "name": "",
1481
- "type": "uint256"
1482
- }
1483
- ],
1484
- "stateMutability": "view",
1485
- "type": "function"
1486
- },
1487
- {
1488
- "inputs": [
1489
- {
1490
- "internalType": "address",
1491
- "name": "to",
1492
- "type": "address"
1493
- },
1494
- {
1495
- "internalType": "uint256",
1496
- "name": "amount",
1497
- "type": "uint256"
1498
- }
1499
- ],
1500
- "name": "transfer",
1501
- "outputs": [
1502
- {
1503
- "internalType": "bool",
1504
- "name": "",
1505
- "type": "bool"
1506
- }
1507
- ],
1508
- "stateMutability": "nonpayable",
1509
- "type": "function"
1510
- },
1511
- {
1512
- "inputs": [
1513
- {
1514
- "internalType": "address",
1515
- "name": "from",
1516
- "type": "address"
1517
- },
1518
- {
1519
- "internalType": "address",
1520
- "name": "to",
1521
- "type": "address"
1522
- },
1523
- {
1524
- "internalType": "uint256",
1525
- "name": "amount",
1526
- "type": "uint256"
1527
- }
1528
- ],
1529
- "name": "transferFrom",
1530
- "outputs": [
1531
- {
1532
- "internalType": "bool",
1533
- "name": "",
1534
- "type": "bool"
1535
- }
1536
- ],
1537
- "stateMutability": "nonpayable",
1538
- "type": "function"
1539
- },
1540
- {
1541
- "inputs": [
1542
- {
1543
- "internalType": "address",
1544
- "name": "newOwner",
1545
- "type": "address"
1546
- }
1547
- ],
1548
- "name": "transferOwnership",
1549
- "outputs": [],
1550
- "stateMutability": "nonpayable",
1551
- "type": "function"
1552
- }
1553
- ],
1554
- "bytecode": "0x60e06040523480156200001157600080fd5b5060405162003b4338038062003b438339810160408190526200003491620002b2565b8484848484848484848383600684848181818162000052336200017d565b6001600160a01b0380831660805281166200008057604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000c857600080fd5b505af1158015620000dd573d6000803e3d6000fd5b5050505050505050620000f56200017860201b60201c565b60ff168360ff1610156200011c576040516301e9714b60e41b815260040160405180910390fd5b6200012960068462000361565b6200013690600a62000480565b60a05250600891506200014c9050838262000529565b5060096200015b828262000529565b50505060c09490945250620005f59b505050505050505050505050565b600690565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001f557600080fd5b81516001600160401b0380821115620002125762000212620001cd565b604051601f8301601f19908116603f011681019082821181831017156200023d576200023d620001cd565b81604052838152602092508660208588010111156200025b57600080fd5b600091505b838210156200027f578582018301518183018401529082019062000260565b6000602085830101528094505050505092915050565b80516001600160a01b0381168114620002ad57600080fd5b919050565b600080600080600060a08688031215620002cb57600080fd5b85516001600160401b0380821115620002e357600080fd5b620002f189838a01620001e3565b965060208801519150808211156200030857600080fd5b506200031788828901620001e3565b945050620003286040870162000295565b9250620003386060870162000295565b9150608086015190509295509295909350565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156200037d576200037d6200034b565b92915050565b600181815b80851115620003c4578160001904821115620003a857620003a86200034b565b80851615620003b657918102915b93841c939080029062000388565b509250929050565b600082620003dd575060016200037d565b81620003ec575060006200037d565b8160018114620004055760028114620004105762000430565b60019150506200037d565b60ff8411156200042457620004246200034b565b50506001821b6200037d565b5060208310610133831016604e8410600b841016171562000455575081810a6200037d565b62000461838362000383565b80600019048211156200047857620004786200034b565b029392505050565b60006200049160ff841683620003cc565b9392505050565b600181811c90821680620004ad57607f821691505b602082108103620004ce57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000524576000816000526020600020601f850160051c81016020861015620004ff5750805b601f850160051c820191505b8181101562000520578281556001016200050b565b5050505b505050565b81516001600160401b03811115620005455762000545620001cd565b6200055d8162000556845462000498565b84620004d4565b602080601f8311600181146200059557600084156200057c5750858301515b600019600386901b1c1916600185901b17855562000520565b600085815260208120601f198616915b82811015620005c657888601518255948401946001909101908401620005a5565b5085821015620005e55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516134d86200066b60003960006107660152600081816105aa01528181611ccf01528181611d440152611e23015260008181610486015281816109f2015281816110d7015281816114ce0152818161198e01528181611f1b015281816121f001526122a701526134d86000f3fe6080604052600436106102025760003560e01c806306fdde0314610207578063095ea7b3146102325780630d35b41514610262578063111ecdad1461029157806313137d65146102be578063134d4f25146102d3578063156a0d0f146102fb57806317442b701461032257806318160ddd146103445780631f5e13341461036357806323b872dd14610378578063313ce567146103985780633400288b146103b457806339509351146103d45780633b6f743b146103f457806352ae2879146104215780635535d461146104345780635a0dfe4d146104545780635e280f11146104745780636fc1b31e146104a857806370a08231146104c8578063715018a6146104fe5780637d25a05e1461051357806382413eac1461054e578063857749b0146103985780638da5cb5b1461056e57806395d89b4114610583578063963efcaa146105985780639f68b964146105cc578063a457c2d7146105e0578063a9059cbb14610600578063b731ea0a14610620578063b98bd07014610640578063bb0b6a5314610660578063bc70b3541461068d578063bd815db0146106ad578063c7c7f5b3146106c0578063ca5eb5e1146106e1578063d045a0dc14610701578063d424388514610714578063dd62ed3e14610734578063e184c9be14610754578063f2fde38b14610788578063fc0c546a14610421578063ff7bd03d146107a8575b600080fd5b34801561021357600080fd5b5061021c6107c8565b604051610229919061257b565b60405180910390f35b34801561023e57600080fd5b5061025261024d3660046125a3565b61085a565b6040519015158152602001610229565b34801561026e57600080fd5b5061028261027d3660046125e7565b610874565b6040516102299392919061262a565b34801561029d57600080fd5b506004546102b1906001600160a01b031681565b60405161022991906126b8565b6102d16102cc366004612726565b6109f0565b005b3480156102df57600080fd5b506102e8600281565b60405161ffff9091168152602001610229565b34801561030757600080fd5b506040805162b9270b60e21b81526001602082015201610229565b34801561032e57600080fd5b5060408051600181526002602082015201610229565b34801561035057600080fd5b506007545b604051908152602001610229565b34801561036f57600080fd5b506102e8600181565b34801561038457600080fd5b506102526103933660046127c5565b610aa8565b3480156103a457600080fd5b5060405160068152602001610229565b3480156103c057600080fd5b506102d16103cf36600461281f565b610ace565b3480156103e057600080fd5b506102526103ef3660046125a3565b610ae4565b34801561040057600080fd5b5061041461040f366004612849565b610b06565b604051610229919061289a565b34801561042d57600080fd5b50306102b1565b34801561044057600080fd5b5061021c61044f3660046128ba565b610b61565b34801561046057600080fd5b5061025261046f36600461281f565b610c06565b34801561048057600080fd5b506102b17f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b457600080fd5b506102d16104c33660046128ed565b610c22565b3480156104d457600080fd5b506103556104e33660046128ed565b6001600160a01b031660009081526005602052604090205490565b34801561050a57600080fd5b506102d1610c80565b34801561051f57600080fd5b5061053661052e36600461281f565b600092915050565b6040516001600160401b039091168152602001610229565b34801561055a57600080fd5b5061025261056936600461290a565b610c94565b34801561057a57600080fd5b506102b1610ca9565b34801561058f57600080fd5b5061021c610cb8565b3480156105a457600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d857600080fd5b506000610252565b3480156105ec57600080fd5b506102526105fb3660046125a3565b610cc7565b34801561060c57600080fd5b5061025261061b3660046125a3565b610d4d565b34801561062c57600080fd5b506002546102b1906001600160a01b031681565b34801561064c57600080fd5b506102d161065b3660046129b4565b610d5b565b34801561066c57600080fd5b5061035561067b3660046129f5565b60016020526000908152604090205481565b34801561069957600080fd5b5061021c6106a8366004612a10565b610d75565b6102d16106bb3660046129b4565b610f1d565b6106d36106ce366004612a70565b611090565b604051610229929190612add565b3480156106ed57600080fd5b506102d16106fc3660046128ed565b6110b8565b6102d161070f366004612726565b611141565b34801561072057600080fd5b506102d161072f3660046128ed565b611170565b34801561074057600080fd5b5061035561074f366004612b19565b6111c3565b34801561076057600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b34801561079457600080fd5b506102d16107a33660046128ed565b6111ee565b3480156107b457600080fd5b506102526107c3366004612b47565b611267565b6060600880546107d790612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461080390612b63565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b5050505050905090565b60003361086881858561129d565b60019150505b92915050565b604080518082019091526000808252602082015260606108926124ed565b600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190612b97565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190612bb4565b604080518082018252848152602080820184905282516000808252918101909352909750919250906109ad565b6040805180820190915260008152606060208201528152602001906001900390816109855790505b5093506000806109d2604089013560608a01356109cd60208c018c6129f5565b6113c1565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a4457336040516391ac5e4f60e01b8152600401610a3b91906126b8565b60405180910390fd5b60208701803590610a5e90610a59908a6129f5565b6113fd565b14610a9057610a7060208801886129f5565b876020013560405163309afaf360e21b8152600401610a3b929190612be3565b610a9f87878787878787611439565b50505050505050565b600033610ab6858285611599565b610ac1858585611613565b60019150505b9392505050565b610ad66117ac565b610ae0828261180b565b5050565b600033610868818585610af783836111c3565b610b019190612c0f565b61129d565b610b0e6124ed565b6000610b2a604085013560608601356109cd60208801886129f5565b915050600080610b3a8684611861565b9092509050610b57610b4f60208801886129f5565b838388611984565b9695505050505050565b600360209081526000928352604080842090915290825290208054610b8590612b63565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb190612b63565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b505050505081565b63ffffffff919091166000908152600160205260409020541490565b610c2a6117ac565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419790610c759083906126b8565b60405180910390a150565b610c886117ac565b610c926000611a59565b565b6001600160a01b03811630145b949350505050565b6000546001600160a01b031690565b6060600980546107d790612b63565b60003381610cd582866111c3565b905083811015610d355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a3b565b610d42828686840361129d565b506001949350505050565b600033610868818585611613565b610d636117ac565b610ae0610d708284612cc3565b611aa9565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610da990612b63565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd590612b63565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b505050505090508051600003610e725783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca19350505050565b6000839003610e82579050610ca1565b60028310610f0057610ec984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bb092505050565b80610ed78460028188612dd8565b604051602001610ee993929190612e02565b604051602081830303815290604052915050610ca1565b8383604051639a6d49cd60e01b8152600401610a3b929190612e53565b60005b8181101561100f5736838383818110610f3b57610f3b612e67565b9050602002810190610f4d9190612e7d565b9050610f69610f5f60208301836129f5565b6020830135610c06565b610f735750611007565b3063d045a0dc60c08301358360a0810135610f92610100830183612e9e565b610fa3610100890160e08a016128ed565b610fb16101208a018a612e9e565b6040518963ffffffff1660e01b8152600401610fd39796959493929190612ef9565b6000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050505050505b600101610f20565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110769190810190612f7f565b604051638351eea760e01b8152600401610a3b919061257b565b611098612507565b6110a06124ed565b6110ab858585611bdc565b915091505b935093915050565b6110c06117ac565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e19061110c9084906004016126b8565b600060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b5050505050565b3330146111615760405163029a949d60e31b815260040160405180910390fd5b610a9f87878787878787610a90565b6111786117ac565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090610c759083906126b8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6111f66117ac565b6001600160a01b03811661125b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3b565b61126481611a59565b50565b600060208201803590600190839061127f90866129f5565b63ffffffff1681526020810191909152604001600020541492915050565b6001600160a01b0383166112ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a3b565b6001600160a01b0382166113605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a3b565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113cd85611ccb565b9150819050838110156110b0576040516371c4efed60e01b81526004810182905260248101859052604401610a3b565b63ffffffff81166000908152600160205260408120548061086e5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a3b565b600061144b6114488787611d02565b90565b90506000611477826114656114608a8a611d1a565b611d3d565b61147260208d018d6129f5565b611d72565b9050602886111561153e5760006114b461149760608c0160408d01612fec565b6114a460208d018d6129f5565b846114af8c8c611d9a565b611de5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061150a9086908d906000908790600401613009565b600060405180830381600087803b15801561152457600080fd5b505af1158015611538573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61157760208d018d6129f5565b84604051611586929190612be3565b60405180910390a3505050505050505050565b60006115a584846111c3565b9050600019811461160d57818110156116005760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a3b565b61160d848484840361129d565b50505050565b6001600160a01b0383166116775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a3b565b6001600160a01b0382166116d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a3b565b6001600160a01b038316600090815260056020526040902054818110156117515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a3b565b6001600160a01b0380851660008181526005602052604080822086860390559286168082529083902080548601905591516000805160206134838339815191529061179f9086815260200190565b60405180910390a361160d565b336117b5610ca9565b6001600160a01b031614610c925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a3b565b63ffffffff821660009081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906118559084908490612be3565b60405180910390a15050565b60608060006118be856020013561187786611e1c565b61188460a0890189612e9e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4892505050565b90935090506000816118d15760016118d4565b60025b90506118f46118e660208801886129f5565b826106a860808a018a612e9e565b6004549093506001600160a01b0316801561197a5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb90611937908890889060040161303a565b602060405180830381865afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611978919061305f565b505b5050509250929050565b61198c6124ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016119db896113fd565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a1092919061307c565b6040805180830381865afa158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190613125565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8151811015611b8057611adb828281518110611aca57611aca612e67565b602002602001015160400151611bb0565b818181518110611aed57611aed612e67565b60200260200101516040015160036000848481518110611b0f57611b0f612e67565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b4957611b49612e67565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611b779190613191565b50600101611aac565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c759190613250565b600281015161ffff8116600314610ae05781604051639a6d49cd60e01b8152600401610a3b919061257b565b611be4612507565b611bec6124ed565b600080611c0f33604089013560608a0135611c0a60208c018c6129f5565b611ec2565b91509150600080611c208984611861565b9092509050611c4c611c3560208b018b6129f5565b8383611c46368d90038d018d6132db565b8b611ee8565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611c9a908d018d6129f5565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b60007f0000000000000000000000000000000000000000000000000000000000000000611cf8818461330d565b61086e919061332f565b6000611d116020828486612dd8565b610ac791613346565b6000611d2a602860208486612dd8565b611d3391613364565b60c01c9392505050565b600061086e7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661332f565b60006001600160a01b038416611d885761dead93505b611d928484611ff3565b509092915050565b6060611da98260288186612dd8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b606084848484604051602001611dfe9493929190613394565b6040516020818303038152906040529050949350505050565b505050565b600061086e7f00000000000000000000000000000000000000000000000000000000000000008361330d565b8051606090151580611e91578484604051602001611e7d92919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611eb8565b84843385604051602001611ea894939291906133e6565b6040516020818303038152906040525b9150935093915050565b600080611ed08585856113c1565b9092509050611edf86836120a2565b94509492505050565b611ef0612507565b6000611eff84600001516121c4565b602085015190915015611f1957611f1984602001516121ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611f698c6113fd565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611fa592919061307c565b60806040518083038185885af1158015611fc3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fe89190613426565b979650505050505050565b6001600160a01b0382166120495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a3b565b806007600082825461205b9190612c0f565b90915550506001600160a01b038216600081815260056020908152604080832080548601905551848152600080516020613483833981519152910160405180910390a35050565b6001600160a01b0382166121025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a3b565b6001600160a01b038216600090815260056020526040902054818110156121765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a3b565b6001600160a01b0383166000818152600560209081526040808320868603905560078054879003905551858152919291600080516020613483833981519152910160405180910390a3505050565b60008134146121e8576040516304fb820960e51b8152346004820152602401610a3b565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122709190612b97565b90506001600160a01b038116612299576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094018552602080850180516001600160e01b03166323b872dd60e01b17905285518087019096528086527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490860152610ae09490861693879161160d91869160009061235a90849084906123da565b905080516000148061237b57508080602001905181019061237b919061305f565b611e175760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a3b565b6060610ca1848460008585600080866001600160a01b031685876040516124019190613470565b60006040518083038185875af1925050503d806000811461243e576040519150601f19603f3d011682016040523d82523d6000602084013e612443565b606091505b5091509150611fe887838387606083156124be5782516000036124b7576001600160a01b0385163b6124b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a3b565b5081610ca1565b610ca183838151156124d35781518083602001fd5b8060405162461bcd60e51b8152600401610a3b919061257b565b604051806040016040528060008152602001600081525090565b60408051606081018252600080825260208201529081016125266124ed565b905290565b60005b8381101561254657818101518382015260200161252e565b50506000910152565b6000815180845261256781602086016020860161252b565b601f01601f19169290920160200192915050565b602081526000610ac7602083018461254f565b6001600160a01b038116811461126457600080fd5b600080604083850312156125b657600080fd5b82356125c18161258e565b946020939093013593505050565b600060e082840312156125e157600080fd5b50919050565b6000602082840312156125f957600080fd5b81356001600160401b0381111561260f57600080fd5b610ca1848285016125cf565b80518252602090810151910152565b600060a0820161263a838761261b565b604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b838110156126a15788870360bf1901855281518051885283015183880187905261268e8789018261254f565b9750509382019390820190600101612662565b50505050505080915050610ca1606083018461261b565b6001600160a01b0391909116815260200190565b6000606082840312156125e157600080fd5b60008083601f8401126126f057600080fd5b5081356001600160401b0381111561270757600080fd5b60208301915083602082850101111561271f57600080fd5b9250929050565b600080600080600080600060e0888a03121561274157600080fd5b61274b89896126cc565b96506060880135955060808801356001600160401b038082111561276e57600080fd5b61277a8b838c016126de565b909750955060a08a0135915061278f8261258e565b90935060c089013590808211156127a557600080fd5b506127b28a828b016126de565b989b979a50959850939692959293505050565b6000806000606084860312156127da57600080fd5b83356127e58161258e565b925060208401356127f58161258e565b929592945050506040919091013590565b803563ffffffff8116811461281a57600080fd5b919050565b6000806040838503121561283257600080fd5b6125c183612806565b801515811461126457600080fd5b6000806040838503121561285c57600080fd5b82356001600160401b0381111561287257600080fd5b61287e858286016125cf565b925050602083013561288f8161283b565b809150509250929050565b6040810161086e828461261b565b803561ffff8116811461281a57600080fd5b600080604083850312156128cd57600080fd5b6128d683612806565b91506128e4602084016128a8565b90509250929050565b6000602082840312156128ff57600080fd5b8135610ac78161258e565b60008060008060a0858703121561292057600080fd5b61292a86866126cc565b935060608501356001600160401b0381111561294557600080fd5b612951878288016126de565b90945092505060808501356129658161258e565b939692955090935050565b60008083601f84011261298257600080fd5b5081356001600160401b0381111561299957600080fd5b6020830191508360208260051b850101111561271f57600080fd5b600080602083850312156129c757600080fd5b82356001600160401b038111156129dd57600080fd5b6129e985828601612970565b90969095509350505050565b600060208284031215612a0757600080fd5b610ac782612806565b60008060008060608587031215612a2657600080fd5b612a2f85612806565b9350612a3d602086016128a8565b925060408501356001600160401b03811115612a5857600080fd5b612a64878288016126de565b95989497509550505050565b60008060008385036080811215612a8657600080fd5b84356001600160401b03811115612a9c57600080fd5b612aa8878288016125cf565b9450506040601f1982011215612abd57600080fd5b506020840191506060840135612ad28161258e565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c0830191612b0b9084018261261b565b50610ac7608083018461261b565b60008060408385031215612b2c57600080fd5b8235612b378161258e565b9150602083013561288f8161258e565b600060608284031215612b5957600080fd5b610ac783836126cc565b600181811c90821680612b7757607f821691505b6020821081036125e157634e487b7160e01b600052602260045260246000fd5b600060208284031215612ba957600080fd5b8151610ac78161258e565b600060208284031215612bc657600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b63ffffffff929092168252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561086e5761086e612bf9565b604051606081016001600160401b0381118282101715612c4457612c44612bcd565b60405290565b604080519081016001600160401b0381118282101715612c4457612c44612bcd565b604051601f8201601f191681016001600160401b0381118282101715612c9457612c94612bcd565b604052919050565b60006001600160401b03821115612cb557612cb5612bcd565b50601f01601f191660200190565b60006001600160401b0380841115612cdd57612cdd612bcd565b8360051b6020612cee818301612c6c565b868152918501918181019036841115612d0657600080fd5b865b84811015612dcc57803586811115612d205760008081fd5b88016060368290031215612d345760008081fd5b612d3c612c22565b612d4582612806565b8152612d528683016128a8565b8682015260408083013589811115612d6a5760008081fd5b929092019136601f840112612d7f5760008081fd5b8235612d92612d8d82612c9c565b612c6c565b8181523689838701011115612da75760008081fd5b818986018a830137600091810189019190915290820152845250918301918301612d08565b50979650505050505050565b60008085851115612de857600080fd5b83861115612df557600080fd5b5050820193919092039150565b60008451612e1481846020890161252b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca1602083018486612e2a565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e9457600080fd5b9190910192915050565b6000808335601e19843603018112612eb557600080fd5b8301803591506001600160401b03821115612ecf57600080fd5b60200191503681900382131561271f57600080fd5b6001600160401b038116811461126457600080fd5b63ffffffff612f0789612806565b1681526020880135602082015260006040890135612f2481612ee4565b6001600160401b031660408301526060820188905260e060808301819052612f4f9083018789612e2a565b6001600160a01b03861660a084015282810360c0840152612f71818587612e2a565b9a9950505050505050505050565b600060208284031215612f9157600080fd5b81516001600160401b03811115612fa757600080fd5b8201601f81018413612fb857600080fd5b8051612fc6612d8d82612c9c565b818152856020838501011115612fdb57600080fd5b611a5082602083016020860161252b565b600060208284031215612ffe57600080fd5b8135610ac781612ee4565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610b57608083018461254f565b60408152600061304d604083018561254f565b8281036020840152611a50818561254f565b60006020828403121561307157600080fd5b8151610ac78161283b565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130b260e084018261254f565b90506060850151603f198483030160a08501526130cf828261254f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561310757600080fd5b61310f612c4a565b9050815181526020820151602082015292915050565b60006040828403121561313757600080fd5b610ac783836130f5565b601f821115611e17576000816000526020600020601f850160051c8101602086101561316a5750805b601f850160051c820191505b8181101561318957828155600101613176565b505050505050565b81516001600160401b038111156131aa576131aa612bcd565b6131be816131b88454612b63565b84613141565b602080601f8311600181146131f357600084156131db5750858301515b600019600386901b1c1916600185901b178555613189565b600085815260208120601f198616915b8281101561322257888601518255948401946001909101908401613203565b50858210156132405787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156132cd57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526132b98186018361254f565b968901969450505090860190600101613279565b509098975050505050505050565b6000604082840312156132ed57600080fd5b6132f5612c4a565b82358152602083013560208201528091505092915050565b60008261332a57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761086e5761086e612bf9565b8035602083101561086e57600019602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561338c5780818660080360031b1b83161692505b505092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c810183905281516000906133d681602c85016020870161252b565b91909101602c0195945050505050565b84815260018060c01b03198460c01b1660208201528260288201526000825161341681604885016020870161252b565b9190910160480195945050505050565b60006080828403121561343857600080fd5b613440612c22565b82518152602083015161345281612ee4565b602082015261346484604085016130f5565b60408201529392505050565b60008251612e9481846020870161252b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ca3a8d624c8a1055bad330dc5b28936dd9e013d4785389359e025d132c59232c64736f6c63430008170033",
1555
- "deployedBytecode": "0x6080604052600436106102025760003560e01c806306fdde0314610207578063095ea7b3146102325780630d35b41514610262578063111ecdad1461029157806313137d65146102be578063134d4f25146102d3578063156a0d0f146102fb57806317442b701461032257806318160ddd146103445780631f5e13341461036357806323b872dd14610378578063313ce567146103985780633400288b146103b457806339509351146103d45780633b6f743b146103f457806352ae2879146104215780635535d461146104345780635a0dfe4d146104545780635e280f11146104745780636fc1b31e146104a857806370a08231146104c8578063715018a6146104fe5780637d25a05e1461051357806382413eac1461054e578063857749b0146103985780638da5cb5b1461056e57806395d89b4114610583578063963efcaa146105985780639f68b964146105cc578063a457c2d7146105e0578063a9059cbb14610600578063b731ea0a14610620578063b98bd07014610640578063bb0b6a5314610660578063bc70b3541461068d578063bd815db0146106ad578063c7c7f5b3146106c0578063ca5eb5e1146106e1578063d045a0dc14610701578063d424388514610714578063dd62ed3e14610734578063e184c9be14610754578063f2fde38b14610788578063fc0c546a14610421578063ff7bd03d146107a8575b600080fd5b34801561021357600080fd5b5061021c6107c8565b604051610229919061257b565b60405180910390f35b34801561023e57600080fd5b5061025261024d3660046125a3565b61085a565b6040519015158152602001610229565b34801561026e57600080fd5b5061028261027d3660046125e7565b610874565b6040516102299392919061262a565b34801561029d57600080fd5b506004546102b1906001600160a01b031681565b60405161022991906126b8565b6102d16102cc366004612726565b6109f0565b005b3480156102df57600080fd5b506102e8600281565b60405161ffff9091168152602001610229565b34801561030757600080fd5b506040805162b9270b60e21b81526001602082015201610229565b34801561032e57600080fd5b5060408051600181526002602082015201610229565b34801561035057600080fd5b506007545b604051908152602001610229565b34801561036f57600080fd5b506102e8600181565b34801561038457600080fd5b506102526103933660046127c5565b610aa8565b3480156103a457600080fd5b5060405160068152602001610229565b3480156103c057600080fd5b506102d16103cf36600461281f565b610ace565b3480156103e057600080fd5b506102526103ef3660046125a3565b610ae4565b34801561040057600080fd5b5061041461040f366004612849565b610b06565b604051610229919061289a565b34801561042d57600080fd5b50306102b1565b34801561044057600080fd5b5061021c61044f3660046128ba565b610b61565b34801561046057600080fd5b5061025261046f36600461281f565b610c06565b34801561048057600080fd5b506102b17f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b457600080fd5b506102d16104c33660046128ed565b610c22565b3480156104d457600080fd5b506103556104e33660046128ed565b6001600160a01b031660009081526005602052604090205490565b34801561050a57600080fd5b506102d1610c80565b34801561051f57600080fd5b5061053661052e36600461281f565b600092915050565b6040516001600160401b039091168152602001610229565b34801561055a57600080fd5b5061025261056936600461290a565b610c94565b34801561057a57600080fd5b506102b1610ca9565b34801561058f57600080fd5b5061021c610cb8565b3480156105a457600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d857600080fd5b506000610252565b3480156105ec57600080fd5b506102526105fb3660046125a3565b610cc7565b34801561060c57600080fd5b5061025261061b3660046125a3565b610d4d565b34801561062c57600080fd5b506002546102b1906001600160a01b031681565b34801561064c57600080fd5b506102d161065b3660046129b4565b610d5b565b34801561066c57600080fd5b5061035561067b3660046129f5565b60016020526000908152604090205481565b34801561069957600080fd5b5061021c6106a8366004612a10565b610d75565b6102d16106bb3660046129b4565b610f1d565b6106d36106ce366004612a70565b611090565b604051610229929190612add565b3480156106ed57600080fd5b506102d16106fc3660046128ed565b6110b8565b6102d161070f366004612726565b611141565b34801561072057600080fd5b506102d161072f3660046128ed565b611170565b34801561074057600080fd5b5061035561074f366004612b19565b6111c3565b34801561076057600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b34801561079457600080fd5b506102d16107a33660046128ed565b6111ee565b3480156107b457600080fd5b506102526107c3366004612b47565b611267565b6060600880546107d790612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461080390612b63565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b5050505050905090565b60003361086881858561129d565b60019150505b92915050565b604080518082019091526000808252602082015260606108926124ed565b600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190612b97565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190612bb4565b604080518082018252848152602080820184905282516000808252918101909352909750919250906109ad565b6040805180820190915260008152606060208201528152602001906001900390816109855790505b5093506000806109d2604089013560608a01356109cd60208c018c6129f5565b6113c1565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a4457336040516391ac5e4f60e01b8152600401610a3b91906126b8565b60405180910390fd5b60208701803590610a5e90610a59908a6129f5565b6113fd565b14610a9057610a7060208801886129f5565b876020013560405163309afaf360e21b8152600401610a3b929190612be3565b610a9f87878787878787611439565b50505050505050565b600033610ab6858285611599565b610ac1858585611613565b60019150505b9392505050565b610ad66117ac565b610ae0828261180b565b5050565b600033610868818585610af783836111c3565b610b019190612c0f565b61129d565b610b0e6124ed565b6000610b2a604085013560608601356109cd60208801886129f5565b915050600080610b3a8684611861565b9092509050610b57610b4f60208801886129f5565b838388611984565b9695505050505050565b600360209081526000928352604080842090915290825290208054610b8590612b63565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb190612b63565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b505050505081565b63ffffffff919091166000908152600160205260409020541490565b610c2a6117ac565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419790610c759083906126b8565b60405180910390a150565b610c886117ac565b610c926000611a59565b565b6001600160a01b03811630145b949350505050565b6000546001600160a01b031690565b6060600980546107d790612b63565b60003381610cd582866111c3565b905083811015610d355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a3b565b610d42828686840361129d565b506001949350505050565b600033610868818585611613565b610d636117ac565b610ae0610d708284612cc3565b611aa9565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610da990612b63565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd590612b63565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b505050505090508051600003610e725783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca19350505050565b6000839003610e82579050610ca1565b60028310610f0057610ec984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bb092505050565b80610ed78460028188612dd8565b604051602001610ee993929190612e02565b604051602081830303815290604052915050610ca1565b8383604051639a6d49cd60e01b8152600401610a3b929190612e53565b60005b8181101561100f5736838383818110610f3b57610f3b612e67565b9050602002810190610f4d9190612e7d565b9050610f69610f5f60208301836129f5565b6020830135610c06565b610f735750611007565b3063d045a0dc60c08301358360a0810135610f92610100830183612e9e565b610fa3610100890160e08a016128ed565b610fb16101208a018a612e9e565b6040518963ffffffff1660e01b8152600401610fd39796959493929190612ef9565b6000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050505050505b600101610f20565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561104e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110769190810190612f7f565b604051638351eea760e01b8152600401610a3b919061257b565b611098612507565b6110a06124ed565b6110ab858585611bdc565b915091505b935093915050565b6110c06117ac565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e19061110c9084906004016126b8565b600060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b5050505050565b3330146111615760405163029a949d60e31b815260040160405180910390fd5b610a9f87878787878787610a90565b6111786117ac565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090610c759083906126b8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6111f66117ac565b6001600160a01b03811661125b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3b565b61126481611a59565b50565b600060208201803590600190839061127f90866129f5565b63ffffffff1681526020810191909152604001600020541492915050565b6001600160a01b0383166112ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a3b565b6001600160a01b0382166113605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a3b565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113cd85611ccb565b9150819050838110156110b0576040516371c4efed60e01b81526004810182905260248101859052604401610a3b565b63ffffffff81166000908152600160205260408120548061086e5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a3b565b600061144b6114488787611d02565b90565b90506000611477826114656114608a8a611d1a565b611d3d565b61147260208d018d6129f5565b611d72565b9050602886111561153e5760006114b461149760608c0160408d01612fec565b6114a460208d018d6129f5565b846114af8c8c611d9a565b611de5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061150a9086908d906000908790600401613009565b600060405180830381600087803b15801561152457600080fd5b505af1158015611538573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61157760208d018d6129f5565b84604051611586929190612be3565b60405180910390a3505050505050505050565b60006115a584846111c3565b9050600019811461160d57818110156116005760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a3b565b61160d848484840361129d565b50505050565b6001600160a01b0383166116775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a3b565b6001600160a01b0382166116d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a3b565b6001600160a01b038316600090815260056020526040902054818110156117515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a3b565b6001600160a01b0380851660008181526005602052604080822086860390559286168082529083902080548601905591516000805160206134838339815191529061179f9086815260200190565b60405180910390a361160d565b336117b5610ca9565b6001600160a01b031614610c925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a3b565b63ffffffff821660009081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906118559084908490612be3565b60405180910390a15050565b60608060006118be856020013561187786611e1c565b61188460a0890189612e9e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4892505050565b90935090506000816118d15760016118d4565b60025b90506118f46118e660208801886129f5565b826106a860808a018a612e9e565b6004549093506001600160a01b0316801561197a5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb90611937908890889060040161303a565b602060405180830381865afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611978919061305f565b505b5050509250929050565b61198c6124ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016119db896113fd565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a1092919061307c565b6040805180830381865afa158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190613125565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8151811015611b8057611adb828281518110611aca57611aca612e67565b602002602001015160400151611bb0565b818181518110611aed57611aed612e67565b60200260200101516040015160036000848481518110611b0f57611b0f612e67565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b4957611b49612e67565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611b779190613191565b50600101611aac565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c759190613250565b600281015161ffff8116600314610ae05781604051639a6d49cd60e01b8152600401610a3b919061257b565b611be4612507565b611bec6124ed565b600080611c0f33604089013560608a0135611c0a60208c018c6129f5565b611ec2565b91509150600080611c208984611861565b9092509050611c4c611c3560208b018b6129f5565b8383611c46368d90038d018d6132db565b8b611ee8565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611c9a908d018d6129f5565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b60007f0000000000000000000000000000000000000000000000000000000000000000611cf8818461330d565b61086e919061332f565b6000611d116020828486612dd8565b610ac791613346565b6000611d2a602860208486612dd8565b611d3391613364565b60c01c9392505050565b600061086e7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661332f565b60006001600160a01b038416611d885761dead93505b611d928484611ff3565b509092915050565b6060611da98260288186612dd8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b606084848484604051602001611dfe9493929190613394565b6040516020818303038152906040529050949350505050565b505050565b600061086e7f00000000000000000000000000000000000000000000000000000000000000008361330d565b8051606090151580611e91578484604051602001611e7d92919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611eb8565b84843385604051602001611ea894939291906133e6565b6040516020818303038152906040525b9150935093915050565b600080611ed08585856113c1565b9092509050611edf86836120a2565b94509492505050565b611ef0612507565b6000611eff84600001516121c4565b602085015190915015611f1957611f1984602001516121ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611f698c6113fd565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611fa592919061307c565b60806040518083038185885af1158015611fc3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fe89190613426565b979650505050505050565b6001600160a01b0382166120495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a3b565b806007600082825461205b9190612c0f565b90915550506001600160a01b038216600081815260056020908152604080832080548601905551848152600080516020613483833981519152910160405180910390a35050565b6001600160a01b0382166121025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a3b565b6001600160a01b038216600090815260056020526040902054818110156121765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a3b565b6001600160a01b0383166000818152600560209081526040808320868603905560078054879003905551858152919291600080516020613483833981519152910160405180910390a3505050565b60008134146121e8576040516304fb820960e51b8152346004820152602401610a3b565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122709190612b97565b90506001600160a01b038116612299576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094018552602080850180516001600160e01b03166323b872dd60e01b17905285518087019096528086527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490860152610ae09490861693879161160d91869160009061235a90849084906123da565b905080516000148061237b57508080602001905181019061237b919061305f565b611e175760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a3b565b6060610ca1848460008585600080866001600160a01b031685876040516124019190613470565b60006040518083038185875af1925050503d806000811461243e576040519150601f19603f3d011682016040523d82523d6000602084013e612443565b606091505b5091509150611fe887838387606083156124be5782516000036124b7576001600160a01b0385163b6124b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a3b565b5081610ca1565b610ca183838151156124d35781518083602001fd5b8060405162461bcd60e51b8152600401610a3b919061257b565b604051806040016040528060008152602001600081525090565b60408051606081018252600080825260208201529081016125266124ed565b905290565b60005b8381101561254657818101518382015260200161252e565b50506000910152565b6000815180845261256781602086016020860161252b565b601f01601f19169290920160200192915050565b602081526000610ac7602083018461254f565b6001600160a01b038116811461126457600080fd5b600080604083850312156125b657600080fd5b82356125c18161258e565b946020939093013593505050565b600060e082840312156125e157600080fd5b50919050565b6000602082840312156125f957600080fd5b81356001600160401b0381111561260f57600080fd5b610ca1848285016125cf565b80518252602090810151910152565b600060a0820161263a838761261b565b604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b838110156126a15788870360bf1901855281518051885283015183880187905261268e8789018261254f565b9750509382019390820190600101612662565b50505050505080915050610ca1606083018461261b565b6001600160a01b0391909116815260200190565b6000606082840312156125e157600080fd5b60008083601f8401126126f057600080fd5b5081356001600160401b0381111561270757600080fd5b60208301915083602082850101111561271f57600080fd5b9250929050565b600080600080600080600060e0888a03121561274157600080fd5b61274b89896126cc565b96506060880135955060808801356001600160401b038082111561276e57600080fd5b61277a8b838c016126de565b909750955060a08a0135915061278f8261258e565b90935060c089013590808211156127a557600080fd5b506127b28a828b016126de565b989b979a50959850939692959293505050565b6000806000606084860312156127da57600080fd5b83356127e58161258e565b925060208401356127f58161258e565b929592945050506040919091013590565b803563ffffffff8116811461281a57600080fd5b919050565b6000806040838503121561283257600080fd5b6125c183612806565b801515811461126457600080fd5b6000806040838503121561285c57600080fd5b82356001600160401b0381111561287257600080fd5b61287e858286016125cf565b925050602083013561288f8161283b565b809150509250929050565b6040810161086e828461261b565b803561ffff8116811461281a57600080fd5b600080604083850312156128cd57600080fd5b6128d683612806565b91506128e4602084016128a8565b90509250929050565b6000602082840312156128ff57600080fd5b8135610ac78161258e565b60008060008060a0858703121561292057600080fd5b61292a86866126cc565b935060608501356001600160401b0381111561294557600080fd5b612951878288016126de565b90945092505060808501356129658161258e565b939692955090935050565b60008083601f84011261298257600080fd5b5081356001600160401b0381111561299957600080fd5b6020830191508360208260051b850101111561271f57600080fd5b600080602083850312156129c757600080fd5b82356001600160401b038111156129dd57600080fd5b6129e985828601612970565b90969095509350505050565b600060208284031215612a0757600080fd5b610ac782612806565b60008060008060608587031215612a2657600080fd5b612a2f85612806565b9350612a3d602086016128a8565b925060408501356001600160401b03811115612a5857600080fd5b612a64878288016126de565b95989497509550505050565b60008060008385036080811215612a8657600080fd5b84356001600160401b03811115612a9c57600080fd5b612aa8878288016125cf565b9450506040601f1982011215612abd57600080fd5b506020840191506060840135612ad28161258e565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c0830191612b0b9084018261261b565b50610ac7608083018461261b565b60008060408385031215612b2c57600080fd5b8235612b378161258e565b9150602083013561288f8161258e565b600060608284031215612b5957600080fd5b610ac783836126cc565b600181811c90821680612b7757607f821691505b6020821081036125e157634e487b7160e01b600052602260045260246000fd5b600060208284031215612ba957600080fd5b8151610ac78161258e565b600060208284031215612bc657600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b63ffffffff929092168252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561086e5761086e612bf9565b604051606081016001600160401b0381118282101715612c4457612c44612bcd565b60405290565b604080519081016001600160401b0381118282101715612c4457612c44612bcd565b604051601f8201601f191681016001600160401b0381118282101715612c9457612c94612bcd565b604052919050565b60006001600160401b03821115612cb557612cb5612bcd565b50601f01601f191660200190565b60006001600160401b0380841115612cdd57612cdd612bcd565b8360051b6020612cee818301612c6c565b868152918501918181019036841115612d0657600080fd5b865b84811015612dcc57803586811115612d205760008081fd5b88016060368290031215612d345760008081fd5b612d3c612c22565b612d4582612806565b8152612d528683016128a8565b8682015260408083013589811115612d6a5760008081fd5b929092019136601f840112612d7f5760008081fd5b8235612d92612d8d82612c9c565b612c6c565b8181523689838701011115612da75760008081fd5b818986018a830137600091810189019190915290820152845250918301918301612d08565b50979650505050505050565b60008085851115612de857600080fd5b83861115612df557600080fd5b5050820193919092039150565b60008451612e1481846020890161252b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca1602083018486612e2a565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e9457600080fd5b9190910192915050565b6000808335601e19843603018112612eb557600080fd5b8301803591506001600160401b03821115612ecf57600080fd5b60200191503681900382131561271f57600080fd5b6001600160401b038116811461126457600080fd5b63ffffffff612f0789612806565b1681526020880135602082015260006040890135612f2481612ee4565b6001600160401b031660408301526060820188905260e060808301819052612f4f9083018789612e2a565b6001600160a01b03861660a084015282810360c0840152612f71818587612e2a565b9a9950505050505050505050565b600060208284031215612f9157600080fd5b81516001600160401b03811115612fa757600080fd5b8201601f81018413612fb857600080fd5b8051612fc6612d8d82612c9c565b818152856020838501011115612fdb57600080fd5b611a5082602083016020860161252b565b600060208284031215612ffe57600080fd5b8135610ac781612ee4565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610b57608083018461254f565b60408152600061304d604083018561254f565b8281036020840152611a50818561254f565b60006020828403121561307157600080fd5b8151610ac78161283b565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130b260e084018261254f565b90506060850151603f198483030160a08501526130cf828261254f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561310757600080fd5b61310f612c4a565b9050815181526020820151602082015292915050565b60006040828403121561313757600080fd5b610ac783836130f5565b601f821115611e17576000816000526020600020601f850160051c8101602086101561316a5750805b601f850160051c820191505b8181101561318957828155600101613176565b505050505050565b81516001600160401b038111156131aa576131aa612bcd565b6131be816131b88454612b63565b84613141565b602080601f8311600181146131f357600084156131db5750858301515b600019600386901b1c1916600185901b178555613189565b600085815260208120601f198616915b8281101561322257888601518255948401946001909101908401613203565b50858210156132405787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156132cd57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526132b98186018361254f565b968901969450505090860190600101613279565b509098975050505050505050565b6000604082840312156132ed57600080fd5b6132f5612c4a565b82358152602083013560208201528091505092915050565b60008261332a57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761086e5761086e612bf9565b8035602083101561086e57600019602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561338c5780818660080360031b1b83161692505b505092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c810183905281516000906133d681602c85016020870161252b565b91909101602c0195945050505050565b84815260018060c01b03198460c01b1660208201528260288201526000825161341681604885016020870161252b565b9190910160480195945050505050565b60006080828403121561343857600080fd5b613440612c22565b82518152602083015161345281612ee4565b602082015261346484604085016130f5565b60408201529392505050565b60008251612e9481846020870161252b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ca3a8d624c8a1055bad330dc5b28936dd9e013d4785389359e025d132c59232c64736f6c63430008170033",
1556
- "linkReferences": {},
1557
- "deployedLinkReferences": {}
1558
- }