@aastar/core 0.16.7

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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/dist/abis/BLSAggregator.json +686 -0
  3. package/dist/abis/BLSValidator.json +42 -0
  4. package/dist/abis/DVTValidator.json +368 -0
  5. package/dist/abis/Eip7702Support.json +24 -0
  6. package/dist/abis/EntryPoint.json +1382 -0
  7. package/dist/abis/GToken.json +513 -0
  8. package/dist/abis/GTokenStaking.json +949 -0
  9. package/dist/abis/LegacyAccount.json +625 -0
  10. package/dist/abis/MySBT.json +1518 -0
  11. package/dist/abis/Paymaster.json +1143 -0
  12. package/dist/abis/PaymasterFactory.json +640 -0
  13. package/dist/abis/Registry.json +1942 -0
  14. package/dist/abis/ReputationSystem.json +699 -0
  15. package/dist/abis/SenderCreator.json +99 -0
  16. package/dist/abis/Simple7702Account.json +395 -0
  17. package/dist/abis/SimpleAccount.json +560 -0
  18. package/dist/abis/SimpleAccountFactory.json +111 -0
  19. package/dist/abis/SimpleAccountFactoryV08.json +87 -0
  20. package/dist/abis/SimpleAccountV08.json +557 -0
  21. package/dist/abis/SuperPaymaster.json +1781 -0
  22. package/dist/abis/UserOperationLib.json +57 -0
  23. package/dist/abis/abi.config.json +24 -0
  24. package/dist/abis/index.d.ts +1126 -0
  25. package/dist/abis/index.js +91 -0
  26. package/dist/abis/xPNTsFactory.json +718 -0
  27. package/dist/abis/xPNTsToken.json +1280 -0
  28. package/dist/actions/StateValidator.d.ts +68 -0
  29. package/dist/actions/StateValidator.js +187 -0
  30. package/dist/actions/StateValidator.test.d.ts +1 -0
  31. package/dist/actions/StateValidator.test.js +144 -0
  32. package/dist/actions/account.d.ts +55 -0
  33. package/dist/actions/account.js +133 -0
  34. package/dist/actions/account.test.d.ts +1 -0
  35. package/dist/actions/account.test.js +118 -0
  36. package/dist/actions/aggregator.d.ts +17 -0
  37. package/dist/actions/aggregator.js +31 -0
  38. package/dist/actions/aggregator.test.d.ts +1 -0
  39. package/dist/actions/aggregator.test.js +67 -0
  40. package/dist/actions/dvt.d.ts +30 -0
  41. package/dist/actions/dvt.js +41 -0
  42. package/dist/actions/dvt.test.d.ts +1 -0
  43. package/dist/actions/dvt.test.js +98 -0
  44. package/dist/actions/entryPoint.d.ts +90 -0
  45. package/dist/actions/entryPoint.js +211 -0
  46. package/dist/actions/entryPoint.test.d.ts +1 -0
  47. package/dist/actions/entryPoint.test.js +139 -0
  48. package/dist/actions/factory.d.ts +215 -0
  49. package/dist/actions/factory.js +442 -0
  50. package/dist/actions/factory.test.d.ts +1 -0
  51. package/dist/actions/factory.test.js +197 -0
  52. package/dist/actions/faucet.d.ts +48 -0
  53. package/dist/actions/faucet.js +337 -0
  54. package/dist/actions/faucet.test.d.ts +1 -0
  55. package/dist/actions/faucet.test.js +120 -0
  56. package/dist/actions/gtokenExtended.d.ts +39 -0
  57. package/dist/actions/gtokenExtended.js +115 -0
  58. package/dist/actions/gtokenExtended.test.d.ts +1 -0
  59. package/dist/actions/gtokenExtended.test.js +118 -0
  60. package/dist/actions/index.d.ts +15 -0
  61. package/dist/actions/index.js +17 -0
  62. package/dist/actions/paymasterV4.d.ts +170 -0
  63. package/dist/actions/paymasterV4.js +334 -0
  64. package/dist/actions/paymasterV4.test.d.ts +1 -0
  65. package/dist/actions/paymasterV4.test.js +159 -0
  66. package/dist/actions/registry.d.ts +246 -0
  67. package/dist/actions/registry.js +667 -0
  68. package/dist/actions/registry.test.d.ts +1 -0
  69. package/dist/actions/registry.test.js +360 -0
  70. package/dist/actions/reputation.d.ts +129 -0
  71. package/dist/actions/reputation.js +281 -0
  72. package/dist/actions/reputation.test.d.ts +1 -0
  73. package/dist/actions/reputation.test.js +169 -0
  74. package/dist/actions/sbt.d.ts +191 -0
  75. package/dist/actions/sbt.js +533 -0
  76. package/dist/actions/sbt.test.d.ts +1 -0
  77. package/dist/actions/sbt.test.js +256 -0
  78. package/dist/actions/staking.d.ts +132 -0
  79. package/dist/actions/staking.js +330 -0
  80. package/dist/actions/staking.test.d.ts +1 -0
  81. package/dist/actions/staking.test.js +223 -0
  82. package/dist/actions/superPaymaster.d.ts +237 -0
  83. package/dist/actions/superPaymaster.js +644 -0
  84. package/dist/actions/superPaymaster.test.d.ts +1 -0
  85. package/dist/actions/superPaymaster.test.js +287 -0
  86. package/dist/actions/tokens.d.ts +229 -0
  87. package/dist/actions/tokens.js +415 -0
  88. package/dist/actions/tokens.test.d.ts +1 -0
  89. package/dist/actions/tokens.test.js +53 -0
  90. package/dist/actions/validators.d.ts +194 -0
  91. package/dist/actions/validators.js +433 -0
  92. package/dist/actions/validators.test.d.ts +1 -0
  93. package/dist/actions/validators.test.js +215 -0
  94. package/dist/branding.d.ts +30 -0
  95. package/dist/branding.js +30 -0
  96. package/dist/clients/BaseClient.d.ts +25 -0
  97. package/dist/clients/BaseClient.js +66 -0
  98. package/dist/clients/types.d.ts +60 -0
  99. package/dist/clients/types.js +1 -0
  100. package/dist/clients.d.ts +5 -0
  101. package/dist/clients.js +11 -0
  102. package/dist/communities.d.ts +52 -0
  103. package/dist/communities.js +73 -0
  104. package/dist/config/ContractConfigManager.d.ts +20 -0
  105. package/dist/config/ContractConfigManager.js +48 -0
  106. package/dist/constants.d.ts +88 -0
  107. package/dist/constants.js +125 -0
  108. package/dist/contract-addresses.d.ts +110 -0
  109. package/dist/contract-addresses.js +99 -0
  110. package/dist/contracts.d.ts +424 -0
  111. package/dist/contracts.js +343 -0
  112. package/dist/contracts.test.d.ts +1 -0
  113. package/dist/contracts.test.js +40 -0
  114. package/dist/crypto/blsSigner.d.ts +64 -0
  115. package/dist/crypto/blsSigner.js +98 -0
  116. package/dist/crypto/index.d.ts +1 -0
  117. package/dist/crypto/index.js +1 -0
  118. package/dist/index.d.ts +21 -0
  119. package/dist/index.js +21 -0
  120. package/dist/networks.d.ts +127 -0
  121. package/dist/networks.js +118 -0
  122. package/dist/requirementChecker.d.ts +38 -0
  123. package/dist/requirementChecker.js +139 -0
  124. package/dist/requirementChecker.test.d.ts +1 -0
  125. package/dist/requirementChecker.test.js +60 -0
  126. package/dist/roles.d.ts +204 -0
  127. package/dist/roles.js +211 -0
  128. package/dist/roles.test.d.ts +1 -0
  129. package/dist/roles.test.js +23 -0
  130. package/dist/utils/validation.d.ts +24 -0
  131. package/dist/utils/validation.js +56 -0
  132. package/dist/utils/validation.test.d.ts +1 -0
  133. package/dist/utils/validation.test.js +40 -0
  134. package/dist/utils.d.ts +12 -0
  135. package/dist/utils.js +14 -0
  136. package/package.json +33 -0
