@ensuro/core 1.2.5 → 2.0.0-beta1

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 (92) hide show
  1. package/README.md +44 -17
  2. package/build/contracts/EToken.sol/EToken.json +141 -177
  3. package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +112 -315
  4. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +34 -2
  5. package/build/contracts/Policy.sol/Policy.json +2 -2
  6. package/build/contracts/PolicyNFT.sol/PolicyNFT.json +16 -3
  7. package/build/contracts/PolicyPool.sol/PolicyPool.json +105 -351
  8. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +32 -0
  9. package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +77 -72
  10. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +761 -0
  11. package/build/contracts/{BaseAssetManager.sol/BaseAssetManager.json → Reserve.sol/Reserve.json} +23 -191
  12. package/build/contracts/RiskModule.sol/RiskModule.json +94 -302
  13. package/build/contracts/TimeScaled.sol/TimeScaled.json +24 -0
  14. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +142 -325
  15. package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +15 -2
  16. package/build/contracts/dependencies/ERC1967Proxy.sol/ERC1967Proxy.json +64 -0
  17. package/build/{interfaces/IExchange.sol/IExchange.json → contracts/dependencies/IERC20Metadata.sol/IERC20Metadata.json} +83 -79
  18. package/build/{interfaces → contracts/interfaces}/IEToken.sol/IEToken.json +32 -97
  19. package/build/{interfaces → contracts/interfaces}/ILPWhitelist.sol/ILPWhitelist.json +1 -1
  20. package/build/{interfaces → contracts/interfaces}/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  21. package/build/{interfaces → contracts/interfaces}/IPolicyNFT.sol/IPolicyNFT.json +1 -1
  22. package/build/{interfaces → contracts/interfaces}/IPolicyPool.sol/IPolicyPool.json +121 -108
  23. package/build/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +1 -1
  24. package/build/{interfaces → contracts/interfaces}/IPolicyPoolConfig.sol/IPolicyPoolConfig.json +20 -36
  25. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +302 -0
  26. package/build/{interfaces → contracts/interfaces}/IRiskModule.sol/IRiskModule.json +58 -34
  27. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  28. package/build/{interfaces/IInsolvencyHook.sol/IInsolvencyHook.json → contracts/mocks/IMintableERC20.sol/IMintableERC20.json} +13 -8
  29. package/build/contracts/mocks/LinkTokenMock.sol/LinkTokenMock.json +370 -0
  30. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +202 -0
  31. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +35 -0
  32. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +603 -0
  33. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  34. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  35. package/build/contracts/mocks/TestCurrencyUUPS.sol/TestCurrencyUUPS.json +353 -0
  36. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  37. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +16 -3
  38. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +16 -3
  39. package/contracts/EToken.sol +188 -273
  40. package/contracts/FlightDelayRiskModule.sol +30 -21
  41. package/contracts/LPManualWhitelist.sol +3 -3
  42. package/contracts/Policy.sol +48 -44
  43. package/contracts/PolicyNFT.sol +2 -2
  44. package/contracts/PolicyPool.sol +114 -467
  45. package/contracts/PolicyPoolComponent.sol +14 -3
  46. package/contracts/PolicyPoolConfig.sol +30 -73
  47. package/contracts/PremiumsAccount.sol +274 -0
  48. package/contracts/Reserve.sol +34 -0
  49. package/contracts/RiskModule.sol +216 -164
  50. package/contracts/TimeScaled.sol +134 -0
  51. package/contracts/TrustfulRiskModule.sol +23 -21
  52. package/contracts/dependencies/ERC1967Proxy.sol +19 -0
  53. package/contracts/dependencies/IERC20Metadata.sol +19 -0
  54. package/contracts/interfaces/IEToken.sol +172 -0
  55. package/{interfaces → contracts/interfaces}/ILPWhitelist.sol +0 -0
  56. package/{interfaces → contracts/interfaces}/IPolicyHolder.sol +0 -0
  57. package/{interfaces → contracts/interfaces}/IPolicyNFT.sol +0 -0
  58. package/contracts/interfaces/IPolicyPool.sol +138 -0
  59. package/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol +0 -0
  60. package/{interfaces → contracts/interfaces}/IPolicyPoolConfig.sol +31 -20
  61. package/contracts/interfaces/IPremiumsAccount.sol +71 -0
  62. package/contracts/interfaces/IRiskModule.sol +60 -0
  63. package/contracts/mocks/ForwardProxy.sol +66 -0
  64. package/contracts/mocks/IMintableERC20.sol +13 -0
  65. package/contracts/mocks/LinkTokenMock.sol +30 -0
  66. package/contracts/mocks/PolicyHolderMock.sol +68 -0
  67. package/contracts/mocks/PolicyPoolComponentMock.sol +17 -0
  68. package/contracts/mocks/PolicyPoolMock.sol +122 -0
  69. package/contracts/mocks/TestCurrency.sol +35 -0
  70. package/contracts/mocks/TestNFT.sol +23 -0
  71. package/contracts/upgraded/PolicyNFTv1.sol +1 -1
  72. package/js/test-utils.js +278 -0
  73. package/package.json +2 -2
  74. package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +0 -723
  75. package/build/contracts/DataTypes.sol/DataTypes.json +0 -10
  76. package/build/contracts/Exchange.sol/Exchange.json +0 -546
  77. package/build/contracts/extras/IPriceRiskModule.sol/IPriceRiskModule.json +0 -253
  78. package/build/contracts/extras/PriceRiskModule.sol/PriceRiskModule.json +0 -1036
  79. package/build/interfaces/IAssetManager.sol/IAssetManager.json +0 -31
  80. package/build/interfaces/IExchange.sol/IPriceOracle.json +0 -30
  81. package/contracts/AaveAssetManager.sol +0 -298
  82. package/contracts/BaseAssetManager.sol +0 -301
  83. package/contracts/DataTypes.sol +0 -287
  84. package/contracts/Exchange.sol +0 -173
  85. package/contracts/extras/IPriceRiskModule.sol +0 -41
  86. package/contracts/extras/PriceRiskModule.sol +0 -243
  87. package/interfaces/IAssetManager.sol +0 -23
  88. package/interfaces/IEToken.sol +0 -48
  89. package/interfaces/IExchange.sol +0 -59
  90. package/interfaces/IInsolvencyHook.sol +0 -27
  91. package/interfaces/IPolicyPool.sol +0 -44
  92. package/interfaces/IRiskModule.sol +0 -29
