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

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 (44) hide show
  1. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +4 -0
  2. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +466 -0
  3. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +4 -0
  4. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +191 -0
  5. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +4 -0
  6. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.json +1265 -0
  7. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.dbg.json +4 -0
  8. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.json +1527 -0
  9. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.dbg.json +4 -0
  10. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.json +1558 -0
  11. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.dbg.json +4 -0
  12. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.json +1558 -0
  13. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.dbg.json +4 -0
  14. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.json +1558 -0
  15. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +4 -0
  16. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.json +928 -0
  17. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +4 -0
  18. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.json +57 -0
  19. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +4 -0
  20. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.json +302 -0
  21. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +4 -0
  22. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.json +34 -0
  23. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +4 -0
  24. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.json +81 -0
  25. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  26. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  27. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.json +2 -2
  28. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  29. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
  30. package/contracts/cross-chain/FixedPricePTAMM.sol +121 -0
  31. package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +33 -0
  32. package/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol +12 -0
  33. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +61 -0
  34. package/contracts/interfaces/IPBridgedPrincipalToken.sol +11 -0
  35. package/contracts/interfaces/IPChainlinkOracleEssential.sol +11 -0
  36. package/contracts/interfaces/IPFixedPricePTAMM.sol +54 -0
  37. package/contracts/interfaces/IPPTOFTAdapterFactory.sol +12 -0
  38. package/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol +3 -1
  39. package/deployments/1-core.json +2 -1
  40. package/package.json +4 -1
  41. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
  42. package/typechain-types/factories/PendleSparkLinearDiscountOracle__factory.ts +1 -1
  43. package/typechain-types/hardhat.d.ts +108 -0
  44. package/typechain-types/index.ts +24 -0
@@ -0,0 +1,1558 @@
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
+ }