@@ -0,0 +1,1942 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "type": "constructor",
5
+ "inputs": [
6
+ {
7
+ "name": "",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "_gtokenStaking",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ },
16
+ {
17
+ "name": "_mysbt",
18
+ "type": "address",
19
+ "internalType": "address"
20
+ }
21
+ ],
22
+ "stateMutability": "nonpayable"
23
+ },
24
+ {
25
+ "type": "function",
26
+ "name": "GTOKEN_STAKING",
27
+ "inputs": [],
28
+ "outputs": [
29
+ {
30
+ "name": "",
31
+ "type": "address",
32
+ "internalType": "contract IGTokenStaking"
33
+ }
34
+ ],
35
+ "stateMutability": "view"
36
+ },
37
+ {
38
+ "type": "function",
39
+ "name": "MYSBT",
40
+ "inputs": [],
41
+ "outputs": [
42
+ {
43
+ "name": "",
44
+ "type": "address",
45
+ "internalType": "contract IMySBT"
46
+ }
47
+ ],
48
+ "stateMutability": "view"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "ROLE_ANODE",
53
+ "inputs": [],
54
+ "outputs": [
55
+ {
56
+ "name": "",
57
+ "type": "bytes32",
58
+ "internalType": "bytes32"
59
+ }
60
+ ],
61
+ "stateMutability": "view"
62
+ },
63
+ {
64
+ "type": "function",
65
+ "name": "ROLE_COMMUNITY",
66
+ "inputs": [],
67
+ "outputs": [
68
+ {
69
+ "name": "",
70
+ "type": "bytes32",
71
+ "internalType": "bytes32"
72
+ }
73
+ ],
74
+ "stateMutability": "view"
75
+ },
76
+ {
77
+ "type": "function",
78
+ "name": "ROLE_DVT",
79
+ "inputs": [],
80
+ "outputs": [
81
+ {
82
+ "name": "",
83
+ "type": "bytes32",
84
+ "internalType": "bytes32"
85
+ }
86
+ ],
87
+ "stateMutability": "view"
88
+ },
89
+ {
90
+ "type": "function",
91
+ "name": "ROLE_ENDUSER",
92
+ "inputs": [],
93
+ "outputs": [
94
+ {
95
+ "name": "",
96
+ "type": "bytes32",
97
+ "internalType": "bytes32"
98
+ }
99
+ ],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "ROLE_KMS",
105
+ "inputs": [],
106
+ "outputs": [
107
+ {
108
+ "name": "",
109
+ "type": "bytes32",
110
+ "internalType": "bytes32"
111
+ }
112
+ ],
113
+ "stateMutability": "view"
114
+ },
115
+ {
116
+ "type": "function",
117
+ "name": "ROLE_PAYMASTER_AOA",
118
+ "inputs": [],
119
+ "outputs": [
120
+ {
121
+ "name": "",
122
+ "type": "bytes32",
123
+ "internalType": "bytes32"
124
+ }
125
+ ],
126
+ "stateMutability": "view"
127
+ },
128
+ {
129
+ "type": "function",
130
+ "name": "ROLE_PAYMASTER_SUPER",
131
+ "inputs": [],
132
+ "outputs": [
133
+ {
134
+ "name": "",
135
+ "type": "bytes32",
136
+ "internalType": "bytes32"
137
+ }
138
+ ],
139
+ "stateMutability": "view"
140
+ },
141
+ {
142
+ "type": "function",
143
+ "name": "SUPER_PAYMASTER",
144
+ "inputs": [],
145
+ "outputs": [
146
+ {
147
+ "name": "",
148
+ "type": "address",
149
+ "internalType": "address"
150
+ }
151
+ ],
152
+ "stateMutability": "view"
153
+ },
154
+ {
155
+ "type": "function",
156
+ "name": "accountToUser",
157
+ "inputs": [
158
+ {
159
+ "name": "",
160
+ "type": "address",
161
+ "internalType": "address"
162
+ }
163
+ ],
164
+ "outputs": [
165
+ {
166
+ "name": "",
167
+ "type": "address",
168
+ "internalType": "address"
169
+ }
170
+ ],
171
+ "stateMutability": "view"
172
+ },
173
+ {
174
+ "type": "function",
175
+ "name": "addLevelThreshold",
176
+ "inputs": [
177
+ {
178
+ "name": "threshold",
179
+ "type": "uint256",
180
+ "internalType": "uint256"
181
+ }
182
+ ],
183
+ "outputs": [],
184
+ "stateMutability": "nonpayable"
185
+ },
186
+ {
187
+ "type": "function",
188
+ "name": "adminConfigureRole",
189
+ "inputs": [
190
+ {
191
+ "name": "roleId",
192
+ "type": "bytes32",
193
+ "internalType": "bytes32"
194
+ },
195
+ {
196
+ "name": "minStake",
197
+ "type": "uint256",
198
+ "internalType": "uint256"
199
+ },
200
+ {
201
+ "name": "entryBurn",
202
+ "type": "uint256",
203
+ "internalType": "uint256"
204
+ },
205
+ {
206
+ "name": "exitFeePercent",
207
+ "type": "uint256",
208
+ "internalType": "uint256"
209
+ },
210
+ {
211
+ "name": "minExitFee",
212
+ "type": "uint256",
213
+ "internalType": "uint256"
214
+ }
215
+ ],
216
+ "outputs": [],
217
+ "stateMutability": "nonpayable"
218
+ },
219
+ {
220
+ "type": "function",
221
+ "name": "batchUpdateGlobalReputation",
222
+ "inputs": [
223
+ {
224
+ "name": "proposalId",
225
+ "type": "uint256",
226
+ "internalType": "uint256"
227
+ },
228
+ {
229
+ "name": "users",
230
+ "type": "address[]",
231
+ "internalType": "address[]"
232
+ },
233
+ {
234
+ "name": "newScores",
235
+ "type": "uint256[]",
236
+ "internalType": "uint256[]"
237
+ },
238
+ {
239
+ "name": "epoch",
240
+ "type": "uint256",
241
+ "internalType": "uint256"
242
+ },
243
+ {
244
+ "name": "proof",
245
+ "type": "bytes",
246
+ "internalType": "bytes"
247
+ }
248
+ ],
249
+ "outputs": [],
250
+ "stateMutability": "nonpayable"
251
+ },
252
+ {
253
+ "type": "function",
254
+ "name": "blsAggregator",
255
+ "inputs": [],
256
+ "outputs": [
257
+ {
258
+ "name": "",
259
+ "type": "address",
260
+ "internalType": "address"
261
+ }
262
+ ],
263
+ "stateMutability": "view"
264
+ },
265
+ {
266
+ "type": "function",
267
+ "name": "blsValidator",
268
+ "inputs": [],
269
+ "outputs": [
270
+ {
271
+ "name": "",
272
+ "type": "address",
273
+ "internalType": "contract IBLSValidator"
274
+ }
275
+ ],
276
+ "stateMutability": "view"
277
+ },
278
+ {
279
+ "type": "function",
280
+ "name": "calculateExitFee",
281
+ "inputs": [
282
+ {
283
+ "name": "roleId",
284
+ "type": "bytes32",
285
+ "internalType": "bytes32"
286
+ },
287
+ {
288
+ "name": "amount",
289
+ "type": "uint256",
290
+ "internalType": "uint256"
291
+ }
292
+ ],
293
+ "outputs": [
294
+ {
295
+ "name": "",
296
+ "type": "uint256",
297
+ "internalType": "uint256"
298
+ }
299
+ ],
300
+ "stateMutability": "view"
301
+ },
302
+ {
303
+ "type": "function",
304
+ "name": "communityByENS",
305
+ "inputs": [
306
+ {
307
+ "name": "",
308
+ "type": "string",
309
+ "internalType": "string"
310
+ }
311
+ ],
312
+ "outputs": [
313
+ {
314
+ "name": "",
315
+ "type": "address",
316
+ "internalType": "address"
317
+ }
318
+ ],
319
+ "stateMutability": "view"
320
+ },
321
+ {
322
+ "type": "function",
323
+ "name": "communityByName",
324
+ "inputs": [
325
+ {
326
+ "name": "",
327
+ "type": "string",
328
+ "internalType": "string"
329
+ }
330
+ ],
331
+ "outputs": [
332
+ {
333
+ "name": "",
334
+ "type": "address",
335
+ "internalType": "address"
336
+ }
337
+ ],
338
+ "stateMutability": "view"
339
+ },
340
+ {
341
+ "type": "function",
342
+ "name": "configureRole",
343
+ "inputs": [
344
+ {
345
+ "name": "roleId",
346
+ "type": "bytes32",
347
+ "internalType": "bytes32"
348
+ },
349
+ {
350
+ "name": "config",
351
+ "type": "tuple",
352
+ "internalType": "struct IRegistry.RoleConfig",
353
+ "components": [
354
+ {
355
+ "name": "minStake",
356
+ "type": "uint256",
357
+ "internalType": "uint256"
358
+ },
359
+ {
360
+ "name": "entryBurn",
361
+ "type": "uint256",
362
+ "internalType": "uint256"
363
+ },
364
+ {
365
+ "name": "slashThreshold",
366
+ "type": "uint32",
367
+ "internalType": "uint32"
368
+ },
369
+ {
370
+ "name": "slashBase",
371
+ "type": "uint32",
372
+ "internalType": "uint32"
373
+ },
374
+ {
375
+ "name": "slashInc",
376
+ "type": "uint32",
377
+ "internalType": "uint32"
378
+ },
379
+ {
380
+ "name": "slashMax",
381
+ "type": "uint32",
382
+ "internalType": "uint32"
383
+ },
384
+ {
385
+ "name": "exitFeePercent",
386
+ "type": "uint16",
387
+ "internalType": "uint16"
388
+ },
389
+ {
390
+ "name": "isActive",
391
+ "type": "bool",
392
+ "internalType": "bool"
393
+ },
394
+ {
395
+ "name": "minExitFee",
396
+ "type": "uint256",
397
+ "internalType": "uint256"
398
+ },
399
+ {
400
+ "name": "description",
401
+ "type": "string",
402
+ "internalType": "string"
403
+ },
404
+ {
405
+ "name": "owner",
406
+ "type": "address",
407
+ "internalType": "address"
408
+ },
409
+ {
410
+ "name": "roleLockDuration",
411
+ "type": "uint256",
412
+ "internalType": "uint256"
413
+ }
414
+ ]
415
+ }
416
+ ],
417
+ "outputs": [],
418
+ "stateMutability": "nonpayable"
419
+ },
420
+ {
421
+ "type": "function",
422
+ "name": "createNewRole",
423
+ "inputs": [
424
+ {
425
+ "name": "roleId",
426
+ "type": "bytes32",
427
+ "internalType": "bytes32"
428
+ },
429
+ {
430
+ "name": "config",
431
+ "type": "tuple",
432
+ "internalType": "struct IRegistry.RoleConfig",
433
+ "components": [
434
+ {
435
+ "name": "minStake",
436
+ "type": "uint256",
437
+ "internalType": "uint256"
438
+ },
439
+ {
440
+ "name": "entryBurn",
441
+ "type": "uint256",
442
+ "internalType": "uint256"
443
+ },
444
+ {
445
+ "name": "slashThreshold",
446
+ "type": "uint32",
447
+ "internalType": "uint32"
448
+ },
449
+ {
450
+ "name": "slashBase",
451
+ "type": "uint32",
452
+ "internalType": "uint32"
453
+ },
454
+ {
455
+ "name": "slashInc",
456
+ "type": "uint32",
457
+ "internalType": "uint32"
458
+ },
459
+ {
460
+ "name": "slashMax",
461
+ "type": "uint32",
462
+ "internalType": "uint32"
463
+ },
464
+ {
465
+ "name": "exitFeePercent",
466
+ "type": "uint16",
467
+ "internalType": "uint16"
468
+ },
469
+ {
470
+ "name": "isActive",
471
+ "type": "bool",
472
+ "internalType": "bool"
473
+ },
474
+ {
475
+ "name": "minExitFee",
476
+ "type": "uint256",
477
+ "internalType": "uint256"
478
+ },
479
+ {
480
+ "name": "description",
481
+ "type": "string",
482
+ "internalType": "string"
483
+ },
484
+ {
485
+ "name": "owner",
486
+ "type": "address",
487
+ "internalType": "address"
488
+ },
489
+ {
490
+ "name": "roleLockDuration",
491
+ "type": "uint256",
492
+ "internalType": "uint256"
493
+ }
494
+ ]
495
+ },
496
+ {
497
+ "name": "roleOwner",
498
+ "type": "address",
499
+ "internalType": "address"
500
+ }
501
+ ],
502
+ "outputs": [],
503
+ "stateMutability": "nonpayable"
504
+ },
505
+ {
506
+ "type": "function",
507
+ "name": "creditTierConfig",
508
+ "inputs": [
509
+ {
510
+ "name": "",
511
+ "type": "uint256",
512
+ "internalType": "uint256"
513
+ }
514
+ ],
515
+ "outputs": [
516
+ {
517
+ "name": "",
518
+ "type": "uint256",
519
+ "internalType": "uint256"
520
+ }
521
+ ],
522
+ "stateMutability": "view"
523
+ },
524
+ {
525
+ "type": "function",
526
+ "name": "executedProposals",
527
+ "inputs": [
528
+ {
529
+ "name": "",
530
+ "type": "uint256",
531
+ "internalType": "uint256"
532
+ }
533
+ ],
534
+ "outputs": [
535
+ {
536
+ "name": "",
537
+ "type": "bool",
538
+ "internalType": "bool"
539
+ }
540
+ ],
541
+ "stateMutability": "view"
542
+ },
543
+ {
544
+ "type": "function",
545
+ "name": "exitRole",
546
+ "inputs": [
547
+ {
548
+ "name": "roleId",
549
+ "type": "bytes32",
550
+ "internalType": "bytes32"
551
+ }
552
+ ],
553
+ "outputs": [],
554
+ "stateMutability": "nonpayable"
555
+ },
556
+ {
557
+ "type": "function",
558
+ "name": "getCreditLimit",
559
+ "inputs": [
560
+ {
561
+ "name": "user",
562
+ "type": "address",
563
+ "internalType": "address"
564
+ }
565
+ ],
566
+ "outputs": [
567
+ {
568
+ "name": "",
569
+ "type": "uint256",
570
+ "internalType": "uint256"
571
+ }
572
+ ],
573
+ "stateMutability": "view"
574
+ },
575
+ {
576
+ "type": "function",
577
+ "name": "getRoleConfig",
578
+ "inputs": [
579
+ {
580
+ "name": "roleId",
581
+ "type": "bytes32",
582
+ "internalType": "bytes32"
583
+ }
584
+ ],
585
+ "outputs": [
586
+ {
587
+ "name": "",
588
+ "type": "tuple",
589
+ "internalType": "struct IRegistry.RoleConfig",
590
+ "components": [
591
+ {
592
+ "name": "minStake",
593
+ "type": "uint256",
594
+ "internalType": "uint256"
595
+ },
596
+ {
597
+ "name": "entryBurn",
598
+ "type": "uint256",
599
+ "internalType": "uint256"
600
+ },
601
+ {
602
+ "name": "slashThreshold",
603
+ "type": "uint32",
604
+ "internalType": "uint32"
605
+ },
606
+ {
607
+ "name": "slashBase",
608
+ "type": "uint32",
609
+ "internalType": "uint32"
610
+ },
611
+ {
612
+ "name": "slashInc",
613
+ "type": "uint32",
614
+ "internalType": "uint32"
615
+ },
616
+ {
617
+ "name": "slashMax",
618
+ "type": "uint32",
619
+ "internalType": "uint32"
620
+ },
621
+ {
622
+ "name": "exitFeePercent",
623
+ "type": "uint16",
624
+ "internalType": "uint16"
625
+ },
626
+ {
627
+ "name": "isActive",
628
+ "type": "bool",
629
+ "internalType": "bool"
630
+ },
631
+ {
632
+ "name": "minExitFee",
633
+ "type": "uint256",
634
+ "internalType": "uint256"
635
+ },
636
+ {
637
+ "name": "description",
638
+ "type": "string",
639
+ "internalType": "string"
640
+ },
641
+ {
642
+ "name": "owner",
643
+ "type": "address",
644
+ "internalType": "address"
645
+ },
646
+ {
647
+ "name": "roleLockDuration",
648
+ "type": "uint256",
649
+ "internalType": "uint256"
650
+ }
651
+ ]
652
+ }
653
+ ],
654
+ "stateMutability": "view"
655
+ },
656
+ {
657
+ "type": "function",
658
+ "name": "getRoleMembers",
659
+ "inputs": [
660
+ {
661
+ "name": "roleId",
662
+ "type": "bytes32",
663
+ "internalType": "bytes32"
664
+ }
665
+ ],
666
+ "outputs": [
667
+ {
668
+ "name": "",
669
+ "type": "address[]",
670
+ "internalType": "address[]"
671
+ }
672
+ ],
673
+ "stateMutability": "view"
674
+ },
675
+ {
676
+ "type": "function",
677
+ "name": "getRoleUserCount",
678
+ "inputs": [
679
+ {
680
+ "name": "roleId",
681
+ "type": "bytes32",
682
+ "internalType": "bytes32"
683
+ }
684
+ ],
685
+ "outputs": [
686
+ {
687
+ "name": "",
688
+ "type": "uint256",
689
+ "internalType": "uint256"
690
+ }
691
+ ],
692
+ "stateMutability": "view"
693
+ },
694
+ {
695
+ "type": "function",
696
+ "name": "getUserRoles",
697
+ "inputs": [
698
+ {
699
+ "name": "user",
700
+ "type": "address",
701
+ "internalType": "address"
702
+ }
703
+ ],
704
+ "outputs": [
705
+ {
706
+ "name": "",
707
+ "type": "bytes32[]",
708
+ "internalType": "bytes32[]"
709
+ }
710
+ ],
711
+ "stateMutability": "view"
712
+ },
713
+ {
714
+ "type": "function",
715
+ "name": "globalReputation",
716
+ "inputs": [
717
+ {
718
+ "name": "",
719
+ "type": "address",
720
+ "internalType": "address"
721
+ }
722
+ ],
723
+ "outputs": [
724
+ {
725
+ "name": "",
726
+ "type": "uint256",
727
+ "internalType": "uint256"
728
+ }
729
+ ],
730
+ "stateMutability": "view"
731
+ },
732
+ {
733
+ "type": "function",
734
+ "name": "hasRole",
735
+ "inputs": [
736
+ {
737
+ "name": "",
738
+ "type": "bytes32",
739
+ "internalType": "bytes32"
740
+ },
741
+ {
742
+ "name": "",
743
+ "type": "address",
744
+ "internalType": "address"
745
+ }
746
+ ],
747
+ "outputs": [
748
+ {
749
+ "name": "",
750
+ "type": "bool",
751
+ "internalType": "bool"
752
+ }
753
+ ],
754
+ "stateMutability": "view"
755
+ },
756
+ {
757
+ "type": "function",
758
+ "name": "isReputationSource",
759
+ "inputs": [
760
+ {
761
+ "name": "",
762
+ "type": "address",
763
+ "internalType": "address"
764
+ }
765
+ ],
766
+ "outputs": [
767
+ {
768
+ "name": "",
769
+ "type": "bool",
770
+ "internalType": "bool"
771
+ }
772
+ ],
773
+ "stateMutability": "view"
774
+ },
775
+ {
776
+ "type": "function",
777
+ "name": "lastReputationEpoch",
778
+ "inputs": [
779
+ {
780
+ "name": "",
781
+ "type": "address",
782
+ "internalType": "address"
783
+ }
784
+ ],
785
+ "outputs": [
786
+ {
787
+ "name": "",
788
+ "type": "uint256",
789
+ "internalType": "uint256"
790
+ }
791
+ ],
792
+ "stateMutability": "view"
793
+ },
794
+ {
795
+ "type": "function",
796
+ "name": "levelThresholds",
797
+ "inputs": [
798
+ {
799
+ "name": "",
800
+ "type": "uint256",
801
+ "internalType": "uint256"
802
+ }
803
+ ],
804
+ "outputs": [
805
+ {
806
+ "name": "",
807
+ "type": "uint256",
808
+ "internalType": "uint256"
809
+ }
810
+ ],
811
+ "stateMutability": "view"
812
+ },
813
+ {
814
+ "type": "function",
815
+ "name": "owner",
816
+ "inputs": [],
817
+ "outputs": [
818
+ {
819
+ "name": "",
820
+ "type": "address",
821
+ "internalType": "address"
822
+ }
823
+ ],
824
+ "stateMutability": "view"
825
+ },
826
+ {
827
+ "type": "function",
828
+ "name": "proposedRoleNames",
829
+ "inputs": [
830
+ {
831
+ "name": "",
832
+ "type": "bytes32",
833
+ "internalType": "bytes32"
834
+ }
835
+ ],
836
+ "outputs": [
837
+ {
838
+ "name": "",
839
+ "type": "string",
840
+ "internalType": "string"
841
+ }
842
+ ],
843
+ "stateMutability": "view"
844
+ },
845
+ {
846
+ "type": "function",
847
+ "name": "registerRole",
848
+ "inputs": [
849
+ {
850
+ "name": "roleId",
851
+ "type": "bytes32",
852
+ "internalType": "bytes32"
853
+ },
854
+ {
855
+ "name": "user",
856
+ "type": "address",
857
+ "internalType": "address"
858
+ },
859
+ {
860
+ "name": "roleData",
861
+ "type": "bytes",
862
+ "internalType": "bytes"
863
+ }
864
+ ],
865
+ "outputs": [],
866
+ "stateMutability": "nonpayable"
867
+ },
868
+ {
869
+ "type": "function",
870
+ "name": "registerRoleSelf",
871
+ "inputs": [
872
+ {
873
+ "name": "roleId",
874
+ "type": "bytes32",
875
+ "internalType": "bytes32"
876
+ },
877
+ {
878
+ "name": "roleData",
879
+ "type": "bytes",
880
+ "internalType": "bytes"
881
+ }
882
+ ],
883
+ "outputs": [
884
+ {
885
+ "name": "sbtTokenId",
886
+ "type": "uint256",
887
+ "internalType": "uint256"
888
+ }
889
+ ],
890
+ "stateMutability": "nonpayable"
891
+ },
892
+ {
893
+ "type": "function",
894
+ "name": "renounceOwnership",
895
+ "inputs": [],
896
+ "outputs": [],
897
+ "stateMutability": "nonpayable"
898
+ },
899
+ {
900
+ "type": "function",
901
+ "name": "roleConfigs",
902
+ "inputs": [
903
+ {
904
+ "name": "",
905
+ "type": "bytes32",
906
+ "internalType": "bytes32"
907
+ }
908
+ ],
909
+ "outputs": [
910
+ {
911
+ "name": "minStake",
912
+ "type": "uint256",
913
+ "internalType": "uint256"
914
+ },
915
+ {
916
+ "name": "entryBurn",
917
+ "type": "uint256",
918
+ "internalType": "uint256"
919
+ },
920
+ {
921
+ "name": "slashThreshold",
922
+ "type": "uint32",
923
+ "internalType": "uint32"
924
+ },
925
+ {
926
+ "name": "slashBase",
927
+ "type": "uint32",
928
+ "internalType": "uint32"
929
+ },
930
+ {
931
+ "name": "slashInc",
932
+ "type": "uint32",
933
+ "internalType": "uint32"
934
+ },
935
+ {
936
+ "name": "slashMax",
937
+ "type": "uint32",
938
+ "internalType": "uint32"
939
+ },
940
+ {
941
+ "name": "exitFeePercent",
942
+ "type": "uint16",
943
+ "internalType": "uint16"
944
+ },
945
+ {
946
+ "name": "isActive",
947
+ "type": "bool",
948
+ "internalType": "bool"
949
+ },
950
+ {
951
+ "name": "minExitFee",
952
+ "type": "uint256",
953
+ "internalType": "uint256"
954
+ },
955
+ {
956
+ "name": "description",
957
+ "type": "string",
958
+ "internalType": "string"
959
+ },
960
+ {
961
+ "name": "owner",
962
+ "type": "address",
963
+ "internalType": "address"
964
+ },
965
+ {
966
+ "name": "roleLockDuration",
967
+ "type": "uint256",
968
+ "internalType": "uint256"
969
+ }
970
+ ],
971
+ "stateMutability": "view"
972
+ },
973
+ {
974
+ "type": "function",
975
+ "name": "roleLockDurations",
976
+ "inputs": [
977
+ {
978
+ "name": "",
979
+ "type": "bytes32",
980
+ "internalType": "bytes32"
981
+ }
982
+ ],
983
+ "outputs": [
984
+ {
985
+ "name": "",
986
+ "type": "uint256",
987
+ "internalType": "uint256"
988
+ }
989
+ ],
990
+ "stateMutability": "view"
991
+ },
992
+ {
993
+ "type": "function",
994
+ "name": "roleMemberIndex",
995
+ "inputs": [
996
+ {
997
+ "name": "",
998
+ "type": "bytes32",
999
+ "internalType": "bytes32"
1000
+ },
1001
+ {
1002
+ "name": "",
1003
+ "type": "address",
1004
+ "internalType": "address"
1005
+ }
1006
+ ],
1007
+ "outputs": [
1008
+ {
1009
+ "name": "",
1010
+ "type": "uint256",
1011
+ "internalType": "uint256"
1012
+ }
1013
+ ],
1014
+ "stateMutability": "view"
1015
+ },
1016
+ {
1017
+ "type": "function",
1018
+ "name": "roleMembers",
1019
+ "inputs": [
1020
+ {
1021
+ "name": "",
1022
+ "type": "bytes32",
1023
+ "internalType": "bytes32"
1024
+ },
1025
+ {
1026
+ "name": "",
1027
+ "type": "uint256",
1028
+ "internalType": "uint256"
1029
+ }
1030
+ ],
1031
+ "outputs": [
1032
+ {
1033
+ "name": "",
1034
+ "type": "address",
1035
+ "internalType": "address"
1036
+ }
1037
+ ],
1038
+ "stateMutability": "view"
1039
+ },
1040
+ {
1041
+ "type": "function",
1042
+ "name": "roleMetadata",
1043
+ "inputs": [
1044
+ {
1045
+ "name": "",
1046
+ "type": "bytes32",
1047
+ "internalType": "bytes32"
1048
+ },
1049
+ {
1050
+ "name": "",
1051
+ "type": "address",
1052
+ "internalType": "address"
1053
+ }
1054
+ ],
1055
+ "outputs": [
1056
+ {
1057
+ "name": "",
1058
+ "type": "bytes",
1059
+ "internalType": "bytes"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view"
1063
+ },
1064
+ {
1065
+ "type": "function",
1066
+ "name": "roleOwners",
1067
+ "inputs": [
1068
+ {
1069
+ "name": "",
1070
+ "type": "bytes32",
1071
+ "internalType": "bytes32"
1072
+ }
1073
+ ],
1074
+ "outputs": [
1075
+ {
1076
+ "name": "",
1077
+ "type": "address",
1078
+ "internalType": "address"
1079
+ }
1080
+ ],
1081
+ "stateMutability": "view"
1082
+ },
1083
+ {
1084
+ "type": "function",
1085
+ "name": "roleSBTTokenIds",
1086
+ "inputs": [
1087
+ {
1088
+ "name": "",
1089
+ "type": "bytes32",
1090
+ "internalType": "bytes32"
1091
+ },
1092
+ {
1093
+ "name": "",
1094
+ "type": "address",
1095
+ "internalType": "address"
1096
+ }
1097
+ ],
1098
+ "outputs": [
1099
+ {
1100
+ "name": "",
1101
+ "type": "uint256",
1102
+ "internalType": "uint256"
1103
+ }
1104
+ ],
1105
+ "stateMutability": "view"
1106
+ },
1107
+ {
1108
+ "type": "function",
1109
+ "name": "roleStakes",
1110
+ "inputs": [
1111
+ {
1112
+ "name": "",
1113
+ "type": "bytes32",
1114
+ "internalType": "bytes32"
1115
+ },
1116
+ {
1117
+ "name": "",
1118
+ "type": "address",
1119
+ "internalType": "address"
1120
+ }
1121
+ ],
1122
+ "outputs": [
1123
+ {
1124
+ "name": "",
1125
+ "type": "uint256",
1126
+ "internalType": "uint256"
1127
+ }
1128
+ ],
1129
+ "stateMutability": "view"
1130
+ },
1131
+ {
1132
+ "type": "function",
1133
+ "name": "safeMintForRole",
1134
+ "inputs": [
1135
+ {
1136
+ "name": "roleId",
1137
+ "type": "bytes32",
1138
+ "internalType": "bytes32"
1139
+ },
1140
+ {
1141
+ "name": "user",
1142
+ "type": "address",
1143
+ "internalType": "address"
1144
+ },
1145
+ {
1146
+ "name": "data",
1147
+ "type": "bytes",
1148
+ "internalType": "bytes"
1149
+ }
1150
+ ],
1151
+ "outputs": [
1152
+ {
1153
+ "name": "tokenId",
1154
+ "type": "uint256",
1155
+ "internalType": "uint256"
1156
+ }
1157
+ ],
1158
+ "stateMutability": "nonpayable"
1159
+ },
1160
+ {
1161
+ "type": "function",
1162
+ "name": "setBLSAggregator",
1163
+ "inputs": [
1164
+ {
1165
+ "name": "_aggregator",
1166
+ "type": "address",
1167
+ "internalType": "address"
1168
+ }
1169
+ ],
1170
+ "outputs": [],
1171
+ "stateMutability": "nonpayable"
1172
+ },
1173
+ {
1174
+ "type": "function",
1175
+ "name": "setBLSValidator",
1176
+ "inputs": [
1177
+ {
1178
+ "name": "_validator",
1179
+ "type": "address",
1180
+ "internalType": "address"
1181
+ }
1182
+ ],
1183
+ "outputs": [],
1184
+ "stateMutability": "nonpayable"
1185
+ },
1186
+ {
1187
+ "type": "function",
1188
+ "name": "setCreditTier",
1189
+ "inputs": [
1190
+ {
1191
+ "name": "level",
1192
+ "type": "uint256",
1193
+ "internalType": "uint256"
1194
+ },
1195
+ {
1196
+ "name": "limit",
1197
+ "type": "uint256",
1198
+ "internalType": "uint256"
1199
+ }
1200
+ ],
1201
+ "outputs": [],
1202
+ "stateMutability": "nonpayable"
1203
+ },
1204
+ {
1205
+ "type": "function",
1206
+ "name": "setLevelThreshold",
1207
+ "inputs": [
1208
+ {
1209
+ "name": "index",
1210
+ "type": "uint256",
1211
+ "internalType": "uint256"
1212
+ },
1213
+ {
1214
+ "name": "threshold",
1215
+ "type": "uint256",
1216
+ "internalType": "uint256"
1217
+ }
1218
+ ],
1219
+ "outputs": [],
1220
+ "stateMutability": "nonpayable"
1221
+ },
1222
+ {
1223
+ "type": "function",
1224
+ "name": "setMySBT",
1225
+ "inputs": [
1226
+ {
1227
+ "name": "_mysbt",
1228
+ "type": "address",
1229
+ "internalType": "address"
1230
+ }
1231
+ ],
1232
+ "outputs": [],
1233
+ "stateMutability": "nonpayable"
1234
+ },
1235
+ {
1236
+ "type": "function",
1237
+ "name": "setReputationSource",
1238
+ "inputs": [
1239
+ {
1240
+ "name": "source",
1241
+ "type": "address",
1242
+ "internalType": "address"
1243
+ },
1244
+ {
1245
+ "name": "active",
1246
+ "type": "bool",
1247
+ "internalType": "bool"
1248
+ }
1249
+ ],
1250
+ "outputs": [],
1251
+ "stateMutability": "nonpayable"
1252
+ },
1253
+ {
1254
+ "type": "function",
1255
+ "name": "setRoleLockDuration",
1256
+ "inputs": [
1257
+ {
1258
+ "name": "roleId",
1259
+ "type": "bytes32",
1260
+ "internalType": "bytes32"
1261
+ },
1262
+ {
1263
+ "name": "duration",
1264
+ "type": "uint256",
1265
+ "internalType": "uint256"
1266
+ }
1267
+ ],
1268
+ "outputs": [],
1269
+ "stateMutability": "nonpayable"
1270
+ },
1271
+ {
1272
+ "type": "function",
1273
+ "name": "setRoleOwner",
1274
+ "inputs": [
1275
+ {
1276
+ "name": "roleId",
1277
+ "type": "bytes32",
1278
+ "internalType": "bytes32"
1279
+ },
1280
+ {
1281
+ "name": "newOwner",
1282
+ "type": "address",
1283
+ "internalType": "address"
1284
+ }
1285
+ ],
1286
+ "outputs": [],
1287
+ "stateMutability": "nonpayable"
1288
+ },
1289
+ {
1290
+ "type": "function",
1291
+ "name": "setStaking",
1292
+ "inputs": [
1293
+ {
1294
+ "name": "_staking",
1295
+ "type": "address",
1296
+ "internalType": "address"
1297
+ }
1298
+ ],
1299
+ "outputs": [],
1300
+ "stateMutability": "nonpayable"
1301
+ },
1302
+ {
1303
+ "type": "function",
1304
+ "name": "setSuperPaymaster",
1305
+ "inputs": [
1306
+ {
1307
+ "name": "_sp",
1308
+ "type": "address",
1309
+ "internalType": "address"
1310
+ }
1311
+ ],
1312
+ "outputs": [],
1313
+ "stateMutability": "nonpayable"
1314
+ },
1315
+ {
1316
+ "type": "function",
1317
+ "name": "transferOwnership",
1318
+ "inputs": [
1319
+ {
1320
+ "name": "newOwner",
1321
+ "type": "address",
1322
+ "internalType": "address"
1323
+ }
1324
+ ],
1325
+ "outputs": [],
1326
+ "stateMutability": "nonpayable"
1327
+ },
1328
+ {
1329
+ "type": "function",
1330
+ "name": "updateOperatorBlacklist",
1331
+ "inputs": [
1332
+ {
1333
+ "name": "operator",
1334
+ "type": "address",
1335
+ "internalType": "address"
1336
+ },
1337
+ {
1338
+ "name": "users",
1339
+ "type": "address[]",
1340
+ "internalType": "address[]"
1341
+ },
1342
+ {
1343
+ "name": "statuses",
1344
+ "type": "bool[]",
1345
+ "internalType": "bool[]"
1346
+ },
1347
+ {
1348
+ "name": "proof",
1349
+ "type": "bytes",
1350
+ "internalType": "bytes"
1351
+ }
1352
+ ],
1353
+ "outputs": [],
1354
+ "stateMutability": "nonpayable"
1355
+ },
1356
+ {
1357
+ "type": "function",
1358
+ "name": "userRoleCount",
1359
+ "inputs": [
1360
+ {
1361
+ "name": "",
1362
+ "type": "address",
1363
+ "internalType": "address"
1364
+ }
1365
+ ],
1366
+ "outputs": [
1367
+ {
1368
+ "name": "",
1369
+ "type": "uint256",
1370
+ "internalType": "uint256"
1371
+ }
1372
+ ],
1373
+ "stateMutability": "view"
1374
+ },
1375
+ {
1376
+ "type": "function",
1377
+ "name": "userRoles",
1378
+ "inputs": [
1379
+ {
1380
+ "name": "",
1381
+ "type": "address",
1382
+ "internalType": "address"
1383
+ },
1384
+ {
1385
+ "name": "",
1386
+ "type": "uint256",
1387
+ "internalType": "uint256"
1388
+ }
1389
+ ],
1390
+ "outputs": [
1391
+ {
1392
+ "name": "",
1393
+ "type": "bytes32",
1394
+ "internalType": "bytes32"
1395
+ }
1396
+ ],
1397
+ "stateMutability": "view"
1398
+ },
1399
+ {
1400
+ "type": "function",
1401
+ "name": "version",
1402
+ "inputs": [],
1403
+ "outputs": [
1404
+ {
1405
+ "name": "",
1406
+ "type": "string",
1407
+ "internalType": "string"
1408
+ }
1409
+ ],
1410
+ "stateMutability": "pure"
1411
+ },
1412
+ {
1413
+ "type": "event",
1414
+ "name": "BLSAggregatorUpdated",
1415
+ "inputs": [
1416
+ {
1417
+ "name": "oldAgg",
1418
+ "type": "address",
1419
+ "indexed": true,
1420
+ "internalType": "address"
1421
+ },
1422
+ {
1423
+ "name": "newAgg",
1424
+ "type": "address",
1425
+ "indexed": true,
1426
+ "internalType": "address"
1427
+ }
1428
+ ],
1429
+ "anonymous": false
1430
+ },
1431
+ {
1432
+ "type": "event",
1433
+ "name": "BLSValidatorUpdated",
1434
+ "inputs": [
1435
+ {
1436
+ "name": "oldVal",
1437
+ "type": "address",
1438
+ "indexed": true,
1439
+ "internalType": "address"
1440
+ },
1441
+ {
1442
+ "name": "newVal",
1443
+ "type": "address",
1444
+ "indexed": true,
1445
+ "internalType": "address"
1446
+ }
1447
+ ],
1448
+ "anonymous": false
1449
+ },
1450
+ {
1451
+ "type": "event",
1452
+ "name": "BurnExecuted",
1453
+ "inputs": [
1454
+ {
1455
+ "name": "user",
1456
+ "type": "address",
1457
+ "indexed": true,
1458
+ "internalType": "address"
1459
+ },
1460
+ {
1461
+ "name": "roleId",
1462
+ "type": "bytes32",
1463
+ "indexed": true,
1464
+ "internalType": "bytes32"
1465
+ },
1466
+ {
1467
+ "name": "amount",
1468
+ "type": "uint256",
1469
+ "indexed": false,
1470
+ "internalType": "uint256"
1471
+ },
1472
+ {
1473
+ "name": "reason",
1474
+ "type": "string",
1475
+ "indexed": false,
1476
+ "internalType": "string"
1477
+ }
1478
+ ],
1479
+ "anonymous": false
1480
+ },
1481
+ {
1482
+ "type": "event",
1483
+ "name": "CreditTierUpdated",
1484
+ "inputs": [
1485
+ {
1486
+ "name": "level",
1487
+ "type": "uint256",
1488
+ "indexed": false,
1489
+ "internalType": "uint256"
1490
+ },
1491
+ {
1492
+ "name": "creditLimit",
1493
+ "type": "uint256",
1494
+ "indexed": false,
1495
+ "internalType": "uint256"
1496
+ }
1497
+ ],
1498
+ "anonymous": false
1499
+ },
1500
+ {
1501
+ "type": "event",
1502
+ "name": "GlobalReputationUpdated",
1503
+ "inputs": [
1504
+ {
1505
+ "name": "user",
1506
+ "type": "address",
1507
+ "indexed": true,
1508
+ "internalType": "address"
1509
+ },
1510
+ {
1511
+ "name": "newScore",
1512
+ "type": "uint256",
1513
+ "indexed": false,
1514
+ "internalType": "uint256"
1515
+ },
1516
+ {
1517
+ "name": "epoch",
1518
+ "type": "uint256",
1519
+ "indexed": false,
1520
+ "internalType": "uint256"
1521
+ }
1522
+ ],
1523
+ "anonymous": false
1524
+ },
1525
+ {
1526
+ "type": "event",
1527
+ "name": "MySBTContractUpdated",
1528
+ "inputs": [
1529
+ {
1530
+ "name": "oldMySBT",
1531
+ "type": "address",
1532
+ "indexed": true,
1533
+ "internalType": "address"
1534
+ },
1535
+ {
1536
+ "name": "newMySBT",
1537
+ "type": "address",
1538
+ "indexed": true,
1539
+ "internalType": "address"
1540
+ }
1541
+ ],
1542
+ "anonymous": false
1543
+ },
1544
+ {
1545
+ "type": "event",
1546
+ "name": "OwnershipTransferred",
1547
+ "inputs": [
1548
+ {
1549
+ "name": "previousOwner",
1550
+ "type": "address",
1551
+ "indexed": true,
1552
+ "internalType": "address"
1553
+ },
1554
+ {
1555
+ "name": "newOwner",
1556
+ "type": "address",
1557
+ "indexed": true,
1558
+ "internalType": "address"
1559
+ }
1560
+ ],
1561
+ "anonymous": false
1562
+ },
1563
+ {
1564
+ "type": "event",
1565
+ "name": "ReputationSourceUpdated",
1566
+ "inputs": [
1567
+ {
1568
+ "name": "source",
1569
+ "type": "address",
1570
+ "indexed": true,
1571
+ "internalType": "address"
1572
+ },
1573
+ {
1574
+ "name": "isActive",
1575
+ "type": "bool",
1576
+ "indexed": false,
1577
+ "internalType": "bool"
1578
+ }
1579
+ ],
1580
+ "anonymous": false
1581
+ },
1582
+ {
1583
+ "type": "event",
1584
+ "name": "RoleConfigured",
1585
+ "inputs": [
1586
+ {
1587
+ "name": "roleId",
1588
+ "type": "bytes32",
1589
+ "indexed": true,
1590
+ "internalType": "bytes32"
1591
+ },
1592
+ {
1593
+ "name": "config",
1594
+ "type": "tuple",
1595
+ "indexed": false,
1596
+ "internalType": "struct IRegistry.RoleConfig",
1597
+ "components": [
1598
+ {
1599
+ "name": "minStake",
1600
+ "type": "uint256",
1601
+ "internalType": "uint256"
1602
+ },
1603
+ {
1604
+ "name": "entryBurn",
1605
+ "type": "uint256",
1606
+ "internalType": "uint256"
1607
+ },
1608
+ {
1609
+ "name": "slashThreshold",
1610
+ "type": "uint32",
1611
+ "internalType": "uint32"
1612
+ },
1613
+ {
1614
+ "name": "slashBase",
1615
+ "type": "uint32",
1616
+ "internalType": "uint32"
1617
+ },
1618
+ {
1619
+ "name": "slashInc",
1620
+ "type": "uint32",
1621
+ "internalType": "uint32"
1622
+ },
1623
+ {
1624
+ "name": "slashMax",
1625
+ "type": "uint32",
1626
+ "internalType": "uint32"
1627
+ },
1628
+ {
1629
+ "name": "exitFeePercent",
1630
+ "type": "uint16",
1631
+ "internalType": "uint16"
1632
+ },
1633
+ {
1634
+ "name": "isActive",
1635
+ "type": "bool",
1636
+ "internalType": "bool"
1637
+ },
1638
+ {
1639
+ "name": "minExitFee",
1640
+ "type": "uint256",
1641
+ "internalType": "uint256"
1642
+ },
1643
+ {
1644
+ "name": "description",
1645
+ "type": "string",
1646
+ "internalType": "string"
1647
+ },
1648
+ {
1649
+ "name": "owner",
1650
+ "type": "address",
1651
+ "internalType": "address"
1652
+ },
1653
+ {
1654
+ "name": "roleLockDuration",
1655
+ "type": "uint256",
1656
+ "internalType": "uint256"
1657
+ }
1658
+ ]
1659
+ },
1660
+ {
1661
+ "name": "timestamp",
1662
+ "type": "uint256",
1663
+ "indexed": false,
1664
+ "internalType": "uint256"
1665
+ }
1666
+ ],
1667
+ "anonymous": false
1668
+ },
1669
+ {
1670
+ "type": "event",
1671
+ "name": "RoleExited",
1672
+ "inputs": [
1673
+ {
1674
+ "name": "roleId",
1675
+ "type": "bytes32",
1676
+ "indexed": true,
1677
+ "internalType": "bytes32"
1678
+ },
1679
+ {
1680
+ "name": "user",
1681
+ "type": "address",
1682
+ "indexed": true,
1683
+ "internalType": "address"
1684
+ },
1685
+ {
1686
+ "name": "exitFee",
1687
+ "type": "uint256",
1688
+ "indexed": false,
1689
+ "internalType": "uint256"
1690
+ },
1691
+ {
1692
+ "name": "timestamp",
1693
+ "type": "uint256",
1694
+ "indexed": false,
1695
+ "internalType": "uint256"
1696
+ }
1697
+ ],
1698
+ "anonymous": false
1699
+ },
1700
+ {
1701
+ "type": "event",
1702
+ "name": "RoleGranted",
1703
+ "inputs": [
1704
+ {
1705
+ "name": "role",
1706
+ "type": "bytes32",
1707
+ "indexed": true,
1708
+ "internalType": "bytes32"
1709
+ },
1710
+ {
1711
+ "name": "account",
1712
+ "type": "address",
1713
+ "indexed": true,
1714
+ "internalType": "address"
1715
+ },
1716
+ {
1717
+ "name": "sender",
1718
+ "type": "address",
1719
+ "indexed": true,
1720
+ "internalType": "address"
1721
+ }
1722
+ ],
1723
+ "anonymous": false
1724
+ },
1725
+ {
1726
+ "type": "event",
1727
+ "name": "RoleLockDurationUpdated",
1728
+ "inputs": [
1729
+ {
1730
+ "name": "roleId",
1731
+ "type": "bytes32",
1732
+ "indexed": true,
1733
+ "internalType": "bytes32"
1734
+ },
1735
+ {
1736
+ "name": "duration",
1737
+ "type": "uint256",
1738
+ "indexed": false,
1739
+ "internalType": "uint256"
1740
+ }
1741
+ ],
1742
+ "anonymous": false
1743
+ },
1744
+ {
1745
+ "type": "event",
1746
+ "name": "RoleRegistered",
1747
+ "inputs": [
1748
+ {
1749
+ "name": "roleId",
1750
+ "type": "bytes32",
1751
+ "indexed": true,
1752
+ "internalType": "bytes32"
1753
+ },
1754
+ {
1755
+ "name": "user",
1756
+ "type": "address",
1757
+ "indexed": true,
1758
+ "internalType": "address"
1759
+ },
1760
+ {
1761
+ "name": "burnAmount",
1762
+ "type": "uint256",
1763
+ "indexed": false,
1764
+ "internalType": "uint256"
1765
+ },
1766
+ {
1767
+ "name": "timestamp",
1768
+ "type": "uint256",
1769
+ "indexed": false,
1770
+ "internalType": "uint256"
1771
+ }
1772
+ ],
1773
+ "anonymous": false
1774
+ },
1775
+ {
1776
+ "type": "event",
1777
+ "name": "RoleRevoked",
1778
+ "inputs": [
1779
+ {
1780
+ "name": "role",
1781
+ "type": "bytes32",
1782
+ "indexed": true,
1783
+ "internalType": "bytes32"
1784
+ },
1785
+ {
1786
+ "name": "account",
1787
+ "type": "address",
1788
+ "indexed": true,
1789
+ "internalType": "address"
1790
+ },
1791
+ {
1792
+ "name": "sender",
1793
+ "type": "address",
1794
+ "indexed": true,
1795
+ "internalType": "address"
1796
+ }
1797
+ ],
1798
+ "anonymous": false
1799
+ },
1800
+ {
1801
+ "type": "event",
1802
+ "name": "StakingContractUpdated",
1803
+ "inputs": [
1804
+ {
1805
+ "name": "oldStaking",
1806
+ "type": "address",
1807
+ "indexed": true,
1808
+ "internalType": "address"
1809
+ },
1810
+ {
1811
+ "name": "newStaking",
1812
+ "type": "address",
1813
+ "indexed": true,
1814
+ "internalType": "address"
1815
+ }
1816
+ ],
1817
+ "anonymous": false
1818
+ },
1819
+ {
1820
+ "type": "event",
1821
+ "name": "SuperPaymasterUpdated",
1822
+ "inputs": [
1823
+ {
1824
+ "name": "oldSP",
1825
+ "type": "address",
1826
+ "indexed": true,
1827
+ "internalType": "address"
1828
+ },
1829
+ {
1830
+ "name": "newSP",
1831
+ "type": "address",
1832
+ "indexed": true,
1833
+ "internalType": "address"
1834
+ }
1835
+ ],
1836
+ "anonymous": false
1837
+ },
1838
+ {
1839
+ "type": "error",
1840
+ "name": "InsufficientStake",
1841
+ "inputs": [
1842
+ {
1843
+ "name": "provided",
1844
+ "type": "uint256",
1845
+ "internalType": "uint256"
1846
+ },
1847
+ {
1848
+ "name": "required",
1849
+ "type": "uint256",
1850
+ "internalType": "uint256"
1851
+ }
1852
+ ]
1853
+ },
1854
+ {
1855
+ "type": "error",
1856
+ "name": "InvalidParameter",
1857
+ "inputs": [
1858
+ {
1859
+ "name": "message",
1860
+ "type": "string",
1861
+ "internalType": "string"
1862
+ }
1863
+ ]
1864
+ },
1865
+ {
1866
+ "type": "error",
1867
+ "name": "OwnableInvalidOwner",
1868
+ "inputs": [
1869
+ {
1870
+ "name": "owner",
1871
+ "type": "address",
1872
+ "internalType": "address"
1873
+ }
1874
+ ]
1875
+ },
1876
+ {
1877
+ "type": "error",
1878
+ "name": "OwnableUnauthorizedAccount",
1879
+ "inputs": [
1880
+ {
1881
+ "name": "account",
1882
+ "type": "address",
1883
+ "internalType": "address"
1884
+ }
1885
+ ]
1886
+ },
1887
+ {
1888
+ "type": "error",
1889
+ "name": "ReentrancyGuardReentrantCall",
1890
+ "inputs": []
1891
+ },
1892
+ {
1893
+ "type": "error",
1894
+ "name": "RoleAlreadyGranted",
1895
+ "inputs": [
1896
+ {
1897
+ "name": "roleId",
1898
+ "type": "bytes32",
1899
+ "internalType": "bytes32"
1900
+ },
1901
+ {
1902
+ "name": "user",
1903
+ "type": "address",
1904
+ "internalType": "address"
1905
+ }
1906
+ ]
1907
+ },
1908
+ {
1909
+ "type": "error",
1910
+ "name": "RoleNotConfigured",
1911
+ "inputs": [
1912
+ {
1913
+ "name": "roleId",
1914
+ "type": "bytes32",
1915
+ "internalType": "bytes32"
1916
+ },
1917
+ {
1918
+ "name": "isActive",
1919
+ "type": "bool",
1920
+ "internalType": "bool"
1921
+ }
1922
+ ]
1923
+ },
1924
+ {
1925
+ "type": "error",
1926
+ "name": "RoleNotGranted",
1927
+ "inputs": [
1928
+ {
1929
+ "name": "roleId",
1930
+ "type": "bytes32",
1931
+ "internalType": "bytes32"
1932
+ },
1933
+ {
1934
+ "name": "user",
1935
+ "type": "address",
1936
+ "internalType": "address"
1937
+ }
1938
+ ]
1939
+ }
1940
+ ],
1941
+ "bytecode": "0x608080604052346118c9575f90606081616ef8803803809161002182856119ee565b8339810103126118c95761003481611a11565b5061004d604061004660208401611a11565b9201611a11565b9033156119bf575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360018055600280546001600160a01b039283166001600160a01b031991821617909155600380549390921692169190911790556040805191906100db90836119ee565b600d82526c20a7a0902830bcb6b0b9ba32b960991b6020830152604051610101816119d2565b6801a055690d9db800008152602081016729a2241af62c0000815260408201600a8152606083016002815260808401916001835260a0850192600a845260c086016103e8815260e087019060018252610100880194670de0b6b3a7640000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616e985f395f51905f525f52600760205260405f209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b0381116119ab578154600181811c911680156119a1575b602082101461198d57601f8111611948575b506020601f82116001146118e257819060069697985f926118d7575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b039283161790559051919092015560025416801515806118cd575b611869575b50604051906102f06040836119ee565b600e82526d29bab832b92830bcb6b0b9ba32b960911b6020830152604051610317816119d2565b6802b5e3af16b1880000815260208101674563918244f40000815260408201600a8152606083016002815260808401916001835260a0850192600a845260c086016103e8815260e087019060018252610100880194671bc16d674ec80000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616e785f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c9116801561185f575b602082101461126057601f811161181a575b506020601f82116001146117b5578190879860069798926117aa575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b0392831617905590519190920155600254829116801515806117a0575b61173e575b5050604051906105096040836119ee565b600b82526a11d95b995c9a58c811159560aa1b602083015260405161052d816119d2565b6801a055690d9db800008152602081016729a2241af62c0000815260408201600a8152606083016002815260808401916001835260a0850192600a845260c086016103e8815260e087019060018252610100880194670de0b6b3a7640000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616eb85f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c91168015611734575b602082101461126057601f81116116ef575b506020601f821160011461168a5781908798600697989261167f575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b039283161790559051919092015560025482911680151580611675575b611613575b50506040519061071f6040836119ee565b6005825264414e4f444560d81b602083015260405161073d816119d2565b6801158e460913d00000815260208101671bc16d674ec80000815260408201600f8152606083016001815260808401916001835260a08501926005845260c086016103e8815260e087019060018252610100880194670de0b6b3a7640000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616ed85f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c91168015611609575b602082101461126057601f81116115c4575b506020601f821160011461155f57819087986006979892611554575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b03928316179055905191909201556002548291168015158061154a575b6114e8575b50506040519061092f6040836119ee565b60038252624b4d5360e81b602083015260405161094b816119d2565b68056bc75e2d63100000815260208101678ac7230489e8000081526040820160058152606083016005815260808401916002835260a08501926014845260c086016103e8815260e087019060018252610100880194674563918244f40000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616e185f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c911680156114de575b602082101461126057601f8111611499575b506020601f821160011461143457819087986006979892611429575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b03928316179055905191909201556002548291168015158061141f575b6113bd575b505060405190610b3d6040836119ee565b6009825268436f6d6d756e69747960b81b6020830152604051610b5f816119d2565b6801a055690d9db800008152602081016729a2241af62c0000815260408201600a8152606083016002815260808401916001835260a0850192600a845260c086016101f4815260e087019060018252610100880194670de0b6b3a7640000865261012089019a8b526101408901963388526101608a019862278d008a525f516020616e585f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c911680156113b3575b602082101461126057601f811161136e575b506020601f8211600114611309578190879860069798926112fe575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b0392831617905590519190920155600254829116801515806112f4575b611292575b505060405190610d516040836119ee565b600782526622b7322ab9b2b960c91b6020830152604051610d71816119d2565b670429d069189e000081526020810166b1a2bc2ec5000081526040820183815260608301848152608084019185835260a085019286845260c086016103e8815260e08701906001825261010088019466b1a2bc2ec50000865261012089019a8b526101408901963388526101608a019862093a808a525f516020616e385f395f51905f528c52600760205260408c209a518b555160018b015563ffffffff60028b019651166fffffffff0000000000000000000000006bffffffff000000000000000067ffffffff000000008954955160201b16975160401b16925160601b169361ffff60801b905160801b169460ff60901b9051151560901b169560ff60901b199361ffff60801b19926fffffffff000000000000000000000000199160018060601b031916171617161716171717905551600384015560048301945194855160018060401b03811161127e578154600181811c91168015611274575b602082101461126057601f811161121b575b506020601f82116001146111b6578190879860069798926111ab575b50508160011b915f199060031b1c19161790555b516005840180546001600160a01b0319166001600160a01b0392831617905590519190920155600254829116801515806111a1575b61113a575b5060019052601660205280604081205560028152601660205268056bc75e2d631000006040822055600381526016602052681043561a88293000006040822055600481526016602052682086ac3510526000006040822055600581526016602052683635c9adc5dea000006040822055600681526016602052686c6b935b8bbd40000060408220556018546801000000000000000081101561112657600181018060185581101561111257600d9060188352602083200155601854680100000000000000008110156111265760018101806018558110156111125760229060188352602083200155601854680100000000000000008110156111265760018101806018558110156111125760599060188352602083200155601854680100000000000000008110156111265760018101806018558110156111125760e9906018835260208320015560185490680100000000000000008210156110fe5760018201806018558210156110ea5761026260409260188352602083200155338152601760205220600160ff198254161790556040516153f29081611a268239f35b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b81526041600452602490fd5b634e487b7160e01b82526032600452602482fd5b634e487b7160e01b82526041600452602482fd5b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616e385f395f51905f5260048401526103e8602484015266b1a2bc2ec5000060448401525af115610f4b5781611190916119ee565b61119b57805f610f4b565b80fd5b50fd5b50803b1515610f46565b015190505f80610efd565b82875280872097601f198316885b8181106112035750916006979899918460019594106111eb575b505050811b019055610f11565b01515f1960f88460031b161c191690555f80806111de565b838301518b556001909a0199602093840193016111c4565b82875260208720601f830160051c81019160208410611256575b601f0160051c01905b81811061124b5750610ee1565b87815560010161123e565b9091508190611235565b634e487b7160e01b87526022600452602487fd5b90607f1690610ecf565b634e487b7160e01b86526041600452602486fd5b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616e585f395f51905f5260048401526101f46024840152670de0b6b3a764000060448401525af115610d4057816112e9916119ee565b61119b57805f610d40565b50803b1515610d3b565b015190505f80610cf2565b82875280872097601f198316885b81811061135657509160069798999184600195941061133e575b505050811b019055610d06565b01515f1960f88460031b161c191690555f8080611331565b838301518b556001909a019960209384019301611317565b82875260208720601f830160051c810191602084106113a9575b601f0160051c01905b81811061139e5750610cd6565b878155600101611391565b9091508190611388565b90607f1690610cc4565b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616e185f395f51905f5260048401526103e86024840152674563918244f4000060448401525af115610b2c5781611414916119ee565b61119b57805f610b2c565b50803b1515610b27565b015190505f80610ade565b82875280872097601f198316885b818110611481575091600697989991846001959410611469575b505050811b019055610af2565b01515f1960f88460031b161c191690555f808061145c565b838301518b556001909a019960209384019301611442565b82875260208720601f830160051c810191602084106114d4575b601f0160051c01905b8181106114c95750610ac2565b8781556001016114bc565b90915081906114b3565b90607f1690610ab0565b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616ed85f395f51905f5260048401526103e86024840152670de0b6b3a764000060448401525af11561091e578161153f916119ee565b61119b57805f61091e565b50803b1515610919565b015190505f806108d0565b82875280872097601f198316885b8181106115ac575091600697989991846001959410611594575b505050811b0190556108e4565b01515f1960f88460031b161c191690555f8080611587565b838301518b556001909a01996020938401930161156d565b82875260208720601f830160051c810191602084106115ff575b601f0160051c01905b8181106115f457506108b4565b8781556001016115e7565b90915081906115de565b90607f16906108a2565b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616eb85f395f51905f5260048401526103e86024840152670de0b6b3a764000060448401525af11561070e578161166a916119ee565b61119b57805f61070e565b50803b1515610709565b015190505f806106c0565b82875280872097601f198316885b8181106116d75750916006979899918460019594106116bf575b505050811b0190556106d4565b01515f1960f88460031b161c191690555f80806116b2565b838301518b556001909a019960209384019301611698565b82875260208720601f830160051c8101916020841061172a575b601f0160051c01905b81811061171f57506106a4565b878155600101611712565b9091508190611709565b90607f1690610692565b803b1561119e57818091606460405180948193636b26335560e11b83525f516020616e785f395f51905f5260048401526103e86024840152671bc16d674ec8000060448401525af1156104f85781611795916119ee565b61119b57805f6104f8565b50803b15156104f3565b015190505f806104aa565b82875280872097601f198316885b8181106118025750916006979899918460019594106117ea575b505050811b0190556104be565b01515f1960f88460031b161c191690555f80806117dd565b838301518b556001909a0199602093840193016117c3565b82875260208720601f830160051c81019160208410611855575b601f0160051c01905b81811061184a575061048e565b87815560010161183d565b9091508190611834565b90607f169061047c565b803b156118c9575f8091606460405180948193636b26335560e11b83525f516020616e985f395f51905f5260048401526103e86024840152670de0b6b3a764000060448401525af1156102e0576118c291505f906119ee565b5f5f6102e0565b5f80fd5b50803b15156102db565b015190505f80610294565b601f19821697835f52815f20985f5b818110611930575091600697989991846001959410611918575b505050811b0190556102a8565b01515f1960f88460031b161c191690555f808061190b565b838301518b556001909a0199602093840193016118f1565b825f5260205f20601f830160051c81019160208410611983575b601f0160051c01905b8181106119785750610278565b5f815560010161196b565b9091508190611962565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610266565b634e487b7160e01b5f52604160045260245ffd5b631e4fbdf760e01b5f525f60045260245ffd5b61018081019081106001600160401b038211176119ab57604052565b601f909101601f19168101906001600160401b038211908210176119ab57604052565b51906001600160a01b03821682036118c95756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306a36aee14613fb65750806307cf0ee914613f2d5780630ab0c75e146139435780630dbb4929146138fb57806310fdfea7146138d357806311c85b0b1461389a57806315de32ca1461384557806317e1c595146132c457806319c46e811461329b5780631a08a819146132605780631b02e44f14612cc85780631c5bf6bb14612bfe5780631cae041214612baf5780632822ffce14612b765780632c333e2514612ac857806336db9caf14612a835780633b60288a14612a54578063410087ad146129f257806343e6a160146129ca5780634b8b8a6e146129a057806354fd4d501461294e57806359dc9126146129015780635c445412146128c75780635ee05b17146126305780636229738c146125b1578063669d776214611f64578063682bb1c914611d91578063715018a614611d4a578063727b52a5146115a657806377c0d7e7146115615780637f52815514611516578063826600ce146114ed57806385513971146114355780638da5cb5b1461140e5780638ff39099146113a3578063919d1e2c1461137a57806391d1485414611330578063920983fb146112ef578063995d74ef146112845780639b1465a314611249578063a2d0020e14611221578063a3246ad314611168578063a3b2298814610dd5578063a9d5652314610d71578063aa9e8cf714610d3e578063af5eda0214610d14578063b5e936ab14610b2f578063bc95910114610ac4578063be30742f14610a9b578063bf0cb04214610a73578063bf28c98a14610a34578063c8ee23ef146109ef578063cb31e2f1146108cc578063cd5d1e7414610861578063ce830e7b146105cb578063d12b93ff146105a2578063e350d77b14610578578063e74c7bd71461053f578063e79e9739146104d4578063e7b8913814610472578063e9ebf83114610437578063f2fde38b146103c45763f538e1dc146102d3575f80fd5b346103c15760203660031901126103c1576040906004358152600760205220805460018201549160028101546103b06003830154604051906103238261031c81600489016141d9565b03836142c0565b60ff600660018060a01b03600588015416960154946040519889988952602089015263ffffffff8116604089015263ffffffff8160201c16606089015263ffffffff8160401c16608089015263ffffffff8160601c1660a089015261ffff8160801c1660c089015260901c16151560e08701526101008601526101806101208601526101808501906142e3565b916101408401526101608301520390f35b80fd5b50346103c15760203660031901126103c1576103de614067565b6103e661495e565b6001600160a01b031680156104235781546001600160a01b03198116821783556001600160a01b03165f51602061531d5f395f51905f528380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346103c157806003193601126103c15760206040517f3b5016dc6721b132ddcb7027030b137a739df81e419695dae0899a866c1c514d8152f35b50346103c15760203660031901126103c157600435906001600160401b0382116103c15760206104a53660048501614322565b8160405191805191829101835e600f90820190815281900382019020546040516001600160a01b039091168152f35b50346103c15760203660031901126103c1576104ee614067565b6104f661495e565b600480546001600160a01b039283166001600160a01b0319821681179092559091167f1f7cd67c986d0cce4aa6f69075b5278a05438ef2a5d1abf6eeded51ba81232458380a380f35b50346103c15760203660031901126103c1576020906040906001600160a01b03610567614067565b168152601583522054604051908152f35b50346103c15760203660031901126103c15760406020916004358152601b83522054604051908152f35b50346103c157806003193601126103c1576006546040516001600160a01b039091168152602090f35b50346103c15760803660031901126103c1576105e5614067565b6024356001600160401b03811161085d57610604903690600401614171565b916044356001600160401b03811161085957610624903690600401614171565b9390926064356001600160401b038111610710576106469036906004016140bd565b919095610651614984565b338852601760205260ff6040892054161561081457610671818514614509565b6004546001600160a01b03169283156107d65781838a99879360018060a01b0360065416918b8b841515806107cd575b610714575b5050505050505050823b156107105786946106d9869260405198899788968795632fa66a7f60e11b8752600487016148fa565b03925af18015610705576106f0575b506001805580f35b816106fa916142c0565b6103c157805f6106e8565b6040513d84823e3d90fd5b8680fd5b61073060209761073e9361075b9a604051998a958c87016148fa565b03601f1981018652856142c0565b604051635c73957b60e11b815295869485938493600485016145a6565b03915afa80156107c2578890610783575b61077691506145cc565b8381835f80808b8b6106a6565b506020813d6020116107ba575b8161079d602093836142c0565b810103126107b6576107b1610776916144bb565b61076c565b8780fd5b3d9150610790565b6040513d8a823e3d90fd5b508315156106a1565b60405162461bcd60e51b815260206004820152601660248201527514dd5c195c94185e5b585cdd195c881b9bdd081cd95d60521b6044820152606490fd5b60405162461bcd60e51b815260206004820152601e60248201527f556e617574686f72697a65642052657075746174696f6e20536f7572636500006044820152606490fd5b8480fd5b8280fd5b50346103c15760203660031901126103c15761087b614067565b61088361495e565b600380546001600160a01b039283166001600160a01b0319821681179092559091167f171f7dbde35aed7cddf3ece2dad8f4eb62443a3d6bf8616586da6fd03c6b4ed98380a380f35b50346103c1576108db366140a7565b906108e461495e565b601854808210156109b45781610976575b5f19810190811161096257811061092e575b610913610929916140ea565b819391549060031b91821b915f19901b19161790565b905580f35b60018101808211610962576109299161095a61094c610913936140ea565b90549060031b1c85106148af565b915050610907565b634e487b7160e01b84526011600452602484fd5b5f1982018281116109a05761098d61099b916140ea565b90549060031b1c84116148af565b6108f5565b634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606490fd5b50346103c15760403660031901126103c1576040610a0b61407d565b9160043581526009602052209060018060a01b03165f52602052602060405f2054604051908152f35b50346103c15760203660031901126103c15760209060ff906040906001600160a01b03610a5f614067565b168152601784522054166040519015158152f35b50346103c157806003193601126103c15760206040515f51602061535d5f395f51905f528152f35b50346103c157806003193601126103c1576005546040516001600160a01b039091168152602090f35b50346103c15760203660031901126103c157610ade614067565b610ae661495e565b600580546001600160a01b039283166001600160a01b0319821681179092559091167f019f532f6e08ee8944dc2e7ac40f3c97ad4a20618aee847ddf7c502821c7dad48380a380f35b50346103c15760203660031901126103c15780604051610b4e8161425a565b8181528160208201528160408201528160608201528160808201528160a08201528160c08201528160e0820152816101008201526101208101606090528161014082015261016001526004358152600760205260409020604051610bb18161425a565b81548152600182015491602082019283526002810154604083019063ffffffff8116825260608401908060201c63ffffffff16825260808501908060401c63ffffffff16825260a086018160601c63ffffffff16815260c08701908260801c61ffff16825260e088019260901c60ff1615158352600387015493610100890194855260405195868060048b0190610c47916141d9565b03610c5290886142c0565b6101208a01968752600160a01b6001900360058a015416986101408b01998a5260060154976101608b019889526040519b8c9b60208d525160208d01525160408c01525163ffffffff1660608b01525163ffffffff1660808a01525163ffffffff1660a08901525163ffffffff1660c08801525161ffff1660e08701525115156101008601525161012085015251610140840161018090526101a08401610cf8916142e3565b91516001600160a01b0316610160840152516101808301520390f35b50346103c15760203660031901126103c15760406020916004358152601683522054604051908152f35b50346103c15760203660031901126103c1576020906004358152601a8252604060018060a01b0391205416604051908152f35b50346103c15760403660031901126103c157610d8b61407d565b610d9361495e565b610da76001600160a01b0382161515614873565b6004358252601a6020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b50346103c15760603660031901126103c157602435906004356001600160401b038311611164578260040183360393610180600319860112611099576044356001600160a01b038116919082900361085957610e2f61495e565b838552601a60205260408520546001600160a01b031661112957610e54821515614873565b838552600760205260408520918335835560248201356001840155600283019263ffffffff610e85604485016146a9565b16845463ffffffff60201b610e9c606487016146a9565b60201b1663ffffffff60401b610eb4608488016146a9565b60401b169163ffffffff60601b610ecd60a489016146a9565b60601b169363ffffffff60601b199160018060601b0319161716171717845560c4830193610f03610efd8661465f565b826146ba565b60e484013580151580910361112557815460ff60901b191660909190911b60ff60901b1617905561010483013560038201819055600482019890939061012482013590602219018112156111255781019860048a01356001600160401b0381116111215780360360248c011361112157610f8781610f8184546141a1565b846143f6565b89601f82116001146110ab5791610fb38260069593610164958e9f8f9d9e9f9261109d575b5050614445565b90555b610fc36101448201614632565b6005850180546001600160a01b03199081166001600160a01b039384161790915592909101359290930191909155878652601a60205260408620805490911690921790915560025416916110169061465f565b90823b1561109957604051636b26335560e11b81526004810187905261ffff92909216602483015260448201529082908290606490829084905af1801561070557611084575b505061107e5f5160206152bd5f395f51905f52916040519182914290836146ea565b0390a280f35b8161108e916142c0565b61085d57825f61105c565b8380fd5b016024013590505f80610fac565b828b5260208b2090601f1983168c5b81811061110657509261016494928d9e6001939d9e9c9d8360069997106110e9575b505050811b019055610fb6565b6024910101355f19600384901b60f8161c191690555f80806110dc565b60248f840101358455600190930192602092830192016110ba565b8980fd5b8880fd5b60405162461bcd60e51b8152602060048201526013602482015272526f6c6520616c72656164792065786973747360681b6044820152606490fd5b5080fd5b50346103c15760203660031901126103c1576004358152600a60205260408120604051908160208254918281520190819285526020852090855b81811061120257505050826111b89103836142c0565b604051928392602084019060208552518091526040840192915b8181106111e0575050500390f35b82516001600160a01b03168452859450602093840193909201916001016111d2565b82546001600160a01b03168452602090930192600192830192016111a2565b50346103c157806003193601126103c15760206040515f5160206152fd5f395f51905f528152f35b50346103c157806003193601126103c15760206040517f6fb2b25080d21c908f32ff8ff99eb1d552c210854f7de48a40406764c09c68f88152f35b50346103c15760203660031901126103c15761129e614067565b6112a661495e565b600680546001600160a01b039283166001600160a01b0319821681179092559091167f9e5ee21152afb219d78a3588775fe954c5094514af1627c6d4b203175091d3048380a380f35b50346103c15760203660031901126103c1576020906001600160a01b03611314614067565b16815260108252604060018060a01b0391205416604051908152f35b50346103c15760403660031901126103c157604061134c61407d565b9160043581526008602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346103c157806003193601126103c1576004546040516001600160a01b039091168152602090f35b50346103c15760203660031901126103c1576113bd614067565b6113c561495e565b600280546001600160a01b039283166001600160a01b0319821681179092559091167f7042586b23181180eb30b4798702d7a0233b7fc2551e89806770e8e5d9392e6a8380a380f35b50346103c157806003193601126103c157546040516001600160a01b039091168152602090f35b50346103c157611444366140a7565b818352601a60205260408320546001600160a01b0316331415806114d9575b6114a55760207f13fa7976d19366a82359594f556abe5fe2d49e404db9fc466282cdb6471c629a9183855260078252806006604087200155604051908152a280f35b60405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606490fd5b5082546001600160a01b0316331415611463565b50346103c157806003193601126103c1576002546040516001600160a01b039091168152602090f35b50346103c157611525366140a7565b91908152600a602052604081209081548310156103c15760206115488484614116565b905460405160039290921b1c6001600160a01b03168152f35b50346103c15760403660031901126103c157604061157d61407d565b916004358152600b602052209060018060a01b03165f52602052602060405f2054604051908152f35b50346103c15760203660031901126103c1576004356115c3614984565b808252600860209081526040808420335f908152925290205460ff1615611d34578082526007602052600660408320015480611bfe575b50808252600960209081526040808420335f9081529252902054905f5160206152dd5f395f51905f52810361197b5760035483906001600160a01b0316803b15611164578180916024604051809481936316bf12d760e21b83523360048401525af1801561070557611966575b50505b80604051838152604060208201526004604082015263115e1a5d60e21b60608201527fe80f99d9789e367c229c526d3d3f84d44d3daf77ea65f7bbe8510f176ac45a2360803392a3808352600860209081526040808520335f8181529190935220805460ff191690556116dd9082614ded565b33835260136020526040832054611949575b33835260126020526040832091825492845b8481106118a5575b505090915033835260136020526040832054156117ed575b60025460405163374e4d7360e01b8152919060209083906001600160a01b0316818781611752893360048401614392565b03925af19081156117e25784916117a8575b61176e9250614646565b906040519182524260208301527f0d9361411a652b66cd4aed24a96d36c0b048899896c927d879a9d3ba2790d9c660403393a36001805580f35b90506020823d6020116117da575b816117c3602093836142c0565b810103126117d65761176e915190611764565b5f80fd5b3d91506117b6565b6040513d86823e3d90fd5b60045483906001600160a01b03168061185a575b506003546001600160a01b0316803b156111645781809160246040518094819363374e7fa360e01b83523360048401525af1801561070557611845575b5050611721565b8161184f916142c0565b61085d57825f61183e565b803b15611164578180916044604051809481936351cb857360e11b83523360048401528160248401525af180156107055715611801578161189a916142c0565b61085d57825f611801565b836118b08284614116565b90549060031b1c146118c457600101611701565b909192935f198101908111611935576109136118e36118f19285614116565b90549060031b1c9284614116565b905580548015611921575f1901906119098282614116565b8154905f199060031b1b191690555581905f80611709565b634e487b7160e01b85526031600452602485fd5b634e487b7160e01b86526011600452602486fd5b33835260136020526040832061195f8154614653565b90556116ef565b81611970916142c0565b61085d57825f611667565b5f5160206152fd5f395f51905f52810361166a57808352600d6020526040832060018060a01b0333165f526020526119bf6119c660405f20604051928380926141d9565b03826142c0565b805180611a30575b505060035483906001600160a01b0316803b156111645781809160446040518094819363d977b66b60e01b83523360048401523360248401525af1801561070557611a1b575b505061166a565b81611a25916142c0565b61085d57825f611a14565b8101906020820190602081840312611bfa576020810151906001600160401b03821161071057019160c090839003126108595760405190611a708261428a565b60208301516001600160401b03811161071057816020611a9292860101614859565b825260408301516001600160401b03811161071057816020611ab692860101614859565b6020830190815260608401519093906001600160401b0381116107b657826020611ae292840101614859565b604084015260808101516001600160401b0381116107b657826020611b0992840101614859565b606084015260a08101516001600160401b0381116107b65760c0926020611b3292840101614859565b6080840152015160a0820152805133906001600160a01b0390611b5490614366565b541614611bdc575b5080518051908115159182611bac575b5050611b79575b806119ce565b6020809151604051928184925191829101835e600f9082019081520301902080546001600160a01b03191690555f611b73565b8091925060206040519301835e600f9082019081528190036020019020546001600160a01b031633145f80611b6c565b611be69051614366565b80546001600160a01b03191690555f611b5c565b8580fd5b6002546040516318581cf760e11b815290849082906001600160a01b03168180611c2c883360048401614392565b03915afa80156117e2578490611cae575b65ffffffffffff915016908101809111611c9a574210611c5d575f6115fa565b60405162461bcd60e51b8152602060048201526015602482015274131bd8dac8191d5c985d1a5bdb881b9bdd081b595d605a1b6044820152606490fd5b634e487b7160e01b83526011600452602483fd5b503d8085833e611cbe81836142c0565b81019060a08183031261085957611cd48161480f565b50611ce16020820161480f565b5060408101519065ffffffffffff82168203611bfa576080810151906001600160401b038211610710570182601f82011215611bfa5765ffffffffffff92816020611d2e93519101614823565b50611c3d565b633a401ef360e21b825260045233602452604490fd5b50346103c157806003193601126103c157611d6361495e565b80546001600160a01b03198116825581906001600160a01b03165f51602061531d5f395f51905f528280a380f35b50346103c15760a03660031901126103c157600435606435608435611db461495e565b611dc26107d083111561466e565b82845260076020526040842060243581556001810190604435825561ffff8411611f2857856002820193611dfa61ffff8716866146ba565b600383019581875560018060a01b036002541690813b15611099576064898580946040519687958694636b26335560e11b86526004860152602485015260448401525af1801561070557611f13575b50505f5160206152bd5f395f51905f529360ff60405194859460408652845460408701525460608601525463ffffffff8116608086015263ffffffff8160201c1660a086015263ffffffff8160401c1660c086015263ffffffff8160601c1660e086015261ffff8160801c1661010086015260901c161515610120840152546101408301526101806101608301526006611eea6101c08401600484016141d9565b60058301546001600160a01b03166101808501529101546101a08301524260208301520390a280f35b81611f1d916142c0565b611bfa57855f611e49565b60405162461bcd60e51b81526020600482015260146024820152732b30b63ab29032bc31b2b2b239903ab4b73a189b60611b6044820152606490fd5b50346103c157611f733661412b565b611f809493919294614984565b6001600160a01b03851692831561257b576108008211612544578285526007602052604085209160405191611fb48361425a565b8354835260018401549360208401948552600660028201549163ffffffff8316604087015263ffffffff8360201c16606087015263ffffffff8360401c16608087015263ffffffff8360601c1660a087015261ffff8360801c1660c087015260ff60e087019360901c16151583526003810154610100870152604051612041816119bf81600486016141d9565b61012087015260058101546001600160a01b0316610140870152015461016085015251158061252c5750848752600860205260408720865f5260205260ff60405f20541692838094612515575b6124fe575f51602061533d5f395f51905f52861480156124e8575b612498575b6120b98383886149a4565b90518082106124805750836123de57858852600860205260408820875f5260205260405f20600160ff19825416179055858852600960205260408820875f526020528060405f2055858852600a6020526121168960408a206143ad565b858852600a6020526040882054868952600b60205260408920885f5260205260405f20558688526013602052604088206121508154614499565b9055868852601260205260408820805490600160401b8210156123ca579187612185610913848e966001602097018155614116565b905560018060a01b03600254168751918b8a6121b860405197889687958694635f7d2b8760e11b86528360048701614466565b03925af180156107c25761239b575b505b848752600d602090815260408089205f89815292529020976001600160401b03831161238757612203836121fd8b546141a1565b8b6143f6565b8798601f84116001146123205761222b84808b9c61226598999a9b9c91612315575b50614445565b90555b604061223c8484848b614c1d565b60018060a01b0360035416898c8451809981958294631f1f342160e11b845289600485016144e5565b03925af1801561230a57612298948a916122da575b50878a52600c60205260408a20895f5260205260405f205586614c8a565b156122c357505f51602061537d5f395f51905f526040845b8151908152426020820152a36001805580f35b60405f51602061537d5f395f51905f5291516122b0565b6122fc915060403d604011612303575b6122f481836142c0565b8101906144c8565b505f61227a565b503d6122ea565b6040513d8b823e3d90fd5b90508501355f612225565b80895260208920601f1985169a8a5b8c811061236f5750856122659798999a9b9c10612356575b5050600184811b01905561222e565b8401355f19600387901b60f8161c191690555f80612347565b9091602060018192858901358155019301910161232f565b634e487b7160e01b88526041600452602488fd5b6123bc9060203d6020116123c3575b6123b481836142c0565b810190614457565b505f6121c7565b503d6123aa565b634e487b7160e01b8a52604160045260248afd5b60018060a01b0360025416868952600960205260408920885f5260205261240960405f205483614646565b813b1561112157899060848a8360405195869485936325e5c05160e11b855260048501528d602485015260448401528d60648401525af1801561230a5790899161246b575b50869052600960205260408820875f5260205260405f20556121c9565b81612475916142c0565b6107b657875f61244e565b6322df051360e11b8952600491909152602452604487fd5b5f5160206152fd5f395f51905f528852600860205260408820875f5260205260ff60405f2054166120ae57633a401ef360e21b88525f5160206152fd5f395f51905f526004526024879052604488fd5b505f51602061535d5f395f51905f5286146120a9565b6044888888631b753c1b60e21b8352600452602452fd5b505f5160206152dd5f395f51905f5286141561208e565b63159818c760e11b8852600486905215602452604487fd5b6040516305519d6f60e51b815260206004820152600e60248201526d4461746120746f6f206c6172676560901b6044820152606490fd5b6040516305519d6f60e51b815260206004820152600d60248201526c155cd95c881c995c5d5a5c9959609a1b6044820152606490fd5b50346103c15760403660031901126103c1576125cb614067565b6024359081151580920361085d5760207f6be30291a8f228c9342613e5e66df1a1b85aa570ac1bca9219f3ac7b7f73bbf39161260561495e565b6001600160a01b0316808552601782526040808620805460ff191660ff87161790555193845292a280f35b50346103c15760403660031901126103c157602435906004356001600160401b03831161116457826004018336039361018060031986011261109957828452601a60205260408420546001600160a01b0316331415806128b3575b6114a55760c48101906126ae6107d061ffff6126a68561465f565b16111561466e565b83855260076020526040852083358155602482013560018201556002810163ffffffff6126dd604485016146a9565b16815463ffffffff60201b6126f4606487016146a9565b60201b1663ffffffff60401b61270c608488016146a9565b60401b169163ffffffff60601b61272560a489016146a9565b60601b169363ffffffff60601b199160018060601b03191617161717178155612750610efd8561465f565b60e48301358015158091036107b657815460ff60901b191660909190911b60ff60901b1617905561010482013560038201819055600482019790929061012482013590602219018112156107b65781019760048901356001600160401b0381116111255780360360248b0113611125576127ce81610f8184546141a1565b88601f821160011461283d57916127f98260069593610164958d9e8e9c9d9e9261109d575050614445565b90555b6128096101448201614632565b6005850180546001600160a01b0319166001600160a01b03928316179055910135919092015560025416916110169061465f565b828a5260208a2090601f1983168b5b81811061289857509261016494928c9d600193839d9e9c9d600699971061287b575b505050811b0190556127fc565b6024910101355f19600384901b60f8161c191690555f808061286e565b60248e8401013584556001909301926020928301920161284c565b5083546001600160a01b031633141561268b565b50346103c15760203660031901126103c157600435906018548210156103c15760206128f2836140ea565b90549060031b1c604051908152f35b50346103c15760203660031901126103c1576119bf612936604061294a936004358152601960205220604051928380926141d9565b6040519182916020835260208301906142e3565b0390f35b50346103c157806003193601126103c1575061294a6040516129716040826142c0565b600e81526d2932b3b4b9ba393c96999718171960911b60208201526040519182916020835260208301906142e3565b50346103c15760203660031901126103c15760406020916004358152600a83522054604051908152f35b50346103c157806003193601126103c15760206040515f5160206152dd5f395f51905f528152f35b50346103c15760203660031901126103c157600435906001600160401b0382116103c1576020612a253660048501614322565b8160405191805191829101835e600e90820190815281900382019020546040516001600160a01b039091168152f35b50346103c15760203660031901126103c15760ff60406020926004358152601184522054166040519015158152f35b50346103c15760403660031901126103c1576040612a9f61407d565b916004358152600c602052209060018060a01b03165f52602052602060405f2054604051908152f35b50346103c15760203660031901126103c1576001600160a01b03612aea614067565b16815260146020526040812054600190601854805b612b1a575b6020604085858152601683522054604051908152f35b5f1981018181116109a057612b2e906140ea565b90549060031b1c821015612b4b57612b4590614653565b80612aff565b8092506001915001809111612b6257816040612b04565b634e487b7160e01b82526011600452602482fd5b50346103c15760203660031901126103c1576020906040906001600160a01b03612b9e614067565b168152601383522054604051908152f35b50346103c15760403660031901126103c1576040612bcb61407d565b916004358152600d602052209060018060a01b03165f5260205261294a6119bf61293660405f20604051928380926141d9565b50346103c15760203660031901126103c157600435612c1b61495e565b60185480612c57575b600160401b811015612c435761091381600161092993016018556140ea565b634e487b7160e01b83526041600452602483fd5b5f19810181811161096257612c6b906140ea565b90549060031b1c8211612c245760405162461bcd60e51b815260206004820152602260248201527f5468726573686f6c64206d75737420626520686967686572207468616e206c616044820152611cdd60f21b6064820152608490fd5b50346103c15760a03660031901126103c1576004356024356001600160401b03811161085d57612cfc903690600401614171565b90916044356001600160401b03811161085957612d1d903690600401614171565b9093909160643591906084356001600160401b0381116107b657612d459036906004016140bd565b612d50929192614984565b338952601760205260ff60408a2054161561081457612d70868814614509565b8015613226578083016080848203126111215783356001600160401b0381116130945781612d9f918601614322565b5060208401356001600160401b0381116130945781612dbf918601614322565b506040840135906001600160401b03821161309457612ddf918501614322565b50886060840135805b6131f35750600554600391906001600160a01b031680613191575b501061314d576006546001600160a01b0316156131095781613098575b604051926020840192835289604085015289606085015260e06080850152612e4d61010085018987614547565b848103601f190160a0860152878152926001600160fb1b0388116130945784612e9e6020612ee5978d82988d60051b8092858301378c60c08401524660e0840152010301601f1981018352826142c0565b519020916040519284840152838352612eb86040846142c0565b600654604051635c73957b60e11b81529586946001600160a01b03909216938593849391600485016145a6565b03915afa801561308957879061304e575b612f0091506145cc565b855b848110612f1157866001805580f35b6001600160a01b03612f2c612f27838886614622565b614632565b16808852601560205260408820548411156130445780885260146020526040882054612f5983878a614622565b359080821115612fef576064612f6f8284614646565b11612fbb575b50905f51602061539d5f395f51905f526040600194935b838c52601460205280828d2055838c52601560205287828d20558151908152876020820152a201935b93612f02565b905060648101809111612fdb575f51602061539d5f395f51905f52612f75565b634e487b7160e01b89526011600452602489fd5b818111613012575b50905f51602061539d5f395f51905f52604060019493612f8c565b606461301e8383614646565b1115612ff757606319810191508111612fdb575f51602061539d5f395f51905f52612ff7565b5060010193612fb5565b506020813d602011613081575b81613068602093836142c0565b810103126107105761307c612f00916144bb565b612ef6565b3d915061305b565b6040513d89823e3d90fd5b8a80fd5b818952601160205260ff60408a2054166130c857818952601160205260408920805460ff19166001179055612e20565b60405162461bcd60e51b8152602060048201526019602482015278141c9bdc1bdcd85b08185b1c9958591e48195e1958dd5d1959603a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b109314c815985b1a59185d1bdc881b9bdd0818dbdb999a59dd5c995960221b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f496e73756666696369656e7420636f6e73656e737573207468726573686f6c646044820152fd5b602060049160405192838092630859bc9d60e31b82525afa8c91816131bf575b5015612e035791505f612e03565b9091506020813d6020116131eb575b816131db602093836142c0565b810103126117d65751905f6131b1565b3d91506131ce565b5f19810190808211613212571690819061320c90614499565b91612de8565b634e487b7160e01b8c52601160045260248cfd5b60405162461bcd60e51b8152602060048201526012602482015271109314c8141c9bdbd9881c995c5d5a5c995960721b6044820152606490fd5b50346103c157806003193601126103c15760206040517f3aa2e9509f29532b71f822e18bcde843a8070a508d564188ec8a6adf59eff28a8152f35b50346103c157806003193601126103c1576003546040516001600160a01b039091168152602090f35b50346103c1576132d33661412b565b6132df94939194614984565b81845260076020526040842090604051956132f98761425a565b8254875260018301549260208801938452600660028201549163ffffffff831660408b015263ffffffff8360201c1660608b015263ffffffff8360401c1660808b015263ffffffff8360601c1660a08b015261ffff8360801c1660c08b015260ff60e08b019360901c161515835260038101546101008b0152604051613386816119bf81600486016141d9565b6101208b015260058101546001600160a01b03166101408b0152015461016089015251158061382d575083865260086020526040862060018060a01b0386165f5260205260ff60405f20541661380c575f5160206152fd5f395f51905f528652600860209081526040808820335f908152925290205460ff16156137cc575f51602061533d5f395f51905f52841480156137b6575b613756575b61342b8282866149a4565b965180881061373f57508386526008602090815260408088206001600160a01b0388165f818152918452828220805460ff19166001179055878a5260098452828a209082528352819020899055858852600a909152862061348d9086906143ad565b838652600a6020908152604080882054868952600b83528189206001600160a01b0389165f81815291855283822092909255878a52600d8452828a20918152925290206001600160401b03831161372b576134f2836134ec83546141a1565b836143f6565b86601f84116001146136c4578798879261351686806020958d916136b95750614445565b90555b60018060a01b03600254168651918a8961354b60405197889687958694635f7d2b8760e11b8652339360048701614466565b03925af1801561308957613686575b506001600160a01b038516808752601360205260408720805491969161357f90614499565b90553386867f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a460406135e66135b98585858a614c1d565b60035483516362c00b1f60e11b81529a8b936001600160a01b0390921692849283918c89600485016144e5565b03925af19687156107c257976020988198613646575b50925f51602061537d5f395f51905f52949261362e9260408689829852600c8d5220895f528b5289865f205587614c8a565b5181519081524287820152a360018055604051908152f35b6040949198509261362e92856136775f51602061537d5f395f51905f529896823d8411612303576122f481836142c0565b509a93965050925092946135fc565b95506020863d6020116136b1575b816136a1602093836142c0565b810103126117d65786955161355a565b3d9150613694565b90508701355f612225565b8188526020882090601f198516895b8181106137135750926020928a9b92878b96106136fa575b5050600186811b019055613519565b8601355f19600389901b60f8161c191690555f806136eb565b919260206001819286890135815501940192016136d3565b634e487b7160e01b87526041600452602487fd5b6322df051360e11b87526004889052602452604486fd5b5f5160206152fd5f395f51905f52865260086020526040862060018060a01b0386165f5260205260ff60405f20541661342057633a401ef360e21b86525f5160206152fd5f395f51905f526004526001600160a01b038516602452604486fd5b505f51602061535d5f395f51905f52841461341b565b60405162461bcd60e51b815260206004820152601860248201527743616c6c6572206d75737420626520436f6d6d756e69747960401b6044820152606490fd5b631b753c1b60e21b865260048490526001600160a01b038516602452604486fd5b63159818c760e11b8752600485905215602452604486fd5b50346103c1577f7e684e0b76ed13bc9cf7e4fbac7d11873036be9c9a83f9958382721eeda460106040613877366140a7565b61387f61495e565b8185526016602052808386205582519182526020820152a180f35b50346103c15760203660031901126103c1576020906040906001600160a01b036138c2614067565b168152601483522054604051908152f35b50346103c157806003193601126103c15760206040515f51602061533d5f395f51905f528152f35b50346103c15760403660031901126103c157613915614067565b6001600160a01b03168152601260205260408120805460243592908310156103c15760206128f28484614116565b50346117d65760403660031901126117d657600435906024356001600160401b0381116117d6576139789036906004016140bd565b9290613982614984565b331561257b57610800841161254457815f52600760205260405f2090604051906139ab8261425a565b8254825260018301549260208301938452600660028201549163ffffffff8316604086015263ffffffff8360201c16606086015263ffffffff8360401c16608086015263ffffffff8360601c1660a086015261ffff8360801c1660c086015260ff60e086019360901c16151583526003810154610100860152604051613a38816119bf81600486016141d9565b61012086015260058101546001600160a01b03166101408601520154610160840152511580613f1657505f84815260086020908152604080832033845290915290205460ff16918280613eff575b613ee8575f51602061533d5f395f51905f5285148015613ed2575b613e8c575b613ab18783876149a4565b9051808210613e76575082613dc257848652600860209081526040808820335f818152918452828220805460ff19166001179055888a5260098452828a20818352845290829020849055878952600a9092528720613b0f91906143ad565b848652600a6020526040862054858752600b6020526040872060018060a01b0333165f5260205260405f2055338652601360205260408620613b518154614499565b9055338652601260205260408620805490600160401b82101561238757613bbf9287613b896109138583956001602098018155614116565b90556002548751604051635f7d2b8760e11b81529586946001600160a01b039093169385938d9385939233928360048701614466565b03925af18015613d1757613da3575b505b838552600d60209081526040808720335f908152925290206001600160401b038711613d8f57613c04876134ec83546141a1565b8587601f8111600114613d2d5780613c22928991613d225750614445565b90555b846040613c64613c378985338a614c1d565b6003548351631f1f342160e11b81529485936001600160a01b0390921692849283918c33600485016144e5565b03925af1908115613d17579160409791613ca4938891613cf9575b50868852600c60205288882060018060a01b0333165f52602052885f20553386614c8a565b15613cf35750815b8351908152426020820152815f51602061537d5f395f51905f52853393a3600180558152600c6020522060018060a01b0333165f52602052602060405f2054604051908152f35b51613cac565b613d109150893d8b11612303576122f481836142c0565b505f613c7f565b6040513d88823e3d90fd5b90508401355f612225565b50818752602087209088601f198116895b818110613d74575010613d5b575b5050600187811b019055613c25565b8301355f1960038a901b60f8161c191690555f80613d4c565b8684013585556001909401936020938401938c935001613d3e565b634e487b7160e01b86526041600452602486fd5b613dbb9060203d6020116123c3576123b481836142c0565b505f613bce565b6002545f8681526009602090815260408083203384529091529020546001600160a01b0390911690613df49083614646565b813b156117d6575f916084839260405194859384926325e5c05160e11b84523360048501528c602485015260448401523360648401525af18015613e6b57613e56575b50848652600960209081526040808820335f9081529252902055613bd0565b613e639196505f906142c0565b5f945f613e37565b6040513d5f823e3d90fd5b906322df051360e11b5f5260045260245260445ffd5b335f9081525f51602061529d5f395f51905f52602052604090205460ff16613aa657633a401ef360e21b5f525f5160206152fd5f395f51905f526004523360245260445ffd5b505f51602061535d5f395f51905f528514613aa1565b84631b753c1b60e21b5f526004523360245260445ffd5b505f5160206152dd5f395f51905f52851415613a86565b8463159818c760e11b5f526004521560245260445ffd5b346117d657613f676040613f40366140a7565b5060018060a01b03600254168251808095819463b4d81fb360e01b83523360048401614392565b03915afa8015613e6b575f90613f83575b602090604051908152f35b506040813d604011613fae575b81613f9d604093836142c0565b810103126117d65760209051613f78565b3d9150613f90565b346117d65760203660031901126117d6576001600160a01b03613fd7614067565b165f52601260205260405f20908154808252602082019081935f5260205f20905f5b818110614051575050508161400f9103826142c0565b604051918291602083019060208452518091526040830191905f5b818110614038575050500390f35b825184528594506020938401939092019160010161402a565b8254845260209093019260019283019201613ff9565b600435906001600160a01b03821682036117d657565b602435906001600160a01b03821682036117d657565b35906001600160a01b03821682036117d657565b60409060031901126117d6576004359060243590565b9181601f840112156117d6578235916001600160401b0383116117d657602083818601950101116117d657565b6018548110156141025760185f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054821015614102575f5260205f2001905f90565b60606003198201126117d657600435916024356001600160a01b03811681036117d65791604435906001600160401b0382116117d65761416d916004016140bd565b9091565b9181601f840112156117d6578235916001600160401b0383116117d6576020808501948460051b0101116117d657565b90600182811c921680156141cf575b60208310146141bb57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916141b0565b5f92918154916141e8836141a1565b808352926001811690811561423d575060011461420457505050565b5f9081526020812093945091925b838310614223575060209250010190565b600181602092949394548385870101520191019190614212565b915050602093945060ff929192191683830152151560051b010190565b61018081019081106001600160401b0382111761427657604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b0382111761427657604052565b60a081019081106001600160401b0382111761427657604052565b601f909101601f19168101906001600160401b0382119082101761427657604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b03811161427657601f01601f191660200190565b81601f820112156117d65760208135910161433c82614307565b9261434a60405194856142c0565b828452828201116117d657815f92602092838601378301015290565b60208091604051928184925191829101835e8101600e81520301902090565b359081151582036117d657565b6001600160a01b039091168152602081019190915260400190565b80549190600160401b83101561427657826143d09160016143f495018155614116565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b565b601f821161440357505050565b5f5260205f20906020601f840160051c8301931061443b575b601f0160051c01905b818110614430575050565b5f8155600101614425565b909150819061441c565b8160011b915f199060031b1c19161790565b908160209103126117d6575190565b6001600160a01b039182168152602081019290925260408201929092526060810192909252909116608082015260a00190565b5f1981146144a75760010190565b634e487b7160e01b5f52601160045260245ffd5b519081151582036117d657565b91908260409103126117d6576144e26020835193016144bb565b90565b6144e2939260609260018060a01b03168252602082015281604082015201906142e3565b1561451057565b60405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b916020908281520191905f5b8181106145605750505090565b909192602080600192838060a01b0361457888614093565b168152019401929101614553565b908060209392818452848401375f828201840152601f01601f1916010190565b916144e293916145be91604085526040850191614586565b9160208184039101526142e3565b156145d357565b60405162461bcd60e51b815260206004820152602160248201527f52656769737472793a20424c5320566572696669636174696f6e204661696c656044820152601960fa1b6064820152608490fd5b91908110156141025760051b0190565b356001600160a01b03811681036117d65790565b919082039182116144a757565b80156144a7575f190190565b3561ffff811681036117d65790565b1561467557565b60405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b6044820152606490fd5b3563ffffffff811681036117d65790565b805461ffff60801b191660809290921b61ffff60801b16919091179055565b359063ffffffff821682036117d657565b92919060408452803560408501526020810135606085015263ffffffff614713604083016146d9565b16608085015263ffffffff61472a606083016146d9565b1660a085015263ffffffff614741608083016146d9565b1660c085015263ffffffff61475860a083016146d9565b1660e085015260c081013561ffff81168091036117d65761010085015261478160e08201614385565b1515610120850152610100810135610140850152610120810135601e19823603018112156117d6578101803591906020016001600160401b0383116117d65782360381136117d6576147e561016091602094610180848a01526101c0890191614586565b916001600160a01b036147fb6101408301614093565b1661018088015201356101a0860152930152565b51906001600160801b03821682036117d657565b92919261482f82614307565b9161483d60405193846142c0565b8294818452818301116117d6578281602093845f96015e010152565b9080601f830112156117d65781516144e292602001614823565b1561487a57565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606490fd5b156148b657565b60405162461bcd60e51b815260206004820152601c60248201527b5468726573686f6c6473206d75737420626520617363656e64696e6760201b6044820152606490fd5b9160209361491f9296959660018060a01b031684526060858501526060840191614547565b9060408183039101528281520191905f5b81811061493d5750505090565b90919260208060019261494f87614385565b15158152019401929101614930565b5f546001600160a01b0316330361497157565b63118cdaa760e01b5f523360045260245ffd5b600260015414614995576002600155565b633ee5aeb560e01b5f5260045ffd5b9291905f845f52600760205260405f20946006604051966149c48861425a565b805488526001810154602089015260ff600282015463ffffffff811660408b015263ffffffff8160201c1660608b015263ffffffff8160401c1660808b015263ffffffff8160601c1660a08b015261ffff8160801c1660c08b015260901c16151560e08901526003810154610100890152604051614a49816119bf81600486016141d9565b61012089015260058101546001600160a01b031661014089015201546101608701525f5160206152fd5f395f51905f528103614b2a57505090614a8b9161507f565b80515115614af45780516001600160a01b0390614aa790614366565b5416614ac15760a00151915b8215614abc5750565b519150565b6040516305519d6f60e51b815260206004820152600a6024820152692730b6b2903a30b5b2b760b11b6044820152606490fd5b6040516305519d6f60e51b815260206004820152600d60248201526c13985b59481c995c5d5a5c9959609a1b6044820152606490fd5b5f5160206152dd5f395f51905f5203614bd1575090614b4891614ef4565b5f5160206152fd5f395f51905f525f90815260086020908152828101516001600160a01b031682525f51602061529d5f395f51905f529052604090205460ff1615614b97576080015191614ab3565b6040516305519d6f60e51b8152602060048201526011602482015270496e76616c696420636f6d6d756e69747960781b6044820152606490fd5b939160208114614be3575b5050614ab3565b8192945090602091810103126117d65735915f80614bdc565b6001600160a01b0390911681526040602082018190525f9082015260600190565b9092905f5160206152dd5f395f51905f5214614c595750506144e2614c4b9160405192839160208301614bfc565b03601f1981018352826142c0565b614c4b92506144e2916001600160a01b0391602091614c789190614ef4565b01511660405192839160208301614bfc565b600454919392915f91906001600160a01b031680614d95575b505f5160206152fd5f395f51905f528103614d32575050602091614cc69161507f565b614cd08151614366565b80546001600160a01b0319166001600160a01b0385161790550151805180614cf8575b505050565b60209181839260405194859301835e600f9082019081520301902080546001600160a01b0319166001600160a01b03909216919091179055565b9091905f5160206152dd5f395f51905f5214614d4f575b50505050565b6040926001600160a01b0391614d659190614ef4565b5116815260106020522080546001600160a01b0319166001600160a01b039092169190911790555f808080614d49565b803b156117d6576040516351cb857360e11b81526001600160a01b038716600482015260016024820152905f908290604490829084905af18015613e6b5715614ca357614de59192505f906142c0565b5f905f614ca3565b805f52600b60205260405f2060018060a01b0383165f5260205260405f20548015614cf357815f52600a60205260405f20905f1981018181116144a75782545f1981019081116144a757808203614ea1575b50505080548015614e8d575f190190614e588282614116565b81549060018060a01b039060031b1b19169055555f52600b60205260405f209060018060a01b03165f526020525f6040812055565b634e487b7160e01b5f52603160045260245ffd5b6143d091614eb2614ecd9286614116565b905460039190911b1c6001600160a01b031692839186614116565b835f52600b60205260405f209060018060a01b03165f5260205260405f20555f8080614e3f565b90604051614f01816142a5565b5f81525f6020820152606060408201526060808201525f60808201525060208110158061506c575b15614fd5578101906020818303126117d6578035906001600160401b0382116117d657019060a0828203126117d65760405191614f65836142a5565b614f6e81614093565b8352614f7c60208201614093565b602084015260408101356001600160401b0381116117d65782614fa0918301614322565b604084015260608101356001600160401b0381116117d657608092614fc6918301614322565b60608401520135608082015290565b810160a0828203126117d657614fea82614093565b91614ff760208201614093565b60408201356001600160401b0381116117d65783615016918401614322565b60608301356001600160401b0381116117d657608094615037918501614322565b9160405195615045876142a5565b6001600160a01b039081168752166020860152604085015260608401520135608082015290565b50806020116117d6576020823514614f29565b9060405161508c8161428a565b606081526060602082015260606040820152606080820152606060808201525f60a082015250602081101580615289575b156151b3578101906020818303126117d6578035906001600160401b0382116117d657019060c0828203126117d657604051916150f98361428a565b80356001600160401b0381116117d65782615115918301614322565b835260208101356001600160401b0381116117d65782615136918301614322565b602084015260408101356001600160401b0381116117d6578261515a918301614322565b604084015260608101356001600160401b0381116117d6578261517e918301614322565b606084015260808101356001600160401b0381116117d65760a0926151a4918301614322565b6080840152013560a082015290565b810160c0828203126117d65781356001600160401b0381116117d657816151db918401614322565b9160208101356001600160401b0381116117d657826151fb918301614322565b60408201356001600160401b0381116117d6578361521a918401614322565b60608301356001600160401b0381116117d65784615239918501614322565b9060808401356001600160401b0381116117d65760a09561525b918601614322565b92604051966152698861428a565b87526020870152604086015260608501526080840152013560a082015290565b50806020116117d65760208235146150bd56fe2e2141118778e59f80a0cf148a1d7116c470229e7ee2d444743e9072b52a0c8d287e005099116032e1bba9482a5b0df09cc99f7e82a4482fa2810c52158d473d0c34ecc75d3bf122e0609d2576e167f53fb42429262ce8c9b33cab91ff670e3ae94d78b6d8fb99b2c21131eb4552924a60f564d8515a3cc90ef300fc9735c0748be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e02024516755f401845808190bb830b0e4523d0df0845503cab52130a794699a0ff86d13979a91272f2c54c4147e588ecbeaad32dd1e0a5332a77356847049a70e2c48d754bbf59f20e71c13710fac35aa1ea020da58dcbb366de0ef7f75c9377dbb42fde0252fd03324102c3666f457311508c4dd05f96e66e0fd26f0c28e8542a2646970667358221220a17d22bd056e9c4d76cbb1f0edc6dfb7b0e68fd39677922926bce6741392492164736f6c634300081c00336fb2b25080d21c908f32ff8ff99eb1d552c210854f7de48a40406764c09c68f80c34ecc75d3bf122e0609d2576e167f53fb42429262ce8c9b33cab91ff670e3ae94d78b6d8fb99b2c21131eb4552924a60f564d8515a3cc90ef300fc9735c0742024516755f401845808190bb830b0e4523d0df0845503cab52130a794699a0ff86d13979a91272f2c54c4147e588ecbeaad32dd1e0a5332a77356847049a70e3b5016dc6721b132ddcb7027030b137a739df81e419695dae0899a866c1c514d3aa2e9509f29532b71f822e18bcde843a8070a508d564188ec8a6adf59eff28a"
1942
+ }