@@ -1,1036 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "PriceRiskModule",
4
- "sourceName": "contracts/extras/PriceRiskModule.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "contract IPolicyPool",
10
- "name": "policyPool_",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "contract IERC20Metadata",
15
- "name": "asset_",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "contract IERC20Metadata",
20
- "name": "referenceCurrency_",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "uint256",
25
- "name": "slotSize_",
26
- "type": "uint256"
27
- }
28
- ],
29
- "stateMutability": "nonpayable",
30
- "type": "constructor"
31
- },
32
- {
33
- "anonymous": false,
34
- "inputs": [
35
- {
36
- "indexed": false,
37
- "internalType": "address",
38
- "name": "previousAdmin",
39
- "type": "address"
40
- },
41
- {
42
- "indexed": false,
43
- "internalType": "address",
44
- "name": "newAdmin",
45
- "type": "address"
46
- }
47
- ],
48
- "name": "AdminChanged",
49
- "type": "event"
50
- },
51
- {
52
- "anonymous": false,
53
- "inputs": [
54
- {
55
- "indexed": true,
56
- "internalType": "address",
57
- "name": "beacon",
58
- "type": "address"
59
- }
60
- ],
61
- "name": "BeaconUpgraded",
62
- "type": "event"
63
- },
64
- {
65
- "anonymous": false,
66
- "inputs": [
67
- {
68
- "indexed": true,
69
- "internalType": "enum IPolicyPoolConfig.GovernanceActions",
70
- "name": "action",
71
- "type": "uint8"
72
- },
73
- {
74
- "indexed": false,
75
- "internalType": "uint256",
76
- "name": "value",
77
- "type": "uint256"
78
- }
79
- ],
80
- "name": "GovernanceAction",
81
- "type": "event"
82
- },
83
- {
84
- "anonymous": false,
85
- "inputs": [
86
- {
87
- "indexed": true,
88
- "internalType": "address",
89
- "name": "customer",
90
- "type": "address"
91
- },
92
- {
93
- "indexed": false,
94
- "internalType": "uint256",
95
- "name": "policyId",
96
- "type": "uint256"
97
- },
98
- {
99
- "indexed": false,
100
- "internalType": "uint256",
101
- "name": "triggerPrice",
102
- "type": "uint256"
103
- },
104
- {
105
- "indexed": false,
106
- "internalType": "bool",
107
- "name": "lower",
108
- "type": "bool"
109
- }
110
- ],
111
- "name": "NewPricePolicy",
112
- "type": "event"
113
- },
114
- {
115
- "anonymous": false,
116
- "inputs": [
117
- {
118
- "indexed": false,
119
- "internalType": "address",
120
- "name": "account",
121
- "type": "address"
122
- }
123
- ],
124
- "name": "Paused",
125
- "type": "event"
126
- },
127
- {
128
- "anonymous": false,
129
- "inputs": [
130
- {
131
- "indexed": true,
132
- "internalType": "bytes32",
133
- "name": "role",
134
- "type": "bytes32"
135
- },
136
- {
137
- "indexed": true,
138
- "internalType": "bytes32",
139
- "name": "previousAdminRole",
140
- "type": "bytes32"
141
- },
142
- {
143
- "indexed": true,
144
- "internalType": "bytes32",
145
- "name": "newAdminRole",
146
- "type": "bytes32"
147
- }
148
- ],
149
- "name": "RoleAdminChanged",
150
- "type": "event"
151
- },
152
- {
153
- "anonymous": false,
154
- "inputs": [
155
- {
156
- "indexed": true,
157
- "internalType": "bytes32",
158
- "name": "role",
159
- "type": "bytes32"
160
- },
161
- {
162
- "indexed": true,
163
- "internalType": "address",
164
- "name": "account",
165
- "type": "address"
166
- },
167
- {
168
- "indexed": true,
169
- "internalType": "address",
170
- "name": "sender",
171
- "type": "address"
172
- }
173
- ],
174
- "name": "RoleGranted",
175
- "type": "event"
176
- },
177
- {
178
- "anonymous": false,
179
- "inputs": [
180
- {
181
- "indexed": true,
182
- "internalType": "bytes32",
183
- "name": "role",
184
- "type": "bytes32"
185
- },
186
- {
187
- "indexed": true,
188
- "internalType": "address",
189
- "name": "account",
190
- "type": "address"
191
- },
192
- {
193
- "indexed": true,
194
- "internalType": "address",
195
- "name": "sender",
196
- "type": "address"
197
- }
198
- ],
199
- "name": "RoleRevoked",
200
- "type": "event"
201
- },
202
- {
203
- "anonymous": false,
204
- "inputs": [
205
- {
206
- "indexed": false,
207
- "internalType": "address",
208
- "name": "account",
209
- "type": "address"
210
- }
211
- ],
212
- "name": "Unpaused",
213
- "type": "event"
214
- },
215
- {
216
- "anonymous": false,
217
- "inputs": [
218
- {
219
- "indexed": true,
220
- "internalType": "address",
221
- "name": "implementation",
222
- "type": "address"
223
- }
224
- ],
225
- "name": "Upgraded",
226
- "type": "event"
227
- },
228
- {
229
- "inputs": [],
230
- "name": "CUSTOMER_ROLE",
231
- "outputs": [
232
- {
233
- "internalType": "bytes32",
234
- "name": "",
235
- "type": "bytes32"
236
- }
237
- ],
238
- "stateMutability": "view",
239
- "type": "function"
240
- },
241
- {
242
- "inputs": [],
243
- "name": "DEFAULT_ADMIN_ROLE",
244
- "outputs": [
245
- {
246
- "internalType": "bytes32",
247
- "name": "",
248
- "type": "bytes32"
249
- }
250
- ],
251
- "stateMutability": "view",
252
- "type": "function"
253
- },
254
- {
255
- "inputs": [],
256
- "name": "GUARDIAN_ROLE",
257
- "outputs": [
258
- {
259
- "internalType": "bytes32",
260
- "name": "",
261
- "type": "bytes32"
262
- }
263
- ],
264
- "stateMutability": "view",
265
- "type": "function"
266
- },
267
- {
268
- "inputs": [],
269
- "name": "LEVEL1_ROLE",
270
- "outputs": [
271
- {
272
- "internalType": "bytes32",
273
- "name": "",
274
- "type": "bytes32"
275
- }
276
- ],
277
- "stateMutability": "view",
278
- "type": "function"
279
- },
280
- {
281
- "inputs": [],
282
- "name": "LEVEL2_ROLE",
283
- "outputs": [
284
- {
285
- "internalType": "bytes32",
286
- "name": "",
287
- "type": "bytes32"
288
- }
289
- ],
290
- "stateMutability": "view",
291
- "type": "function"
292
- },
293
- {
294
- "inputs": [],
295
- "name": "LEVEL3_ROLE",
296
- "outputs": [
297
- {
298
- "internalType": "bytes32",
299
- "name": "",
300
- "type": "bytes32"
301
- }
302
- ],
303
- "stateMutability": "view",
304
- "type": "function"
305
- },
306
- {
307
- "inputs": [],
308
- "name": "PRICER_ROLE",
309
- "outputs": [
310
- {
311
- "internalType": "bytes32",
312
- "name": "",
313
- "type": "bytes32"
314
- }
315
- ],
316
- "stateMutability": "view",
317
- "type": "function"
318
- },
319
- {
320
- "inputs": [],
321
- "name": "PRICE_SLOTS",
322
- "outputs": [
323
- {
324
- "internalType": "uint8",
325
- "name": "",
326
- "type": "uint8"
327
- }
328
- ],
329
- "stateMutability": "view",
330
- "type": "function"
331
- },
332
- {
333
- "inputs": [],
334
- "name": "RM_PROVIDER_ROLE",
335
- "outputs": [
336
- {
337
- "internalType": "bytes32",
338
- "name": "",
339
- "type": "bytes32"
340
- }
341
- ],
342
- "stateMutability": "view",
343
- "type": "function"
344
- },
345
- {
346
- "inputs": [],
347
- "name": "TWEAK_EXPIRATION",
348
- "outputs": [
349
- {
350
- "internalType": "uint40",
351
- "name": "",
352
- "type": "uint40"
353
- }
354
- ],
355
- "stateMutability": "view",
356
- "type": "function"
357
- },
358
- {
359
- "inputs": [],
360
- "name": "asset",
361
- "outputs": [
362
- {
363
- "internalType": "contract IERC20Metadata",
364
- "name": "",
365
- "type": "address"
366
- }
367
- ],
368
- "stateMutability": "view",
369
- "type": "function"
370
- },
371
- {
372
- "inputs": [],
373
- "name": "currency",
374
- "outputs": [
375
- {
376
- "internalType": "contract IERC20Metadata",
377
- "name": "",
378
- "type": "address"
379
- }
380
- ],
381
- "stateMutability": "view",
382
- "type": "function"
383
- },
384
- {
385
- "inputs": [],
386
- "name": "ensuroFee",
387
- "outputs": [
388
- {
389
- "internalType": "uint256",
390
- "name": "",
391
- "type": "uint256"
392
- }
393
- ],
394
- "stateMutability": "view",
395
- "type": "function"
396
- },
397
- {
398
- "inputs": [
399
- {
400
- "internalType": "int40",
401
- "name": "duration",
402
- "type": "int40"
403
- }
404
- ],
405
- "name": "getCDF",
406
- "outputs": [
407
- {
408
- "internalType": "uint256[30]",
409
- "name": "",
410
- "type": "uint256[30]"
411
- }
412
- ],
413
- "stateMutability": "view",
414
- "type": "function"
415
- },
416
- {
417
- "inputs": [
418
- {
419
- "internalType": "uint256",
420
- "name": "payout",
421
- "type": "uint256"
422
- },
423
- {
424
- "internalType": "uint256",
425
- "name": "lossProb",
426
- "type": "uint256"
427
- },
428
- {
429
- "internalType": "uint40",
430
- "name": "expiration",
431
- "type": "uint40"
432
- }
433
- ],
434
- "name": "getMinimumPremium",
435
- "outputs": [
436
- {
437
- "internalType": "uint256",
438
- "name": "",
439
- "type": "uint256"
440
- }
441
- ],
442
- "stateMutability": "view",
443
- "type": "function"
444
- },
445
- {
446
- "inputs": [
447
- {
448
- "internalType": "bytes32",
449
- "name": "role",
450
- "type": "bytes32"
451
- }
452
- ],
453
- "name": "getRoleAdmin",
454
- "outputs": [
455
- {
456
- "internalType": "bytes32",
457
- "name": "",
458
- "type": "bytes32"
459
- }
460
- ],
461
- "stateMutability": "view",
462
- "type": "function"
463
- },
464
- {
465
- "inputs": [
466
- {
467
- "internalType": "bytes32",
468
- "name": "role",
469
- "type": "bytes32"
470
- },
471
- {
472
- "internalType": "address",
473
- "name": "account",
474
- "type": "address"
475
- }
476
- ],
477
- "name": "grantRole",
478
- "outputs": [],
479
- "stateMutability": "nonpayable",
480
- "type": "function"
481
- },
482
- {
483
- "inputs": [
484
- {
485
- "internalType": "bytes32",
486
- "name": "role",
487
- "type": "bytes32"
488
- },
489
- {
490
- "internalType": "address",
491
- "name": "account",
492
- "type": "address"
493
- }
494
- ],
495
- "name": "hasRole",
496
- "outputs": [
497
- {
498
- "internalType": "bool",
499
- "name": "",
500
- "type": "bool"
501
- }
502
- ],
503
- "stateMutability": "view",
504
- "type": "function"
505
- },
506
- {
507
- "inputs": [
508
- {
509
- "internalType": "string",
510
- "name": "name_",
511
- "type": "string"
512
- },
513
- {
514
- "internalType": "uint256",
515
- "name": "scrPercentage_",
516
- "type": "uint256"
517
- },
518
- {
519
- "internalType": "uint256",
520
- "name": "ensuroFee_",
521
- "type": "uint256"
522
- },
523
- {
524
- "internalType": "uint256",
525
- "name": "scrInterestRate_",
526
- "type": "uint256"
527
- },
528
- {
529
- "internalType": "uint256",
530
- "name": "maxScrPerPolicy_",
531
- "type": "uint256"
532
- },
533
- {
534
- "internalType": "uint256",
535
- "name": "scrLimit_",
536
- "type": "uint256"
537
- },
538
- {
539
- "internalType": "address",
540
- "name": "wallet_",
541
- "type": "address"
542
- }
543
- ],
544
- "name": "initialize",
545
- "outputs": [],
546
- "stateMutability": "nonpayable",
547
- "type": "function"
548
- },
549
- {
550
- "inputs": [],
551
- "name": "lastTweak",
552
- "outputs": [
553
- {
554
- "internalType": "uint40",
555
- "name": "",
556
- "type": "uint40"
557
- },
558
- {
559
- "internalType": "uint56",
560
- "name": "",
561
- "type": "uint56"
562
- }
563
- ],
564
- "stateMutability": "view",
565
- "type": "function"
566
- },
567
- {
568
- "inputs": [],
569
- "name": "maxScrPerPolicy",
570
- "outputs": [
571
- {
572
- "internalType": "uint256",
573
- "name": "",
574
- "type": "uint256"
575
- }
576
- ],
577
- "stateMutability": "view",
578
- "type": "function"
579
- },
580
- {
581
- "inputs": [],
582
- "name": "moc",
583
- "outputs": [
584
- {
585
- "internalType": "uint256",
586
- "name": "",
587
- "type": "uint256"
588
- }
589
- ],
590
- "stateMutability": "view",
591
- "type": "function"
592
- },
593
- {
594
- "inputs": [],
595
- "name": "name",
596
- "outputs": [
597
- {
598
- "internalType": "string",
599
- "name": "",
600
- "type": "string"
601
- }
602
- ],
603
- "stateMutability": "view",
604
- "type": "function"
605
- },
606
- {
607
- "inputs": [
608
- {
609
- "internalType": "uint256",
610
- "name": "triggerPrice",
611
- "type": "uint256"
612
- },
613
- {
614
- "internalType": "bool",
615
- "name": "lower",
616
- "type": "bool"
617
- },
618
- {
619
- "internalType": "uint256",
620
- "name": "payout",
621
- "type": "uint256"
622
- },
623
- {
624
- "internalType": "uint40",
625
- "name": "expiration",
626
- "type": "uint40"
627
- }
628
- ],
629
- "name": "newPolicy",
630
- "outputs": [
631
- {
632
- "internalType": "uint256",
633
- "name": "",
634
- "type": "uint256"
635
- }
636
- ],
637
- "stateMutability": "nonpayable",
638
- "type": "function"
639
- },
640
- {
641
- "inputs": [],
642
- "name": "pause",
643
- "outputs": [],
644
- "stateMutability": "nonpayable",
645
- "type": "function"
646
- },
647
- {
648
- "inputs": [],
649
- "name": "paused",
650
- "outputs": [
651
- {
652
- "internalType": "bool",
653
- "name": "",
654
- "type": "bool"
655
- }
656
- ],
657
- "stateMutability": "view",
658
- "type": "function"
659
- },
660
- {
661
- "inputs": [],
662
- "name": "policyPool",
663
- "outputs": [
664
- {
665
- "internalType": "contract IPolicyPool",
666
- "name": "",
667
- "type": "address"
668
- }
669
- ],
670
- "stateMutability": "view",
671
- "type": "function"
672
- },
673
- {
674
- "inputs": [
675
- {
676
- "internalType": "uint256",
677
- "name": "triggerPrice",
678
- "type": "uint256"
679
- },
680
- {
681
- "internalType": "bool",
682
- "name": "lower",
683
- "type": "bool"
684
- },
685
- {
686
- "internalType": "uint256",
687
- "name": "payout",
688
- "type": "uint256"
689
- },
690
- {
691
- "internalType": "uint40",
692
- "name": "expiration",
693
- "type": "uint40"
694
- }
695
- ],
696
- "name": "pricePolicy",
697
- "outputs": [
698
- {
699
- "internalType": "uint256",
700
- "name": "premium",
701
- "type": "uint256"
702
- },
703
- {
704
- "internalType": "uint256",
705
- "name": "lossProb",
706
- "type": "uint256"
707
- }
708
- ],
709
- "stateMutability": "view",
710
- "type": "function"
711
- },
712
- {
713
- "inputs": [],
714
- "name": "proxiableUUID",
715
- "outputs": [
716
- {
717
- "internalType": "bytes32",
718
- "name": "",
719
- "type": "bytes32"
720
- }
721
- ],
722
- "stateMutability": "view",
723
- "type": "function"
724
- },
725
- {
726
- "inputs": [],
727
- "name": "referenceCurrency",
728
- "outputs": [
729
- {
730
- "internalType": "contract IERC20Metadata",
731
- "name": "",
732
- "type": "address"
733
- }
734
- ],
735
- "stateMutability": "view",
736
- "type": "function"
737
- },
738
- {
739
- "inputs": [
740
- {
741
- "internalType": "uint256",
742
- "name": "scrAmount",
743
- "type": "uint256"
744
- }
745
- ],
746
- "name": "releaseScr",
747
- "outputs": [],
748
- "stateMutability": "nonpayable",
749
- "type": "function"
750
- },
751
- {
752
- "inputs": [
753
- {
754
- "internalType": "bytes32",
755
- "name": "role",
756
- "type": "bytes32"
757
- },
758
- {
759
- "internalType": "address",
760
- "name": "account",
761
- "type": "address"
762
- }
763
- ],
764
- "name": "renounceRole",
765
- "outputs": [],
766
- "stateMutability": "nonpayable",
767
- "type": "function"
768
- },
769
- {
770
- "inputs": [
771
- {
772
- "internalType": "bytes32",
773
- "name": "role",
774
- "type": "bytes32"
775
- },
776
- {
777
- "internalType": "address",
778
- "name": "account",
779
- "type": "address"
780
- }
781
- ],
782
- "name": "revokeRole",
783
- "outputs": [],
784
- "stateMutability": "nonpayable",
785
- "type": "function"
786
- },
787
- {
788
- "inputs": [],
789
- "name": "scrInterestRate",
790
- "outputs": [
791
- {
792
- "internalType": "uint256",
793
- "name": "",
794
- "type": "uint256"
795
- }
796
- ],
797
- "stateMutability": "view",
798
- "type": "function"
799
- },
800
- {
801
- "inputs": [],
802
- "name": "scrLimit",
803
- "outputs": [
804
- {
805
- "internalType": "uint256",
806
- "name": "",
807
- "type": "uint256"
808
- }
809
- ],
810
- "stateMutability": "view",
811
- "type": "function"
812
- },
813
- {
814
- "inputs": [],
815
- "name": "scrPercentage",
816
- "outputs": [
817
- {
818
- "internalType": "uint256",
819
- "name": "",
820
- "type": "uint256"
821
- }
822
- ],
823
- "stateMutability": "view",
824
- "type": "function"
825
- },
826
- {
827
- "inputs": [
828
- {
829
- "internalType": "int40",
830
- "name": "duration",
831
- "type": "int40"
832
- },
833
- {
834
- "internalType": "uint256[30]",
835
- "name": "cdf",
836
- "type": "uint256[30]"
837
- }
838
- ],
839
- "name": "setCDF",
840
- "outputs": [],
841
- "stateMutability": "nonpayable",
842
- "type": "function"
843
- },
844
- {
845
- "inputs": [
846
- {
847
- "internalType": "uint256",
848
- "name": "newEnsuroFee",
849
- "type": "uint256"
850
- }
851
- ],
852
- "name": "setEnsuroFee",
853
- "outputs": [],
854
- "stateMutability": "nonpayable",
855
- "type": "function"
856
- },
857
- {
858
- "inputs": [
859
- {
860
- "internalType": "uint256",
861
- "name": "newMaxScrPerPolicy",
862
- "type": "uint256"
863
- }
864
- ],
865
- "name": "setMaxScrPerPolicy",
866
- "outputs": [],
867
- "stateMutability": "nonpayable",
868
- "type": "function"
869
- },
870
- {
871
- "inputs": [
872
- {
873
- "internalType": "uint256",
874
- "name": "newMoc",
875
- "type": "uint256"
876
- }
877
- ],
878
- "name": "setMoc",
879
- "outputs": [],
880
- "stateMutability": "nonpayable",
881
- "type": "function"
882
- },
883
- {
884
- "inputs": [
885
- {
886
- "internalType": "uint256",
887
- "name": "newScrInterestRate",
888
- "type": "uint256"
889
- }
890
- ],
891
- "name": "setScrInterestRate",
892
- "outputs": [],
893
- "stateMutability": "nonpayable",
894
- "type": "function"
895
- },
896
- {
897
- "inputs": [
898
- {
899
- "internalType": "uint256",
900
- "name": "newScrLimit",
901
- "type": "uint256"
902
- }
903
- ],
904
- "name": "setScrLimit",
905
- "outputs": [],
906
- "stateMutability": "nonpayable",
907
- "type": "function"
908
- },
909
- {
910
- "inputs": [
911
- {
912
- "internalType": "uint256",
913
- "name": "newScrPercentage",
914
- "type": "uint256"
915
- }
916
- ],
917
- "name": "setScrPercentage",
918
- "outputs": [],
919
- "stateMutability": "nonpayable",
920
- "type": "function"
921
- },
922
- {
923
- "inputs": [
924
- {
925
- "internalType": "address",
926
- "name": "wallet_",
927
- "type": "address"
928
- }
929
- ],
930
- "name": "setWallet",
931
- "outputs": [],
932
- "stateMutability": "nonpayable",
933
- "type": "function"
934
- },
935
- {
936
- "inputs": [
937
- {
938
- "internalType": "bytes4",
939
- "name": "interfaceId",
940
- "type": "bytes4"
941
- }
942
- ],
943
- "name": "supportsInterface",
944
- "outputs": [
945
- {
946
- "internalType": "bool",
947
- "name": "",
948
- "type": "bool"
949
- }
950
- ],
951
- "stateMutability": "view",
952
- "type": "function"
953
- },
954
- {
955
- "inputs": [],
956
- "name": "totalScr",
957
- "outputs": [
958
- {
959
- "internalType": "uint256",
960
- "name": "",
961
- "type": "uint256"
962
- }
963
- ],
964
- "stateMutability": "view",
965
- "type": "function"
966
- },
967
- {
968
- "inputs": [
969
- {
970
- "internalType": "uint256",
971
- "name": "policyId",
972
- "type": "uint256"
973
- }
974
- ],
975
- "name": "triggerPolicy",
976
- "outputs": [],
977
- "stateMutability": "nonpayable",
978
- "type": "function"
979
- },
980
- {
981
- "inputs": [],
982
- "name": "unpause",
983
- "outputs": [],
984
- "stateMutability": "nonpayable",
985
- "type": "function"
986
- },
987
- {
988
- "inputs": [
989
- {
990
- "internalType": "address",
991
- "name": "newImplementation",
992
- "type": "address"
993
- }
994
- ],
995
- "name": "upgradeTo",
996
- "outputs": [],
997
- "stateMutability": "nonpayable",
998
- "type": "function"
999
- },
1000
- {
1001
- "inputs": [
1002
- {
1003
- "internalType": "address",
1004
- "name": "newImplementation",
1005
- "type": "address"
1006
- },
1007
- {
1008
- "internalType": "bytes",
1009
- "name": "data",
1010
- "type": "bytes"
1011
- }
1012
- ],
1013
- "name": "upgradeToAndCall",
1014
- "outputs": [],
1015
- "stateMutability": "payable",
1016
- "type": "function"
1017
- },
1018
- {
1019
- "inputs": [],
1020
- "name": "wallet",
1021
- "outputs": [
1022
- {
1023
- "internalType": "address",
1024
- "name": "",
1025
- "type": "address"
1026
- }
1027
- ],
1028
- "stateMutability": "view",
1029
- "type": "function"
1030
- }
1031
- ],
1032
- "bytecode": "0x6101206040523060601b6080523480156200001957600080fd5b5060405162005771380380620057718339810160408190526200003c9162000067565b6001600160601b0319606094851b811660a05292841b831660c052921b1660e05261010052620000da565b600080600080608085870312156200007e57600080fd5b84516200008b81620000c1565b60208601519094506200009e81620000c1565b6040860151909350620000b181620000c1565b6060959095015193969295505050565b6001600160a01b0381168114620000d757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c61010051615590620001e1600039600061391801526000818161042501528181612ca501526138020152600081816104ec01528181612c840152612cc60152600081816105a701528181610ab901528181610c85015281816110ff0152818161118b015281816116eb015281816118ff01528181611a7301528181611c5401528181611ec701528181611f7b0152818161215c01528181612341015281816125310152818161290c01528181612b750152818161308901528181613137015261332b015260008181610edd01528181610f1d0152818161128c015281816112cc015261135b01526155906000f3fe6080604052600436106102e45760003560e01c80636f0dbe6f11610190578063ca996de3116100dc578063e42569d911610095578063f33323a41161006f578063f33323a41461092c578063f48d63ad1461094c578063f67b2bad14610979578063fbb812791461099b57600080fd5b8063e42569d9146108d0578063e5a6b10f146108f7578063e61735c01461090c57600080fd5b8063ca996de314610824578063d44499a81461083a578063d547741f14610850578063dab5d88d14610870578063deaa59df14610890578063e101a345146108b057600080fd5b80639cbbcd9211610149578063a5f8b2d611610123578063a5f8b2d614610785578063a9a24f27146107ba578063b9ea870a146107ee578063bf8e934d1461080e57600080fd5b80639cbbcd921461073a5780639d90724d1461075a578063a217fddf1461077057600080fd5b80636f0dbe6f14610678578063775ead48146106985780637ed5acfa146106b85780638456cb59146106e55780638bac3a24146106fa57806391d148541461071a57600080fd5b806338d52e0f1161024f5780634f1ef2861161020857806353428253116101e257806353428253146106125780635b494dd5146106285780635c975abb1461064a5780635d505fe71461066257600080fd5b80634f1ef286146105cb578063521eb273146105de57806352d1902d146105fd57600080fd5b806338d52e0f146104dd5780633f4ba83a1461051057806341ea6a0f14610525578063468a8c9f1461053b5780634a47a3e0146105765780634d15eb031461059857600080fd5b806324ea54f4116102a157806324ea54f4146103f45780632c7a69fe146104165780632f2ff15d1461045d57806336568abe1461047d5780633659cfe61461049d578063377e1cc9146104bd57600080fd5b806301ffc9a7146102e957806306fdde031461031e578063089a850414610340578063204d79231461036257806322875d63146103a4578063248a9ca3146103c4575b600080fd5b3480156102f557600080fd5b50610309610304366004614b2f565b6109cf565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b50610333610a06565b6040516103159190614de6565b34801561034c57600080fd5b5061036061035b366004614acd565b610a99565b005b34801561036e57600080fd5b506103967f288a15c4a15d470e4cd9cad2f113b91206b520c26dbd3dd74627f0c057baa19c81565b604051908152602001610315565b3480156103b057600080fd5b506103606103bf366004614acd565b610c65565b3480156103d057600080fd5b506103966103df366004614acd565b600090815260c9602052604090206001015490565b34801561040057600080fd5b5061039660008051602061553b83398151915281565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610315565b34801561046957600080fd5b50610360610478366004614aff565b610e29565b34801561048957600080fd5b50610360610498366004614aff565b610e54565b3480156104a957600080fd5b506103606104b8366004614a2f565b610ed2565b3480156104c957600080fd5b506103606104d8366004614acd565b610fb2565b3480156104e957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b34801561051c57600080fd5b5061036061116b565b34801561053157600080fd5b5061013454610396565b34801561054757600080fd5b5061012d546040805164ffffffffff83168152600160281b90920466ffffffffffffff16602083015201610315565b34801561058257600080fd5b5061039660008051602061551b83398151915281565b3480156105a457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b6103606105d9366004614a4c565b611281565b3480156105ea57600080fd5b50610136546001600160a01b0316610445565b34801561060957600080fd5b5061039661134e565b34801561061e57600080fd5b5061013054610396565b34801561063457600080fd5b506103966000805160206154d483398151915281565b34801561065657600080fd5b5060fb5460ff16610309565b34801561066e57600080fd5b5061013354610396565b34801561068457600080fd5b50610360610693366004614bce565b611401565b3480156106a457600080fd5b506103966106b3366004614c64565b61149d565b3480156106c457600080fd5b506106cf6201518081565b60405164ffffffffff9091168152602001610315565b3480156106f157600080fd5b506103606116da565b34801561070657600080fd5b50610396610715366004614cac565b6117e2565b34801561072657600080fd5b50610309610735366004614aff565b6118d1565b34801561074657600080fd5b50610360610755366004614acd565b6118fc565b34801561076657600080fd5b5061013254610396565b34801561077c57600080fd5b50610396600081565b34801561079157600080fd5b506107a56107a0366004614c64565b611999565b60408051928352602083019190915201610315565b3480156107c657600080fd5b506103967f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad181565b3480156107fa57600080fd5b50610360610809366004614acd565b611a53565b34801561081a57600080fd5b5061012f54610396565b34801561083057600080fd5b5061013554610396565b34801561084657600080fd5b5061013154610396565b34801561085c57600080fd5b5061036061086b366004614aff565b611c0e565b34801561087c57600080fd5b5061036061088b366004614acd565b611c34565b34801561089c57600080fd5b506103606108ab366004614a2f565b611dfb565b3480156108bc57600080fd5b506103606108cb366004614b91565b611e53565b3480156108dc57600080fd5b506108e5601e81565b60405160ff9091168152602001610315565b34801561090357600080fd5b50610445611ec3565b34801561091857600080fd5b50610360610927366004614acd565b611f5b565b34801561093857600080fd5b50610360610947366004614acd565b612120565b34801561095857600080fd5b5061096c610967366004614b76565b6124dc565b6040516103159190614d95565b34801561098557600080fd5b506103966000805160206154b483398151915281565b3480156109a757600080fd5b506103967fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b60006001600160e01b03198216637965db0b60e01b1480610a0057506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061012e8054610a16906153c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906153c7565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610b7793929190614dc7565b60006040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506000610bc060008051602061551b83398151915261252d565b159050801580610be45750610be461013154856af8277896582678ac000000612640565b610c4d5760405162461bcd60e51b815260206004820152602f60248201527f547765616b2065786365656465643a20656e7375726f46656520747765616b7360448201526e206f6e6c7920757020746f2033302560881b60648201526084015b60405180910390fd5b610131849055610c5f600a85836126cb565b50505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610d4393929190614dc7565b60006040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506000610d8c60008051602061551b83398151915261252d565b159050801580610dad5750610dad6101335485670429d069189e000061272c565b610e175760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206d6178536372506572506f6c69637920604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610133849055610c5f600b85836126cb565b600082815260c96020526040902060010154610e45813361279b565b610e4f83836127ff565b505050565b6001600160a01b0381163314610ec45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c44565b610ece8282612885565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f1b5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f64600080516020615494833981519152546001600160a01b031690565b6001600160a01b031614610f8a5760405162461bcd60e51b8152600401610c4490614e65565b610f93816128ec565b60408051600080825260208201909252610faf918391906129f6565b50565b60fb5460ff1615610fd55760405162461bcd60e51b8152600401610c4490614eb1565b60008181526101376020526040812090610fed612b70565b600b83015490915060ff161580611008575081600a01548111155b61106a5760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203e60448201526c2074726967676572507269636560981b6064820152608401610c44565b600b82015460ff1680611081575081600a01548110155b6110e35760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203c60448201526c2074726967676572507269636560981b6064820152608401610c44565b6001820154604051639e556b2b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639e556b2b9161113491869160040161503f565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b50505050505050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161124993929190614dc7565b60006040518083038186803b15801561126157600080fd5b505afa158015611275573d6000803e3d6000fd5b50505050610ece612e2f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112ca5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611313600080516020615494833981519152546001600160a01b031690565b6001600160a01b0316146113395760405162461bcd60e51b8152600401610c4490614e65565b611342826128ec565b610ece828260016129f6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c44565b5060008051602061549483398151915290565b600054610100900460ff1661141c5760005460ff1615611420565b303b155b61143c5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff1615801561145e576000805461ffff19166101011790555b61146d88888888888888612ec2565b61013980546001600160601b03191660011790558015611493576000805461ff00191690555b5050505050505050565b60008060006114ae87878787611999565b915091506000821161151b5760405162461bcd60e51b815260206004820152603060248201527f456974686572206475726174696f6e206f722070657263656e74616765206a7560448201526f1b5c081b9bdd081cdd5c1c1bdc9d195960821b6064820152608401610c44565b61013954600090611538906001600160601b03163060601b6150eb565b6000818152610137602052604090206101395491925090339061156d908990879087908b9086906001600160601b0316612f59565b80518355602081015160018085019190915560408201516002850155606082015160038501556080820151600485015560a0820151600585015560c0820151600685015560e082015160078501556101008201516008850155610120820151600985018054610140850151610160909501516001600160a01b039093166001600160c81b031990911617600160a01b64ffffffffff958616021764ffffffffff60c81b1916600160c81b949092169390930217909155610139805460009061163f9084906001600160601b031661512c565b82546101009290920a6001600160601b0381810219909316919092169190910217905550600a82018a9055600b8201805460ff19168a151590811790915560408051858152602081018d9052908101919091526001600160a01b038216907fac60a84d926e5f83b9718922af7ef1285ea8a8516516c4981ed3297d2e89ae0b9060600160405180910390a2509093505050505b949350505050565b60008051602061553b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190614b59565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b1580156117c257600080fd5b505afa1580156117d6573d6000803e3d6000fd5b50505050610faf6133c4565b60008061181361180e6117ff6117f86101305490565b879061341c565b611808886134f3565b9061341c565b613571565b905060008161182f61182861180e61012f5490565b88906135f1565b6118399190615324565b9050600061187961180e6e0612d847b578e7643c28ac000000006118644264ffffffffff8a16615324565b610132545b6118739190615305565b906136a4565b9050600061188783836135f1565b905060006118ab61189b61180e6101315490565b6118a584886150eb565b906135f1565b9050816118b882876150eb565b6118c291906150eb565b955050505050505b9392505050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461197e5760405162461bcd60e51b815260206004820152602160248201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6044820152601b60fa1b6064820152608401610c44565b8061013560008282546119919190615324565b909155505050565b60008060006119a6612b70565b90508580156119b457508681115b806119c75750851580156119c757508681105b611a135760405162461bcd60e51b815260206004820152601e60248201527f507269636520616c726561647920617420747269676765722076616c756500006044820152606401610c44565b611a278188611a22428861533b565b6137aa565b915081611a3b576000809250925050611a4a565b611a468583866117e2565b9250505b94509492505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b029190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611b3193929190614dc7565b60006040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506000611b7a60008051602061551b83398151915261252d565b159050801580611b9e5750611b9e61013054856a52b7d2dcc80cd2e4000000612640565b611bfc5760405162461bcd60e51b815260206004820152602960248201527f547765616b2065786365656465643a206d6f6320747765616b73206f6e6c7920604482015268757020746f2031302560b81b6064820152608401610c44565b610130849055610c5f600885836126cb565b600082815260c96020526040902060010154611c2a813361279b565b610e4f8383612885565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cab57600080fd5b505afa158015611cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce39190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611d1293929190614dc7565b60006040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506000611d5b60008051602061551b83398151915261252d565b159050801580611d7f5750611d7f61013254856af8277896582678ac000000612640565b611de95760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20736372496e7465726573745261746520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610132849055610c5f600985836126cb565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1611e26813361279b565b61013680546001600160a01b0319166001600160a01b038416908117909155610ece90600f9060006126cb565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611e7e813361279b565b60fb5460ff1615611ea15760405162461bcd60e51b8152600401610c4490614eb1565b600483810b900b600090815261013860205260409020610c5f9083601e614834565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190614b59565b905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd257600080fd5b505afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161203993929190614dc7565b60006040518083038186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b50505050600061208260008051602061551b83398151915261252d565b1590508015806120a657506120a661012f54856a52b7d2dcc80cd2e4000000612640565b61210e5760405162461bcd60e51b815260206004820152603360248201527f547765616b2065786365656465643a2073637250657263656e7461676520747760448201527265616b73206f6e6c7920757020746f2031302560681b6064820152608401610c44565b61012f849055610c5f600785836126cb565b6000805160206154b483398151915260008051602061551b8339815191526000805160206154d48339815191526121568361252d565b61224b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161221a93929190614dc7565b60006040518083038186803b15801561223257600080fd5b505afa158015612246573d6000803e3d6000fd5b505050505b600061226460008051602061551b83398151915261252d565b15801561228557506122836000805160206154b483398151915261252d565b155b90508015806122a557506122a5610134548667016345785d8a000061272c565b6123085760405162461bcd60e51b815260206004820152602e60248201527f547765616b2065786365656465643a207363724c696d697420747765616b732060448201526d6f6e6c7920757020746f2031302560901b6064820152608401610c44565b610134548511158061232c575061232c6000805160206154b483398151915261252d565b806123d25750846123d067016345785d8a00007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b77ddfea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561239857600080fd5b505afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a59190614ae6565b115b6124595760405162461bcd60e51b815260206004820152604c60248201527f547765616b2065786365656465643a20496e6372656173652c203e3d3130252060448201527f6f662074686520746f74616c206c69717569646974792c20726571756972657360648201526b204c4556454c315f524f4c4560a01b608482015260a401610c44565b610135548510156124c35760405162461bcd60e51b815260206004820152602e60248201527f43616e27742073657420534352206c657373207468616e2063757272656e742060448201526d29a1a91030b63637b1b0ba34b7b760911b6064820152608401610c44565b6101348590556124d5600c86836126cb565b5050505050565b6124e4614872565b600482810b900b600090815261013860205260409081902081516103c081019283905291601e9082845b81548152602001906001019080831161250e5750505050509050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561258857600080fd5b505afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c09190614b59565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b15801561260857600080fd5b505afa15801561261c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190614ab0565b600082841415612652575060016118ca565b8361266c5750676765c793fa10079d601b1b8110156118ca565b82612679575060006118ca565b828410156126ab5781676765c793fa10079d601b1b61269885876136a4565b6126a29190615324565b111590506118ca565b816126b684866136a4565b6126a290676765c793fa10079d601b1b615324565b6126d36139a5565b80156126e2576126e283613c73565b82601c8111156126f4576126f461542e565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008284141561273e575060016118ca565b836127555750670de0b6b3a76400008110156118ca565b82612762575060006118ca565b8284101561277e5781670de0b6b3a76400006126988587613dd6565b816127898486613dd6565b6126a290670de0b6b3a7640000615324565b6127a582826118d1565b610ece576127bd816001600160a01b03166014613ec2565b6127c8836020613ec2565b6040516020016127d9929190614d20565b60408051601f198184030181529082905262461bcd60e51b8252610c4491600401614de6565b61280982826118d1565b610ece57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61288f82826118d1565b15610ece57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561296357600080fd5b505afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016129ca93929190614dc7565b60006040518083038186803b1580156129e257600080fd5b505afa158015611162573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612a2957610e4f8361405e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a6257600080fd5b505afa925050508015612a92575060408051601f3d908101601f19168201909252612a8f91810190614ae6565b60015b612af55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c44565b6000805160206154948339815191528114612b645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c44565b50610e4f8383836140fa565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bcc57600080fd5b505afa158015612be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c049190614b59565b6001600160a01b031663d2f7265a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3c57600080fd5b505afa158015612c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c749190614b59565b6001600160a01b031663248391ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1d57600080fd5b505afa158015612d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d559190614ce1565b612d6090600a6151c9565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152604482015260640160206040518083038186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de59190614ae6565b905080612e2a5760405162461bcd60e51b81526020600482015260136024820152725072696365206e6f7420617661696c61626c6560681b6044820152606401610c44565b919050565b60fb5460ff16612e785760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c44565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16612edd5760005460ff1615612ee1565b303b155b612efd5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015612f1f576000805461ffff19166101011790555b612f2761411f565b612f2f614146565b612f3e888888888888886141c7565b8015611493576000805461ff00191690555050505050505050565b612f61614891565b60fb5460ff1615612f845760405162461bcd60e51b8152600401610c4490614eb1565b868610612fd35760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610c44565b4264ffffffffff168464ffffffffff16116130305760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610c44565b6001600160a01b0383166130865760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610c44565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130e057600080fd5b505afa1580156130f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131189190614b59565b604051636eb1769f60e11b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e9060440160206040518083038186803b15801561318357600080fd5b505afa158015613197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bb9190614ae6565b101561321f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b6064820152608401610c44565b600061322e30888a898961429d565b9050610133548160600151111561329f5760405162461bcd60e51b815260206004820152602f60248201527f5269736b4d6f64756c653a20534352206973206d6f7265207468616e206d617860448201526e696d756d2070657220706f6c69637960881b6064820152608401610c44565b806060015161013560008282546132b691906150eb565b9091555050610134546101355411156133115760405162461bcd60e51b815260206004820152601e60248201527f5269736b4d6f64756c653a20534352206c696d697420657863656564656400006044820152606401610c44565b604051630cb8251d60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906319704a3a9061336490859089908990600401614f74565b602060405180830381600087803b15801561337e57600080fd5b505af1158015613392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b69190614ae6565b825250979650505050505050565b60fb5460ff16156133e75760405162461bcd60e51b8152600401610c4490614eb1565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ea53390565b6000821580613429575081155b1561343657506000610a00565b8161344d6002676765c793fa10079d601b1b61514e565b61345990600019615324565b613463919061514e565b8311156134be5760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b676765c793fa10079d601b1b6134d560028261514e565b6134df8486615305565b6134e991906150eb565b6118ca919061514e565b600080613504633b9aca0084615305565b905082613515633b9aca008361514e565b14610a005760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610c44565b6000806135836002633b9aca0061514e565b9050600061359184836150eb565b9050818110156135e35760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610c44565b6116d2633b9aca008261514e565b60008215806135fe575081155b1561360b57506000610a00565b8161361f6002670de0b6b3a764000061514e565b61362b90600019615324565b613635919061514e565b8311156136905760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b670de0b6b3a76400006134d560028261514e565b6000816136f35760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b600061370060028461514e565b9050676765c793fa10079d601b1b61371a82600019615324565b613724919061514e565b84111561377f5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796676765c793fa10079d601b1b87615305565b6137a091906150eb565b6116d2919061514e565b60008061013860008587116137c1576000196137c4565b60015b610e106137d387610708615103565b6137dd9190615162565b6137e79190615274565b60040b60040b815260200190815260200160002090506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561385957600080fd5b505afa15801561386d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138919190614ce1565b61389c906012615361565b6138a790600a6151c9565b9050858711156138e7576138ce6138be8289615305565b6138c88389615305565b90613dd6565b6138e090670de0b6b3a7640000615324565b9150613914565b670de0b6b3a76400006139076138fd838a615305565b6138c8848a615305565b6139119190615324565b91505b60007f000000000000000000000000000000000000000000000000000000000000000061394260028261514e565b61394c90856150eb565b613956919061514e565b9050601e60ff82161061399057836139706001601e615361565b60ff16601e811061398357613983615444565b01549450505050506118ca565b838160ff16601e811061398357613983615444565b676765c793fa10079d601b1b61012f54111580156139c65750600061012f54115b613a205760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2073637250657263656e74616765206d757374206260448201526465203c3d3160d81b6064820152608401610c44565b613a36676765c793fa10079d601b1b6002615305565b6101305411158015613a605750613a596002676765c793fa10079d601b1b61514e565b6101305410155b613aac5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20325d6044820152606401610c44565b676765c793fa10079d601b1b610131541115613b155760405162461bcd60e51b815260206004820152602260248201527f56616c69646174696f6e3a20656e7375726f466565206d757374206265203c3d604482015261203160f01b6064820152608401610c44565b676765c793fa10079d601b1b610132541115613b8b5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a20736372496e74657265737452617465206d75737460448201526e206265203c3d20312028313030252960881b6064820152608401610c44565b61013554610134541015613c075760405162461bcd60e51b815260206004820152603760248201527f56616c69646174696f6e3a207363724c696d69742063616e2774206265206c6560448201527f7373207468616e2061637475616c20746f74616c5363720000000000000000006064820152608401610c44565b610136546001600160a01b0316613c715760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a2057616c6c65742063616e2774206265207a65726f604482015267206164647265737360c01b6064820152608401610c44565b565b6000600182601c811115613c8957613c8961542e565b613c939190615361565b61012d54600160ff929092169190911b91506201518090613cbb9064ffffffffff164261533b565b64ffffffffff161115613cf95761012d805466ffffffffffffff8316600160281b026001600160601b031990911664ffffffffff4216171790555050565b61012d54600160281b9004811666ffffffffffffff16613d585761012d805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166001600160601b0319909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610c44565b600081613e255760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b6000613e3260028461514e565b9050670de0b6b3a7640000613e4982600019615324565b613e53919061514e565b841115613eae5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796670de0b6b3a764000087615305565b60606000613ed1836002615305565b613edc9060026150eb565b67ffffffffffffffff811115613ef457613ef461545a565b6040519080825280601f01601f191660200182016040528015613f1e576020820181803683370190505b509050600360fc1b81600081518110613f3957613f39615444565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f6857613f68615444565b60200101906001600160f81b031916908160001a9053506000613f8c846002615305565b613f979060016150eb565b90505b600181111561400f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613fcb57613fcb615444565b1a60f81b828281518110613fe157613fe1615444565b60200101906001600160f81b031916908160001a90535060049490941c93614008816153b0565b9050613f9a565b5083156118ca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c44565b6001600160a01b0381163b6140cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c44565b60008051602061549483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6141038361465b565b6000825111806141105750805b15610e4f57610c5f838361469b565b600054610100900460ff16613c715760405162461bcd60e51b8152600401610c4490614f29565b600054610100900460ff166141615760005460ff1615614165565b303b155b6141815760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff161580156141a3576000805461ffff19166101011790555b6141ab61411f565b6141b361478f565b8015610faf576000805461ff001916905550565b600054610100900460ff166141e25760005460ff16156141e6565b303b155b6142025760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015614224576000805461ffff19166101011790555b87516142389061012e9060208b0190614909565b5061012f879055676765c793fa10079d601b1b61013055610131869055610132859055610133849055610134839055600061013581905561013680546001600160a01b0319166001600160a01b03851617905561429590336147be565b612f3e6139a5565b6142a5614891565b838511156143005760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610c44565b614308614891565b6001600160a01b038716610120820181905260408083018890526020808401889052608084018790528151635342825360e01b815291516143a89361180e936117ff939192635342825392600480840193919291829003018186803b15801561437057600080fd5b505afa158015614384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190614ae6565b8160a00181815250508060a0015161443461442d896001600160a01b031663bf8e934d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b505afa158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190614ae6565b87906135f1565b61443e9190615324565b606082018190526144855760405162461bcd60e51b81526020600482015260116024820152705343522063616e2774206265207a65726f60781b6044820152606401610c44565b64ffffffffff4281166101408301819052908416610160830181905261454b916145409161180e916e0612d847b578e7643c28ac00000000916144c8919061533b565b64ffffffffff168b6001600160a01b0316639d90724d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561450857600080fd5b505afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190614ae6565b6060830151906135f1565b816101000181815250506145a9614594886001600160a01b031663d44499a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b8261010001518360a001516118a591906150eb565b60c0820181905261010082015160a083015188926145c6916150eb565b6145d091906150eb565b111561461e5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610c44565b60c081015161010082015160a08301516146389089615324565b6146429190615324565b61464c9190615324565b60e08201529695505050505050565b6146648161405e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6147035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c44565b600080846001600160a01b03168460405161471e9190614d04565b600060405180830381855af49150503d8060008114614759576040519150601f19603f3d011682016040523d82523d6000602084013e61475e565b606091505b509150915061478682826040518060600160405280602781526020016154f4602791396147c8565b95945050505050565b600054610100900460ff166147b65760405162461bcd60e51b8152600401610c4490614f29565b613c71614801565b610ece82826127ff565b606083156147d75750816118ca565b8251156147e75782518084602001fd5b8160405162461bcd60e51b8152600401610c449190614de6565b600054610100900460ff166148285760405162461bcd60e51b8152600401610c4490614f29565b60fb805460ff19169055565b82601e8101928215614862579160200282015b82811115614862578235825591602001919060010190614847565b5061486e92915061497d565b5090565b604051806103c00160405280601e906020820280368337509192915050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b828054614915906153c7565b90600052602060002090601f0160209004810192826149375760008555614862565b82601f1061495057805160ff1916838001178555614862565b82800160010185558215614862579182015b82811115614862578251825591602001919060010190614962565b5b8082111561486e576000815560010161497e565b600067ffffffffffffffff808411156149ad576149ad61545a565b604051601f8501601f19908116603f011681019082821181831017156149d5576149d561545a565b816040528093508581528686860111156149ee57600080fd5b858560208301376000602087830101525050509392505050565b8035600481900b8114612e2a57600080fd5b803564ffffffffff81168114612e2a57600080fd5b600060208284031215614a4157600080fd5b81356118ca81615470565b60008060408385031215614a5f57600080fd5b8235614a6a81615470565b9150602083013567ffffffffffffffff811115614a8657600080fd5b8301601f81018513614a9757600080fd5b614aa685823560208401614992565b9150509250929050565b600060208284031215614ac257600080fd5b81516118ca81615485565b600060208284031215614adf57600080fd5b5035919050565b600060208284031215614af857600080fd5b5051919050565b60008060408385031215614b1257600080fd5b823591506020830135614b2481615470565b809150509250929050565b600060208284031215614b4157600080fd5b81356001600160e01b0319811681146118ca57600080fd5b600060208284031215614b6b57600080fd5b81516118ca81615470565b600060208284031215614b8857600080fd5b6118ca82614a08565b6000806103e0808486031215614ba657600080fd5b614baf84614a08565b9250848185011115614bc057600080fd5b506020830190509250929050565b600080600080600080600060e0888a031215614be957600080fd5b873567ffffffffffffffff811115614c0057600080fd5b8801601f81018a13614c1157600080fd5b614c208a823560208401614992565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614c5481615470565b8091505092959891949750929550565b60008060008060808587031215614c7a57600080fd5b843593506020850135614c8c81615485565b925060408501359150614ca160608601614a1a565b905092959194509250565b600080600060608486031215614cc157600080fd5b8335925060208401359150614cd860408501614a1a565b90509250925092565b600060208284031215614cf357600080fd5b815160ff811681146118ca57600080fd5b60008251614d16818460208701615384565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614d58816017850160208801615384565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d89816028840160208801615384565b01602801949350505050565b6103c08101818360005b601e811015614dbe578151835260209283019290910190600101614d9f565b50505092915050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152614e05816040850160208701615384565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006101c082019050845182526020850151602083015260408501516040830152606085015160608301526080850151608083015260a085015160a083015260c085015160c083015260e085015160e083015261010080860151818401525061012080860151614fee828501826001600160a01b03169052565b50506101408581015164ffffffffff81168483015250506101608581015164ffffffffff81168483015250506001600160a01b0384166101808301526001600160601b0383166101a08301526116d2565b8254815260018301546020820152600283015460408201526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e0820152600883015461010082015260098301546001600160a01b0381166101208301526101a082019064ffffffffff60a082901c81166101408501526150db6101608501828460c81c1664ffffffffff169052565b5050826101808301529392505050565b600082198211156150fe576150fe615402565b500190565b600064ffffffffff80831681851680830382111561512357615123615402565b01949350505050565b60006001600160601b0380831681851680830382111561512357615123615402565b60008261515d5761515d615418565b500490565b600064ffffffffff8084168061517a5761517a615418565b92169190910492915050565b600181815b808511156151c15781600019048211156151a7576151a7615402565b808516156151b457918102915b93841c939080029061518b565b509250929050565b60006118ca60ff8416836000826151e257506001610a00565b816151ef57506000610a00565b8160018114615205576002811461520f5761522b565b6001915050610a00565b60ff84111561522057615220615402565b50506001821b610a00565b5060208310610133831016604e8410600b841016171561524e575081810a610a00565b6152588383615186565b806000190482111561526c5761526c615402565b029392505050565b60008160040b8360040b647fffffffff6000821360008413838304851182821616156152a2576152a2615402565b647fffffffff1960008512828116878305871216156152c3576152c3615402565b600087129250858205871284841616156152df576152df615402565b858505871281841616156152f5576152f5615402565b5050509290910295945050505050565b600081600019048311821515161561531f5761531f615402565b500290565b60008282101561533657615336615402565b500390565b600064ffffffffff8381169083168181101561535957615359615402565b039392505050565b600060ff821660ff84168082101561537b5761537b615402565b90039392505050565b60005b8381101561539f578181015183820152602001615387565b83811115610c5f5750506000910152565b6000816153bf576153bf615402565b506000190190565b600181811c908216806153db57607f821691505b602082108114156153fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610faf57600080fd5b8015158114610faf57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb25ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212205321534a8aa4d16fa7a661a2247728706cd0567dfde62682e4bbc647a5e2e8bb64736f6c63430008060033",
1033
- "deployedBytecode": "0x6080604052600436106102e45760003560e01c80636f0dbe6f11610190578063ca996de3116100dc578063e42569d911610095578063f33323a41161006f578063f33323a41461092c578063f48d63ad1461094c578063f67b2bad14610979578063fbb812791461099b57600080fd5b8063e42569d9146108d0578063e5a6b10f146108f7578063e61735c01461090c57600080fd5b8063ca996de314610824578063d44499a81461083a578063d547741f14610850578063dab5d88d14610870578063deaa59df14610890578063e101a345146108b057600080fd5b80639cbbcd9211610149578063a5f8b2d611610123578063a5f8b2d614610785578063a9a24f27146107ba578063b9ea870a146107ee578063bf8e934d1461080e57600080fd5b80639cbbcd921461073a5780639d90724d1461075a578063a217fddf1461077057600080fd5b80636f0dbe6f14610678578063775ead48146106985780637ed5acfa146106b85780638456cb59146106e55780638bac3a24146106fa57806391d148541461071a57600080fd5b806338d52e0f1161024f5780634f1ef2861161020857806353428253116101e257806353428253146106125780635b494dd5146106285780635c975abb1461064a5780635d505fe71461066257600080fd5b80634f1ef286146105cb578063521eb273146105de57806352d1902d146105fd57600080fd5b806338d52e0f146104dd5780633f4ba83a1461051057806341ea6a0f14610525578063468a8c9f1461053b5780634a47a3e0146105765780634d15eb031461059857600080fd5b806324ea54f4116102a157806324ea54f4146103f45780632c7a69fe146104165780632f2ff15d1461045d57806336568abe1461047d5780633659cfe61461049d578063377e1cc9146104bd57600080fd5b806301ffc9a7146102e957806306fdde031461031e578063089a850414610340578063204d79231461036257806322875d63146103a4578063248a9ca3146103c4575b600080fd5b3480156102f557600080fd5b50610309610304366004614b2f565b6109cf565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b50610333610a06565b6040516103159190614de6565b34801561034c57600080fd5b5061036061035b366004614acd565b610a99565b005b34801561036e57600080fd5b506103967f288a15c4a15d470e4cd9cad2f113b91206b520c26dbd3dd74627f0c057baa19c81565b604051908152602001610315565b3480156103b057600080fd5b506103606103bf366004614acd565b610c65565b3480156103d057600080fd5b506103966103df366004614acd565b600090815260c9602052604090206001015490565b34801561040057600080fd5b5061039660008051602061553b83398151915281565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610315565b34801561046957600080fd5b50610360610478366004614aff565b610e29565b34801561048957600080fd5b50610360610498366004614aff565b610e54565b3480156104a957600080fd5b506103606104b8366004614a2f565b610ed2565b3480156104c957600080fd5b506103606104d8366004614acd565b610fb2565b3480156104e957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b34801561051c57600080fd5b5061036061116b565b34801561053157600080fd5b5061013454610396565b34801561054757600080fd5b5061012d546040805164ffffffffff83168152600160281b90920466ffffffffffffff16602083015201610315565b34801561058257600080fd5b5061039660008051602061551b83398151915281565b3480156105a457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b6103606105d9366004614a4c565b611281565b3480156105ea57600080fd5b50610136546001600160a01b0316610445565b34801561060957600080fd5b5061039661134e565b34801561061e57600080fd5b5061013054610396565b34801561063457600080fd5b506103966000805160206154d483398151915281565b34801561065657600080fd5b5060fb5460ff16610309565b34801561066e57600080fd5b5061013354610396565b34801561068457600080fd5b50610360610693366004614bce565b611401565b3480156106a457600080fd5b506103966106b3366004614c64565b61149d565b3480156106c457600080fd5b506106cf6201518081565b60405164ffffffffff9091168152602001610315565b3480156106f157600080fd5b506103606116da565b34801561070657600080fd5b50610396610715366004614cac565b6117e2565b34801561072657600080fd5b50610309610735366004614aff565b6118d1565b34801561074657600080fd5b50610360610755366004614acd565b6118fc565b34801561076657600080fd5b5061013254610396565b34801561077c57600080fd5b50610396600081565b34801561079157600080fd5b506107a56107a0366004614c64565b611999565b60408051928352602083019190915201610315565b3480156107c657600080fd5b506103967f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad181565b3480156107fa57600080fd5b50610360610809366004614acd565b611a53565b34801561081a57600080fd5b5061012f54610396565b34801561083057600080fd5b5061013554610396565b34801561084657600080fd5b5061013154610396565b34801561085c57600080fd5b5061036061086b366004614aff565b611c0e565b34801561087c57600080fd5b5061036061088b366004614acd565b611c34565b34801561089c57600080fd5b506103606108ab366004614a2f565b611dfb565b3480156108bc57600080fd5b506103606108cb366004614b91565b611e53565b3480156108dc57600080fd5b506108e5601e81565b60405160ff9091168152602001610315565b34801561090357600080fd5b50610445611ec3565b34801561091857600080fd5b50610360610927366004614acd565b611f5b565b34801561093857600080fd5b50610360610947366004614acd565b612120565b34801561095857600080fd5b5061096c610967366004614b76565b6124dc565b6040516103159190614d95565b34801561098557600080fd5b506103966000805160206154b483398151915281565b3480156109a757600080fd5b506103967fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b60006001600160e01b03198216637965db0b60e01b1480610a0057506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061012e8054610a16906153c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906153c7565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610b7793929190614dc7565b60006040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506000610bc060008051602061551b83398151915261252d565b159050801580610be45750610be461013154856af8277896582678ac000000612640565b610c4d5760405162461bcd60e51b815260206004820152602f60248201527f547765616b2065786365656465643a20656e7375726f46656520747765616b7360448201526e206f6e6c7920757020746f2033302560881b60648201526084015b60405180910390fd5b610131849055610c5f600a85836126cb565b50505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610d4393929190614dc7565b60006040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506000610d8c60008051602061551b83398151915261252d565b159050801580610dad5750610dad6101335485670429d069189e000061272c565b610e175760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206d6178536372506572506f6c69637920604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610133849055610c5f600b85836126cb565b600082815260c96020526040902060010154610e45813361279b565b610e4f83836127ff565b505050565b6001600160a01b0381163314610ec45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c44565b610ece8282612885565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f1b5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f64600080516020615494833981519152546001600160a01b031690565b6001600160a01b031614610f8a5760405162461bcd60e51b8152600401610c4490614e65565b610f93816128ec565b60408051600080825260208201909252610faf918391906129f6565b50565b60fb5460ff1615610fd55760405162461bcd60e51b8152600401610c4490614eb1565b60008181526101376020526040812090610fed612b70565b600b83015490915060ff161580611008575081600a01548111155b61106a5760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203e60448201526c2074726967676572507269636560981b6064820152608401610c44565b600b82015460ff1680611081575081600a01548110155b6110e35760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203c60448201526c2074726967676572507269636560981b6064820152608401610c44565b6001820154604051639e556b2b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639e556b2b9161113491869160040161503f565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b50505050505050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161124993929190614dc7565b60006040518083038186803b15801561126157600080fd5b505afa158015611275573d6000803e3d6000fd5b50505050610ece612e2f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112ca5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611313600080516020615494833981519152546001600160a01b031690565b6001600160a01b0316146113395760405162461bcd60e51b8152600401610c4490614e65565b611342826128ec565b610ece828260016129f6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c44565b5060008051602061549483398151915290565b600054610100900460ff1661141c5760005460ff1615611420565b303b155b61143c5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff1615801561145e576000805461ffff19166101011790555b61146d88888888888888612ec2565b61013980546001600160601b03191660011790558015611493576000805461ff00191690555b5050505050505050565b60008060006114ae87878787611999565b915091506000821161151b5760405162461bcd60e51b815260206004820152603060248201527f456974686572206475726174696f6e206f722070657263656e74616765206a7560448201526f1b5c081b9bdd081cdd5c1c1bdc9d195960821b6064820152608401610c44565b61013954600090611538906001600160601b03163060601b6150eb565b6000818152610137602052604090206101395491925090339061156d908990879087908b9086906001600160601b0316612f59565b80518355602081015160018085019190915560408201516002850155606082015160038501556080820151600485015560a0820151600585015560c0820151600685015560e082015160078501556101008201516008850155610120820151600985018054610140850151610160909501516001600160a01b039093166001600160c81b031990911617600160a01b64ffffffffff958616021764ffffffffff60c81b1916600160c81b949092169390930217909155610139805460009061163f9084906001600160601b031661512c565b82546101009290920a6001600160601b0381810219909316919092169190910217905550600a82018a9055600b8201805460ff19168a151590811790915560408051858152602081018d9052908101919091526001600160a01b038216907fac60a84d926e5f83b9718922af7ef1285ea8a8516516c4981ed3297d2e89ae0b9060600160405180910390a2509093505050505b949350505050565b60008051602061553b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190614b59565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b1580156117c257600080fd5b505afa1580156117d6573d6000803e3d6000fd5b50505050610faf6133c4565b60008061181361180e6117ff6117f86101305490565b879061341c565b611808886134f3565b9061341c565b613571565b905060008161182f61182861180e61012f5490565b88906135f1565b6118399190615324565b9050600061187961180e6e0612d847b578e7643c28ac000000006118644264ffffffffff8a16615324565b610132545b6118739190615305565b906136a4565b9050600061188783836135f1565b905060006118ab61189b61180e6101315490565b6118a584886150eb565b906135f1565b9050816118b882876150eb565b6118c291906150eb565b955050505050505b9392505050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461197e5760405162461bcd60e51b815260206004820152602160248201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6044820152601b60fa1b6064820152608401610c44565b8061013560008282546119919190615324565b909155505050565b60008060006119a6612b70565b90508580156119b457508681115b806119c75750851580156119c757508681105b611a135760405162461bcd60e51b815260206004820152601e60248201527f507269636520616c726561647920617420747269676765722076616c756500006044820152606401610c44565b611a278188611a22428861533b565b6137aa565b915081611a3b576000809250925050611a4a565b611a468583866117e2565b9250505b94509492505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b029190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611b3193929190614dc7565b60006040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506000611b7a60008051602061551b83398151915261252d565b159050801580611b9e5750611b9e61013054856a52b7d2dcc80cd2e4000000612640565b611bfc5760405162461bcd60e51b815260206004820152602960248201527f547765616b2065786365656465643a206d6f6320747765616b73206f6e6c7920604482015268757020746f2031302560b81b6064820152608401610c44565b610130849055610c5f600885836126cb565b600082815260c96020526040902060010154611c2a813361279b565b610e4f8383612885565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cab57600080fd5b505afa158015611cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce39190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611d1293929190614dc7565b60006040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506000611d5b60008051602061551b83398151915261252d565b159050801580611d7f5750611d7f61013254856af8277896582678ac000000612640565b611de95760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20736372496e7465726573745261746520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610132849055610c5f600985836126cb565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1611e26813361279b565b61013680546001600160a01b0319166001600160a01b038416908117909155610ece90600f9060006126cb565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611e7e813361279b565b60fb5460ff1615611ea15760405162461bcd60e51b8152600401610c4490614eb1565b600483810b900b600090815261013860205260409020610c5f9083601e614834565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190614b59565b905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd257600080fd5b505afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161203993929190614dc7565b60006040518083038186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b50505050600061208260008051602061551b83398151915261252d565b1590508015806120a657506120a661012f54856a52b7d2dcc80cd2e4000000612640565b61210e5760405162461bcd60e51b815260206004820152603360248201527f547765616b2065786365656465643a2073637250657263656e7461676520747760448201527265616b73206f6e6c7920757020746f2031302560681b6064820152608401610c44565b61012f849055610c5f600785836126cb565b6000805160206154b483398151915260008051602061551b8339815191526000805160206154d48339815191526121568361252d565b61224b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161221a93929190614dc7565b60006040518083038186803b15801561223257600080fd5b505afa158015612246573d6000803e3d6000fd5b505050505b600061226460008051602061551b83398151915261252d565b15801561228557506122836000805160206154b483398151915261252d565b155b90508015806122a557506122a5610134548667016345785d8a000061272c565b6123085760405162461bcd60e51b815260206004820152602e60248201527f547765616b2065786365656465643a207363724c696d697420747765616b732060448201526d6f6e6c7920757020746f2031302560901b6064820152608401610c44565b610134548511158061232c575061232c6000805160206154b483398151915261252d565b806123d25750846123d067016345785d8a00007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b77ddfea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561239857600080fd5b505afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a59190614ae6565b115b6124595760405162461bcd60e51b815260206004820152604c60248201527f547765616b2065786365656465643a20496e6372656173652c203e3d3130252060448201527f6f662074686520746f74616c206c69717569646974792c20726571756972657360648201526b204c4556454c315f524f4c4560a01b608482015260a401610c44565b610135548510156124c35760405162461bcd60e51b815260206004820152602e60248201527f43616e27742073657420534352206c657373207468616e2063757272656e742060448201526d29a1a91030b63637b1b0ba34b7b760911b6064820152608401610c44565b6101348590556124d5600c86836126cb565b5050505050565b6124e4614872565b600482810b900b600090815261013860205260409081902081516103c081019283905291601e9082845b81548152602001906001019080831161250e5750505050509050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561258857600080fd5b505afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c09190614b59565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b15801561260857600080fd5b505afa15801561261c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190614ab0565b600082841415612652575060016118ca565b8361266c5750676765c793fa10079d601b1b8110156118ca565b82612679575060006118ca565b828410156126ab5781676765c793fa10079d601b1b61269885876136a4565b6126a29190615324565b111590506118ca565b816126b684866136a4565b6126a290676765c793fa10079d601b1b615324565b6126d36139a5565b80156126e2576126e283613c73565b82601c8111156126f4576126f461542e565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008284141561273e575060016118ca565b836127555750670de0b6b3a76400008110156118ca565b82612762575060006118ca565b8284101561277e5781670de0b6b3a76400006126988587613dd6565b816127898486613dd6565b6126a290670de0b6b3a7640000615324565b6127a582826118d1565b610ece576127bd816001600160a01b03166014613ec2565b6127c8836020613ec2565b6040516020016127d9929190614d20565b60408051601f198184030181529082905262461bcd60e51b8252610c4491600401614de6565b61280982826118d1565b610ece57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61288f82826118d1565b15610ece57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561296357600080fd5b505afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016129ca93929190614dc7565b60006040518083038186803b1580156129e257600080fd5b505afa158015611162573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612a2957610e4f8361405e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a6257600080fd5b505afa925050508015612a92575060408051601f3d908101601f19168201909252612a8f91810190614ae6565b60015b612af55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c44565b6000805160206154948339815191528114612b645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c44565b50610e4f8383836140fa565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bcc57600080fd5b505afa158015612be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c049190614b59565b6001600160a01b031663d2f7265a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3c57600080fd5b505afa158015612c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c749190614b59565b6001600160a01b031663248391ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1d57600080fd5b505afa158015612d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d559190614ce1565b612d6090600a6151c9565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152604482015260640160206040518083038186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de59190614ae6565b905080612e2a5760405162461bcd60e51b81526020600482015260136024820152725072696365206e6f7420617661696c61626c6560681b6044820152606401610c44565b919050565b60fb5460ff16612e785760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c44565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16612edd5760005460ff1615612ee1565b303b155b612efd5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015612f1f576000805461ffff19166101011790555b612f2761411f565b612f2f614146565b612f3e888888888888886141c7565b8015611493576000805461ff00191690555050505050505050565b612f61614891565b60fb5460ff1615612f845760405162461bcd60e51b8152600401610c4490614eb1565b868610612fd35760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610c44565b4264ffffffffff168464ffffffffff16116130305760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610c44565b6001600160a01b0383166130865760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610c44565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130e057600080fd5b505afa1580156130f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131189190614b59565b604051636eb1769f60e11b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e9060440160206040518083038186803b15801561318357600080fd5b505afa158015613197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bb9190614ae6565b101561321f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b6064820152608401610c44565b600061322e30888a898961429d565b9050610133548160600151111561329f5760405162461bcd60e51b815260206004820152602f60248201527f5269736b4d6f64756c653a20534352206973206d6f7265207468616e206d617860448201526e696d756d2070657220706f6c69637960881b6064820152608401610c44565b806060015161013560008282546132b691906150eb565b9091555050610134546101355411156133115760405162461bcd60e51b815260206004820152601e60248201527f5269736b4d6f64756c653a20534352206c696d697420657863656564656400006044820152606401610c44565b604051630cb8251d60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906319704a3a9061336490859089908990600401614f74565b602060405180830381600087803b15801561337e57600080fd5b505af1158015613392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b69190614ae6565b825250979650505050505050565b60fb5460ff16156133e75760405162461bcd60e51b8152600401610c4490614eb1565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ea53390565b6000821580613429575081155b1561343657506000610a00565b8161344d6002676765c793fa10079d601b1b61514e565b61345990600019615324565b613463919061514e565b8311156134be5760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b676765c793fa10079d601b1b6134d560028261514e565b6134df8486615305565b6134e991906150eb565b6118ca919061514e565b600080613504633b9aca0084615305565b905082613515633b9aca008361514e565b14610a005760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610c44565b6000806135836002633b9aca0061514e565b9050600061359184836150eb565b9050818110156135e35760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610c44565b6116d2633b9aca008261514e565b60008215806135fe575081155b1561360b57506000610a00565b8161361f6002670de0b6b3a764000061514e565b61362b90600019615324565b613635919061514e565b8311156136905760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b670de0b6b3a76400006134d560028261514e565b6000816136f35760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b600061370060028461514e565b9050676765c793fa10079d601b1b61371a82600019615324565b613724919061514e565b84111561377f5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796676765c793fa10079d601b1b87615305565b6137a091906150eb565b6116d2919061514e565b60008061013860008587116137c1576000196137c4565b60015b610e106137d387610708615103565b6137dd9190615162565b6137e79190615274565b60040b60040b815260200190815260200160002090506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561385957600080fd5b505afa15801561386d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138919190614ce1565b61389c906012615361565b6138a790600a6151c9565b9050858711156138e7576138ce6138be8289615305565b6138c88389615305565b90613dd6565b6138e090670de0b6b3a7640000615324565b9150613914565b670de0b6b3a76400006139076138fd838a615305565b6138c8848a615305565b6139119190615324565b91505b60007f000000000000000000000000000000000000000000000000000000000000000061394260028261514e565b61394c90856150eb565b613956919061514e565b9050601e60ff82161061399057836139706001601e615361565b60ff16601e811061398357613983615444565b01549450505050506118ca565b838160ff16601e811061398357613983615444565b676765c793fa10079d601b1b61012f54111580156139c65750600061012f54115b613a205760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2073637250657263656e74616765206d757374206260448201526465203c3d3160d81b6064820152608401610c44565b613a36676765c793fa10079d601b1b6002615305565b6101305411158015613a605750613a596002676765c793fa10079d601b1b61514e565b6101305410155b613aac5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20325d6044820152606401610c44565b676765c793fa10079d601b1b610131541115613b155760405162461bcd60e51b815260206004820152602260248201527f56616c69646174696f6e3a20656e7375726f466565206d757374206265203c3d604482015261203160f01b6064820152608401610c44565b676765c793fa10079d601b1b610132541115613b8b5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a20736372496e74657265737452617465206d75737460448201526e206265203c3d20312028313030252960881b6064820152608401610c44565b61013554610134541015613c075760405162461bcd60e51b815260206004820152603760248201527f56616c69646174696f6e3a207363724c696d69742063616e2774206265206c6560448201527f7373207468616e2061637475616c20746f74616c5363720000000000000000006064820152608401610c44565b610136546001600160a01b0316613c715760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a2057616c6c65742063616e2774206265207a65726f604482015267206164647265737360c01b6064820152608401610c44565b565b6000600182601c811115613c8957613c8961542e565b613c939190615361565b61012d54600160ff929092169190911b91506201518090613cbb9064ffffffffff164261533b565b64ffffffffff161115613cf95761012d805466ffffffffffffff8316600160281b026001600160601b031990911664ffffffffff4216171790555050565b61012d54600160281b9004811666ffffffffffffff16613d585761012d805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166001600160601b0319909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610c44565b600081613e255760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b6000613e3260028461514e565b9050670de0b6b3a7640000613e4982600019615324565b613e53919061514e565b841115613eae5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796670de0b6b3a764000087615305565b60606000613ed1836002615305565b613edc9060026150eb565b67ffffffffffffffff811115613ef457613ef461545a565b6040519080825280601f01601f191660200182016040528015613f1e576020820181803683370190505b509050600360fc1b81600081518110613f3957613f39615444565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f6857613f68615444565b60200101906001600160f81b031916908160001a9053506000613f8c846002615305565b613f979060016150eb565b90505b600181111561400f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613fcb57613fcb615444565b1a60f81b828281518110613fe157613fe1615444565b60200101906001600160f81b031916908160001a90535060049490941c93614008816153b0565b9050613f9a565b5083156118ca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c44565b6001600160a01b0381163b6140cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c44565b60008051602061549483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6141038361465b565b6000825111806141105750805b15610e4f57610c5f838361469b565b600054610100900460ff16613c715760405162461bcd60e51b8152600401610c4490614f29565b600054610100900460ff166141615760005460ff1615614165565b303b155b6141815760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff161580156141a3576000805461ffff19166101011790555b6141ab61411f565b6141b361478f565b8015610faf576000805461ff001916905550565b600054610100900460ff166141e25760005460ff16156141e6565b303b155b6142025760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015614224576000805461ffff19166101011790555b87516142389061012e9060208b0190614909565b5061012f879055676765c793fa10079d601b1b61013055610131869055610132859055610133849055610134839055600061013581905561013680546001600160a01b0319166001600160a01b03851617905561429590336147be565b612f3e6139a5565b6142a5614891565b838511156143005760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610c44565b614308614891565b6001600160a01b038716610120820181905260408083018890526020808401889052608084018790528151635342825360e01b815291516143a89361180e936117ff939192635342825392600480840193919291829003018186803b15801561437057600080fd5b505afa158015614384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190614ae6565b8160a00181815250508060a0015161443461442d896001600160a01b031663bf8e934d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b505afa158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190614ae6565b87906135f1565b61443e9190615324565b606082018190526144855760405162461bcd60e51b81526020600482015260116024820152705343522063616e2774206265207a65726f60781b6044820152606401610c44565b64ffffffffff4281166101408301819052908416610160830181905261454b916145409161180e916e0612d847b578e7643c28ac00000000916144c8919061533b565b64ffffffffff168b6001600160a01b0316639d90724d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561450857600080fd5b505afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190614ae6565b6060830151906135f1565b816101000181815250506145a9614594886001600160a01b031663d44499a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b8261010001518360a001516118a591906150eb565b60c0820181905261010082015160a083015188926145c6916150eb565b6145d091906150eb565b111561461e5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610c44565b60c081015161010082015160a08301516146389089615324565b6146429190615324565b61464c9190615324565b60e08201529695505050505050565b6146648161405e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6147035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c44565b600080846001600160a01b03168460405161471e9190614d04565b600060405180830381855af49150503d8060008114614759576040519150601f19603f3d011682016040523d82523d6000602084013e61475e565b606091505b509150915061478682826040518060600160405280602781526020016154f4602791396147c8565b95945050505050565b600054610100900460ff166147b65760405162461bcd60e51b8152600401610c4490614f29565b613c71614801565b610ece82826127ff565b606083156147d75750816118ca565b8251156147e75782518084602001fd5b8160405162461bcd60e51b8152600401610c449190614de6565b600054610100900460ff166148285760405162461bcd60e51b8152600401610c4490614f29565b60fb805460ff19169055565b82601e8101928215614862579160200282015b82811115614862578235825591602001919060010190614847565b5061486e92915061497d565b5090565b604051806103c00160405280601e906020820280368337509192915050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b828054614915906153c7565b90600052602060002090601f0160209004810192826149375760008555614862565b82601f1061495057805160ff1916838001178555614862565b82800160010185558215614862579182015b82811115614862578251825591602001919060010190614962565b5b8082111561486e576000815560010161497e565b600067ffffffffffffffff808411156149ad576149ad61545a565b604051601f8501601f19908116603f011681019082821181831017156149d5576149d561545a565b816040528093508581528686860111156149ee57600080fd5b858560208301376000602087830101525050509392505050565b8035600481900b8114612e2a57600080fd5b803564ffffffffff81168114612e2a57600080fd5b600060208284031215614a4157600080fd5b81356118ca81615470565b60008060408385031215614a5f57600080fd5b8235614a6a81615470565b9150602083013567ffffffffffffffff811115614a8657600080fd5b8301601f81018513614a9757600080fd5b614aa685823560208401614992565b9150509250929050565b600060208284031215614ac257600080fd5b81516118ca81615485565b600060208284031215614adf57600080fd5b5035919050565b600060208284031215614af857600080fd5b5051919050565b60008060408385031215614b1257600080fd5b823591506020830135614b2481615470565b809150509250929050565b600060208284031215614b4157600080fd5b81356001600160e01b0319811681146118ca57600080fd5b600060208284031215614b6b57600080fd5b81516118ca81615470565b600060208284031215614b8857600080fd5b6118ca82614a08565b6000806103e0808486031215614ba657600080fd5b614baf84614a08565b9250848185011115614bc057600080fd5b506020830190509250929050565b600080600080600080600060e0888a031215614be957600080fd5b873567ffffffffffffffff811115614c0057600080fd5b8801601f81018a13614c1157600080fd5b614c208a823560208401614992565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614c5481615470565b8091505092959891949750929550565b60008060008060808587031215614c7a57600080fd5b843593506020850135614c8c81615485565b925060408501359150614ca160608601614a1a565b905092959194509250565b600080600060608486031215614cc157600080fd5b8335925060208401359150614cd860408501614a1a565b90509250925092565b600060208284031215614cf357600080fd5b815160ff811681146118ca57600080fd5b60008251614d16818460208701615384565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614d58816017850160208801615384565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d89816028840160208801615384565b01602801949350505050565b6103c08101818360005b601e811015614dbe578151835260209283019290910190600101614d9f565b50505092915050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152614e05816040850160208701615384565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006101c082019050845182526020850151602083015260408501516040830152606085015160608301526080850151608083015260a085015160a083015260c085015160c083015260e085015160e083015261010080860151818401525061012080860151614fee828501826001600160a01b03169052565b50506101408581015164ffffffffff81168483015250506101608581015164ffffffffff81168483015250506001600160a01b0384166101808301526001600160601b0383166101a08301526116d2565b8254815260018301546020820152600283015460408201526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e0820152600883015461010082015260098301546001600160a01b0381166101208301526101a082019064ffffffffff60a082901c81166101408501526150db6101608501828460c81c1664ffffffffff169052565b5050826101808301529392505050565b600082198211156150fe576150fe615402565b500190565b600064ffffffffff80831681851680830382111561512357615123615402565b01949350505050565b60006001600160601b0380831681851680830382111561512357615123615402565b60008261515d5761515d615418565b500490565b600064ffffffffff8084168061517a5761517a615418565b92169190910492915050565b600181815b808511156151c15781600019048211156151a7576151a7615402565b808516156151b457918102915b93841c939080029061518b565b509250929050565b60006118ca60ff8416836000826151e257506001610a00565b816151ef57506000610a00565b8160018114615205576002811461520f5761522b565b6001915050610a00565b60ff84111561522057615220615402565b50506001821b610a00565b5060208310610133831016604e8410600b841016171561524e575081810a610a00565b6152588383615186565b806000190482111561526c5761526c615402565b029392505050565b60008160040b8360040b647fffffffff6000821360008413838304851182821616156152a2576152a2615402565b647fffffffff1960008512828116878305871216156152c3576152c3615402565b600087129250858205871284841616156152df576152df615402565b858505871281841616156152f5576152f5615402565b5050509290910295945050505050565b600081600019048311821515161561531f5761531f615402565b500290565b60008282101561533657615336615402565b500390565b600064ffffffffff8381169083168181101561535957615359615402565b039392505050565b600060ff821660ff84168082101561537b5761537b615402565b90039392505050565b60005b8381101561539f578181015183820152602001615387565b83811115610c5f5750506000910152565b6000816153bf576153bf615402565b506000190190565b600181811c908216806153db57607f821691505b602082108114156153fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610faf57600080fd5b8015158114610faf57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb25ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212205321534a8aa4d16fa7a661a2247728706cd0567dfde62682e4bbc647a5e2e8bb64736f6c63430008060033",
1034
- "linkReferences": {},
1035
- "deployedLinkReferences": {}
1036
- }