@wireio/stake 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/stake.browser.js +5991 -4340
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +74 -60
  4. package/lib/stake.js +9782 -8054
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +5991 -4340
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  10. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.json +807 -0
  11. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +1 -1
  12. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +184 -346
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +1 -1
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +1 -1
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +1 -1
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +1 -1
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.json +36 -0
  22. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  23. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  24. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +1 -1
  25. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +226 -0
  26. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +1 -1
  27. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +59 -0
  28. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +1 -1
  29. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +14 -12
  30. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +1 -1
  31. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  32. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  33. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  34. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  35. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20Pausable.sol/RewardsERC20Pausable.json → RewardsERC20.sol/RewardsERC20Upgradeable.json} +140 -78
  36. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  37. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20.sol/RewardsERC20.json → RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json} +218 -30
  38. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +1 -1
  39. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +2 -2
  40. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +1 -1
  41. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +2 -2
  42. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +4 -0
  43. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +10 -0
  44. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +4 -0
  45. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +10 -0
  46. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +1 -1
  47. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +121 -55
  48. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +1 -1
  49. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +836 -273
  50. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +1 -1
  51. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +150 -168
  52. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +1 -1
  53. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +301 -186
  54. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +1 -1
  55. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +814 -206
  56. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +1 -1
  57. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +244 -198
  58. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +1 -1
  59. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  60. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +1 -1
  61. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +165 -152
  62. package/src/assets/ethereum/ABI/outpost/Aggregator.sol/Aggregator.json +82 -0
  63. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +1 -1
  64. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +167 -282
  65. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +1 -1
  66. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +1 -1
  67. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +2 -54
  68. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +1 -1
  69. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.json +26 -8
  70. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +1 -1
  71. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.json +2 -2
  72. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  73. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +1650 -0
  74. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +1 -1
  75. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.json +2 -22
  76. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  77. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  78. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +1 -1
  79. package/src/networks/ethereum/clients/deposit.client.ts +86 -8
  80. package/src/networks/ethereum/clients/liq.client.ts +47 -0
  81. package/src/networks/ethereum/clients/pretoken.client.ts +127 -0
  82. package/src/networks/ethereum/clients/stake.client.ts +87 -24
  83. package/src/networks/ethereum/contract.ts +34 -48
  84. package/src/networks/ethereum/ethereum.ts +219 -96
  85. package/src/networks/ethereum/types.ts +9 -6
  86. package/src/networks/ethereum/utils.ts +308 -0
  87. package/src/networks/solana/clients/token.client.ts +0 -1
  88. package/src/networks/solana/solana.ts +44 -146
  89. package/src/networks/solana/types.ts +6 -2
  90. package/src/networks/solana/utils.ts +4 -6
  91. package/src/staker/types.ts +62 -0
  92. package/src/types.ts +18 -33
  93. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +0 -4
  94. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +0 -4
  95. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +0 -4
  96. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +0 -10
  97. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +0 -4
  98. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +0 -10
  99. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.dbg.json +0 -4
  100. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.json +0 -1650
@@ -7,47 +7,65 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "_liqEth",
10
+ "name": "authority",
11
11
  "type": "address"
12
- },
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
13
19
  {
14
20
  "internalType": "address",
15
- "name": "_verifier",
21
+ "name": "caller",
16
22
  "type": "address"
17
23
  },
18
24
  {
19
- "internalType": "address",
20
- "name": "_stakingmodule",
21
- "type": "address"
22
- },
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
23
35
  {
24
36
  "internalType": "address",
25
- "name": "admin",
37
+ "name": "caller",
26
38
  "type": "address"
27
39
  }
28
40
  ],
29
- "stateMutability": "nonpayable",
30
- "type": "constructor"
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
31
43
  },
32
44
  {
33
- "inputs": [],
34
- "name": "AccessControlBadConfirmation",
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "target",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "AddressEmptyCode",
35
53
  "type": "error"
36
54
  },
37
55
  {
38
56
  "inputs": [
39
57
  {
40
58
  "internalType": "address",
41
- "name": "account",
59
+ "name": "implementation",
42
60
  "type": "address"
43
- },
44
- {
45
- "internalType": "bytes32",
46
- "name": "neededRole",
47
- "type": "bytes32"
48
61
  }
49
62
  ],
50
- "name": "AccessControlUnauthorizedAccount",
63
+ "name": "ERC1967InvalidImplementation",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ERC1967NonPayable",
51
69
  "type": "error"
52
70
  },
53
71
  {
@@ -81,11 +99,113 @@
81
99
  "name": "InsufficientBalance",
82
100
  "type": "error"
83
101
  },
102
+ {
103
+ "inputs": [],
104
+ "name": "InvalidInitialization",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "NotInitializing",
110
+ "type": "error"
111
+ },
84
112
  {
85
113
  "inputs": [],
86
114
  "name": "ReentrancyGuardReentrantCall",
87
115
  "type": "error"
88
116
  },
117
+ {
118
+ "inputs": [],
119
+ "name": "UUPSUnauthorizedCallContext",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "bytes32",
126
+ "name": "slot",
127
+ "type": "bytes32"
128
+ }
129
+ ],
130
+ "name": "UUPSUnsupportedProxiableUUID",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "anonymous": false,
135
+ "inputs": [
136
+ {
137
+ "indexed": false,
138
+ "internalType": "address",
139
+ "name": "authority",
140
+ "type": "address"
141
+ }
142
+ ],
143
+ "name": "AuthorityUpdated",
144
+ "type": "event"
145
+ },
146
+ {
147
+ "anonymous": false,
148
+ "inputs": [
149
+ {
150
+ "indexed": false,
151
+ "internalType": "address",
152
+ "name": "user",
153
+ "type": "address"
154
+ },
155
+ {
156
+ "indexed": false,
157
+ "internalType": "uint256",
158
+ "name": "amount",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "name": "BondLocked",
163
+ "type": "event"
164
+ },
165
+ {
166
+ "anonymous": false,
167
+ "inputs": [
168
+ {
169
+ "indexed": false,
170
+ "internalType": "address",
171
+ "name": "loser",
172
+ "type": "address"
173
+ },
174
+ {
175
+ "indexed": false,
176
+ "internalType": "address",
177
+ "name": "winner",
178
+ "type": "address"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "uint256",
183
+ "name": "amount",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "BondUnlocked",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": false,
195
+ "internalType": "address",
196
+ "name": "user",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "indexed": false,
201
+ "internalType": "uint256",
202
+ "name": "amount",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "name": "BondWithdrawn",
207
+ "type": "event"
208
+ },
89
209
  {
90
210
  "anonymous": false,
91
211
  "inputs": [
@@ -140,63 +260,83 @@
140
260
  "anonymous": false,
141
261
  "inputs": [
142
262
  {
143
- "indexed": false,
263
+ "indexed": true,
264
+ "internalType": "uint64",
265
+ "name": "ts",
266
+ "type": "uint64"
267
+ },
268
+ {
269
+ "indexed": true,
144
270
  "internalType": "address",
145
- "name": "account",
271
+ "name": "winner",
146
272
  "type": "address"
273
+ },
274
+ {
275
+ "indexed": false,
276
+ "internalType": "uint256",
277
+ "name": "winnerReward",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "int256",
283
+ "name": "yieldDelta",
284
+ "type": "int256"
147
285
  }
148
286
  ],
149
- "name": "Paused",
287
+ "name": "Finalized",
150
288
  "type": "event"
151
289
  },
152
290
  {
153
291
  "anonymous": false,
154
292
  "inputs": [
155
293
  {
156
- "indexed": true,
157
- "internalType": "bytes32",
158
- "name": "role",
159
- "type": "bytes32"
160
- },
161
- {
162
- "indexed": true,
163
- "internalType": "bytes32",
164
- "name": "previousAdminRole",
165
- "type": "bytes32"
166
- },
167
- {
168
- "indexed": true,
169
- "internalType": "bytes32",
170
- "name": "newAdminRole",
171
- "type": "bytes32"
294
+ "indexed": false,
295
+ "internalType": "uint64",
296
+ "name": "version",
297
+ "type": "uint64"
172
298
  }
173
299
  ],
174
- "name": "RoleAdminChanged",
300
+ "name": "Initialized",
175
301
  "type": "event"
176
302
  },
177
303
  {
178
304
  "anonymous": false,
179
305
  "inputs": [
180
306
  {
181
- "indexed": true,
182
- "internalType": "bytes32",
183
- "name": "role",
184
- "type": "bytes32"
185
- },
307
+ "indexed": false,
308
+ "internalType": "address",
309
+ "name": "account",
310
+ "type": "address"
311
+ }
312
+ ],
313
+ "name": "Paused",
314
+ "type": "event"
315
+ },
316
+ {
317
+ "anonymous": false,
318
+ "inputs": [
186
319
  {
187
- "indexed": true,
320
+ "indexed": false,
188
321
  "internalType": "address",
189
322
  "name": "account",
190
323
  "type": "address"
191
- },
324
+ }
325
+ ],
326
+ "name": "Unpaused",
327
+ "type": "event"
328
+ },
329
+ {
330
+ "anonymous": false,
331
+ "inputs": [
192
332
  {
193
333
  "indexed": true,
194
334
  "internalType": "address",
195
- "name": "sender",
335
+ "name": "implementation",
196
336
  "type": "address"
197
337
  }
198
338
  ],
199
- "name": "RoleGranted",
339
+ "name": "Upgraded",
200
340
  "type": "event"
201
341
  },
202
342
  {
@@ -204,37 +344,56 @@
204
344
  "inputs": [
205
345
  {
206
346
  "indexed": true,
207
- "internalType": "bytes32",
208
- "name": "role",
209
- "type": "bytes32"
347
+ "internalType": "uint64",
348
+ "name": "firstSubmissionTs",
349
+ "type": "uint64"
210
350
  },
351
+ {
352
+ "indexed": false,
353
+ "internalType": "uint64",
354
+ "name": "newRound",
355
+ "type": "uint64"
356
+ }
357
+ ],
358
+ "name": "WindowReopened",
359
+ "type": "event"
360
+ },
361
+ {
362
+ "anonymous": false,
363
+ "inputs": [
211
364
  {
212
365
  "indexed": true,
213
- "internalType": "address",
214
- "name": "account",
215
- "type": "address"
366
+ "internalType": "uint64",
367
+ "name": "ts",
368
+ "type": "uint64"
216
369
  },
217
370
  {
218
371
  "indexed": true,
219
372
  "internalType": "address",
220
- "name": "sender",
373
+ "name": "submitter",
221
374
  "type": "address"
222
375
  }
223
376
  ],
224
- "name": "RoleRevoked",
377
+ "name": "YieldDisproved",
225
378
  "type": "event"
226
379
  },
227
380
  {
228
381
  "anonymous": false,
229
382
  "inputs": [
230
383
  {
231
- "indexed": false,
384
+ "indexed": true,
385
+ "internalType": "uint64",
386
+ "name": "ts",
387
+ "type": "uint64"
388
+ },
389
+ {
390
+ "indexed": true,
232
391
  "internalType": "address",
233
- "name": "account",
392
+ "name": "proposer",
234
393
  "type": "address"
235
394
  }
236
395
  ],
237
- "name": "Unpaused",
396
+ "name": "YieldRevealed",
238
397
  "type": "event"
239
398
  },
240
399
  {
@@ -243,7 +402,7 @@
243
402
  {
244
403
  "indexed": true,
245
404
  "internalType": "uint64",
246
- "name": "dayId",
405
+ "name": "ts",
247
406
  "type": "uint64"
248
407
  },
249
408
  {
@@ -258,7 +417,7 @@
258
417
  },
259
418
  {
260
419
  "inputs": [],
261
- "name": "DAY_SEC",
420
+ "name": "CHALLENGE_WINDOW",
262
421
  "outputs": [
263
422
  {
264
423
  "internalType": "uint64",
@@ -271,12 +430,12 @@
271
430
  },
272
431
  {
273
432
  "inputs": [],
274
- "name": "DEFAULT_ADMIN_ROLE",
433
+ "name": "DAY_SEC",
275
434
  "outputs": [
276
435
  {
277
- "internalType": "bytes32",
436
+ "internalType": "uint64",
278
437
  "name": "",
279
- "type": "bytes32"
438
+ "type": "uint64"
280
439
  }
281
440
  ],
282
441
  "stateMutability": "view",
@@ -284,12 +443,12 @@
284
443
  },
285
444
  {
286
445
  "inputs": [],
287
- "name": "MIN_BOND",
446
+ "name": "GENESIS_TIME",
288
447
  "outputs": [
289
448
  {
290
- "internalType": "uint128",
449
+ "internalType": "uint64",
291
450
  "name": "",
292
- "type": "uint128"
451
+ "type": "uint64"
293
452
  }
294
453
  ],
295
454
  "stateMutability": "view",
@@ -310,7 +469,7 @@
310
469
  },
311
470
  {
312
471
  "inputs": [],
313
- "name": "WINDOW",
472
+ "name": "RESOLUTION_WINDOW",
314
473
  "outputs": [
315
474
  {
316
475
  "internalType": "uint64",
@@ -322,97 +481,209 @@
322
481
  "type": "function"
323
482
  },
324
483
  {
325
- "inputs": [
484
+ "inputs": [],
485
+ "name": "SECONDS_PER_SLOT",
486
+ "outputs": [
326
487
  {
327
488
  "internalType": "uint64",
328
489
  "name": "",
329
490
  "type": "uint64"
330
491
  }
331
492
  ],
332
- "name": "chall",
493
+ "stateMutability": "view",
494
+ "type": "function"
495
+ },
496
+ {
497
+ "inputs": [],
498
+ "name": "SLOTS_PER_EPOCH",
333
499
  "outputs": [
334
500
  {
335
- "internalType": "bytes32",
336
- "name": "altRoot",
337
- "type": "bytes32"
338
- },
339
- {
340
- "internalType": "uint256",
341
- "name": "altYieldRate",
342
- "type": "uint256"
343
- },
344
- {
345
- "internalType": "address",
346
- "name": "challenger",
347
- "type": "address"
348
- },
349
- {
350
- "internalType": "uint256",
351
- "name": "bond",
352
- "type": "uint256"
501
+ "internalType": "uint64",
502
+ "name": "",
503
+ "type": "uint64"
353
504
  }
354
505
  ],
355
506
  "stateMutability": "view",
356
507
  "type": "function"
357
508
  },
358
509
  {
359
- "inputs": [
360
- {
510
+ "inputs": [],
511
+ "name": "SUBMITTER_BOND",
512
+ "outputs": [
513
+ {
514
+ "internalType": "uint256",
515
+ "name": "",
516
+ "type": "uint256"
517
+ }
518
+ ],
519
+ "stateMutability": "view",
520
+ "type": "function"
521
+ },
522
+ {
523
+ "inputs": [],
524
+ "name": "THRESHOLD_GWEI",
525
+ "outputs": [
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "stateMutability": "view",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [],
537
+ "name": "UPGRADE_INTERFACE_VERSION",
538
+ "outputs": [
539
+ {
540
+ "internalType": "string",
541
+ "name": "",
542
+ "type": "string"
543
+ }
544
+ ],
545
+ "stateMutability": "view",
546
+ "type": "function"
547
+ },
548
+ {
549
+ "inputs": [],
550
+ "name": "WINDOW",
551
+ "outputs": [
552
+ {
361
553
  "internalType": "uint64",
362
- "name": "dayId",
554
+ "name": "",
363
555
  "type": "uint64"
556
+ }
557
+ ],
558
+ "stateMutability": "view",
559
+ "type": "function"
560
+ },
561
+ {
562
+ "inputs": [],
563
+ "name": "authority",
564
+ "outputs": [
565
+ {
566
+ "internalType": "address",
567
+ "name": "",
568
+ "type": "address"
569
+ }
570
+ ],
571
+ "stateMutability": "view",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [
576
+ {
577
+ "internalType": "uint64",
578
+ "name": "",
579
+ "type": "uint64"
580
+ }
581
+ ],
582
+ "name": "beaconRootAtTs",
583
+ "outputs": [
584
+ {
585
+ "internalType": "bytes32",
586
+ "name": "",
587
+ "type": "bytes32"
588
+ }
589
+ ],
590
+ "stateMutability": "view",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "address",
597
+ "name": "",
598
+ "type": "address"
599
+ }
600
+ ],
601
+ "name": "blacklisted",
602
+ "outputs": [
603
+ {
604
+ "internalType": "bool",
605
+ "name": "",
606
+ "type": "bool"
607
+ }
608
+ ],
609
+ "stateMutability": "view",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [],
614
+ "name": "bondEth",
615
+ "outputs": [],
616
+ "stateMutability": "payable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "",
624
+ "type": "address"
625
+ }
626
+ ],
627
+ "name": "bonds",
628
+ "outputs": [
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "available",
632
+ "type": "uint256"
364
633
  },
365
634
  {
366
635
  "internalType": "uint256",
367
- "name": "validatorIdx",
636
+ "name": "locked",
368
637
  "type": "uint256"
638
+ }
639
+ ],
640
+ "stateMutability": "view",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [],
645
+ "name": "curMeta",
646
+ "outputs": [
647
+ {
648
+ "internalType": "uint64",
649
+ "name": "firstSubmissionTs",
650
+ "type": "uint64"
369
651
  },
370
652
  {
371
- "components": [
372
- {
373
- "internalType": "uint64",
374
- "name": "ts",
375
- "type": "uint64"
376
- },
377
- {
378
- "internalType": "uint256",
379
- "name": "idx",
380
- "type": "uint256"
381
- },
382
- {
383
- "internalType": "uint64",
384
- "name": "expected",
385
- "type": "uint64"
386
- },
387
- {
388
- "internalType": "bytes32",
389
- "name": "leaf",
390
- "type": "bytes32"
391
- },
392
- {
393
- "internalType": "bytes32[]",
394
- "name": "branchState",
395
- "type": "bytes32[]"
396
- },
397
- {
398
- "internalType": "uint256",
399
- "name": "gindexState",
400
- "type": "uint256"
401
- },
402
- {
403
- "internalType": "bytes32[]",
404
- "name": "branchBlock",
405
- "type": "bytes32[]"
406
- },
407
- {
408
- "internalType": "uint256",
409
- "name": "gindexStateInBlock",
410
- "type": "uint256"
411
- }
412
- ],
413
- "internalType": "struct YieldOracle.BalanceProof",
414
- "name": "prevDay",
415
- "type": "tuple"
653
+ "internalType": "uint64",
654
+ "name": "ts",
655
+ "type": "uint64"
656
+ },
657
+ {
658
+ "internalType": "bytes32",
659
+ "name": "beaconRoot",
660
+ "type": "bytes32"
661
+ },
662
+ {
663
+ "internalType": "bool",
664
+ "name": "finalized",
665
+ "type": "bool"
666
+ },
667
+ {
668
+ "internalType": "uint64",
669
+ "name": "round",
670
+ "type": "uint64"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "internalType": "uint64",
680
+ "name": "ts",
681
+ "type": "uint64"
682
+ },
683
+ {
684
+ "internalType": "address",
685
+ "name": "submitter",
686
+ "type": "address"
416
687
  },
417
688
  {
418
689
  "components": [
@@ -422,14 +693,9 @@
422
693
  "type": "uint64"
423
694
  },
424
695
  {
425
- "internalType": "uint256",
426
- "name": "idx",
427
- "type": "uint256"
428
- },
429
- {
430
- "internalType": "uint64",
431
- "name": "expected",
432
- "type": "uint64"
696
+ "internalType": "bytes32[]",
697
+ "name": "branchStateWitnesses",
698
+ "type": "bytes32[]"
433
699
  },
434
700
  {
435
701
  "internalType": "bytes32",
@@ -438,71 +704,110 @@
438
704
  },
439
705
  {
440
706
  "internalType": "bytes32[]",
441
- "name": "branchState",
707
+ "name": "leafWitnesses",
442
708
  "type": "bytes32[]"
443
709
  },
444
710
  {
445
711
  "internalType": "uint256",
446
- "name": "gindexState",
712
+ "name": "validatorIndex",
447
713
  "type": "uint256"
448
714
  },
449
715
  {
450
- "internalType": "bytes32[]",
451
- "name": "branchBlock",
452
- "type": "bytes32[]"
453
- },
454
- {
455
- "internalType": "uint256",
456
- "name": "gindexStateInBlock",
457
- "type": "uint256"
716
+ "internalType": "uint64",
717
+ "name": "expectedGwei",
718
+ "type": "uint64"
458
719
  }
459
720
  ],
460
721
  "internalType": "struct YieldOracle.BalanceProof",
461
- "name": "currDay",
722
+ "name": "curDay",
462
723
  "type": "tuple"
463
724
  },
464
725
  {
465
- "internalType": "bytes32[]",
466
- "name": "branch",
467
- "type": "bytes32[]"
726
+ "internalType": "uint64",
727
+ "name": "valIndex",
728
+ "type": "uint64"
729
+ }
730
+ ],
731
+ "name": "disproveYield",
732
+ "outputs": [],
733
+ "stateMutability": "nonpayable",
734
+ "type": "function"
735
+ },
736
+ {
737
+ "inputs": [
738
+ {
739
+ "internalType": "uint64",
740
+ "name": "",
741
+ "type": "uint64"
742
+ }
743
+ ],
744
+ "name": "finalized",
745
+ "outputs": [
746
+ {
747
+ "internalType": "uint64",
748
+ "name": "ts",
749
+ "type": "uint64"
468
750
  },
469
751
  {
470
- "internalType": "bytes32",
471
- "name": "altRoot",
472
- "type": "bytes32"
752
+ "internalType": "int256",
753
+ "name": "yieldDelta",
754
+ "type": "int256"
473
755
  },
474
756
  {
475
757
  "internalType": "uint256",
476
- "name": "altRateBps",
758
+ "name": "totalBal",
477
759
  "type": "uint256"
760
+ },
761
+ {
762
+ "internalType": "address",
763
+ "name": "winner",
764
+ "type": "address"
765
+ },
766
+ {
767
+ "internalType": "bytes32",
768
+ "name": "yieldRoot",
769
+ "type": "bytes32"
478
770
  }
479
771
  ],
480
- "name": "challengeYield",
481
- "outputs": [],
482
- "stateMutability": "payable",
483
- "type": "function"
484
- },
485
- {
486
- "inputs": [],
487
- "name": "claimBond",
488
- "outputs": [],
489
- "stateMutability": "nonpayable",
772
+ "stateMutability": "view",
490
773
  "type": "function"
491
774
  },
492
775
  {
493
776
  "inputs": [
494
777
  {
495
778
  "internalType": "address",
496
- "name": "",
779
+ "name": "manager",
497
780
  "type": "address"
781
+ },
782
+ {
783
+ "internalType": "address",
784
+ "name": "_liqEth",
785
+ "type": "address"
786
+ },
787
+ {
788
+ "internalType": "address",
789
+ "name": "_stakingmodule",
790
+ "type": "address"
791
+ },
792
+ {
793
+ "internalType": "uint64",
794
+ "name": "_genesisTime",
795
+ "type": "uint64"
498
796
  }
499
797
  ],
500
- "name": "claimable",
798
+ "name": "initialize",
799
+ "outputs": [],
800
+ "stateMutability": "nonpayable",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [],
805
+ "name": "isConsumingScheduledOp",
501
806
  "outputs": [
502
807
  {
503
- "internalType": "uint256",
808
+ "internalType": "bytes4",
504
809
  "name": "",
505
- "type": "uint256"
810
+ "type": "bytes4"
506
811
  }
507
812
  ],
508
813
  "stateMutability": "view",
@@ -512,76 +817,115 @@
512
817
  "inputs": [
513
818
  {
514
819
  "internalType": "uint64",
515
- "name": "dayId",
820
+ "name": "ts",
516
821
  "type": "uint64"
517
- },
822
+ }
823
+ ],
824
+ "name": "isExecPayloadTimestamp",
825
+ "outputs": [
518
826
  {
519
- "internalType": "uint256",
520
- "name": "sumDeltaGweiWinner",
521
- "type": "uint256"
827
+ "internalType": "bool",
828
+ "name": "",
829
+ "type": "bool"
522
830
  }
523
831
  ],
524
- "name": "finalize",
525
- "outputs": [],
526
- "stateMutability": "nonpayable",
832
+ "stateMutability": "view",
527
833
  "type": "function"
528
834
  },
529
835
  {
530
- "inputs": [
836
+ "inputs": [],
837
+ "name": "liqEth",
838
+ "outputs": [
531
839
  {
532
- "internalType": "bytes32",
533
- "name": "role",
534
- "type": "bytes32"
840
+ "internalType": "contract IRewardsERC20",
841
+ "name": "",
842
+ "type": "address"
535
843
  }
536
844
  ],
537
- "name": "getRoleAdmin",
845
+ "stateMutability": "view",
846
+ "type": "function"
847
+ },
848
+ {
849
+ "inputs": [],
850
+ "name": "pause",
851
+ "outputs": [],
852
+ "stateMutability": "nonpayable",
853
+ "type": "function"
854
+ },
855
+ {
856
+ "inputs": [],
857
+ "name": "paused",
538
858
  "outputs": [
539
859
  {
540
- "internalType": "bytes32",
860
+ "internalType": "bool",
541
861
  "name": "",
542
- "type": "bytes32"
862
+ "type": "bool"
543
863
  }
544
864
  ],
545
865
  "stateMutability": "view",
546
866
  "type": "function"
547
867
  },
548
868
  {
549
- "inputs": [
869
+ "inputs": [],
870
+ "name": "prevFinal",
871
+ "outputs": [
550
872
  {
551
- "internalType": "bytes32",
552
- "name": "role",
553
- "type": "bytes32"
873
+ "internalType": "uint64",
874
+ "name": "ts",
875
+ "type": "uint64"
876
+ },
877
+ {
878
+ "internalType": "int256",
879
+ "name": "yieldDelta",
880
+ "type": "int256"
881
+ },
882
+ {
883
+ "internalType": "uint256",
884
+ "name": "totalBal",
885
+ "type": "uint256"
554
886
  },
555
887
  {
556
888
  "internalType": "address",
557
- "name": "account",
889
+ "name": "winner",
558
890
  "type": "address"
891
+ },
892
+ {
893
+ "internalType": "bytes32",
894
+ "name": "yieldRoot",
895
+ "type": "bytes32"
559
896
  }
560
897
  ],
561
- "name": "grantRole",
562
- "outputs": [],
563
- "stateMutability": "nonpayable",
898
+ "stateMutability": "view",
564
899
  "type": "function"
565
900
  },
566
901
  {
567
- "inputs": [
902
+ "inputs": [],
903
+ "name": "prevMeta",
904
+ "outputs": [
905
+ {
906
+ "internalType": "uint64",
907
+ "name": "firstSubmissionTs",
908
+ "type": "uint64"
909
+ },
910
+ {
911
+ "internalType": "uint64",
912
+ "name": "ts",
913
+ "type": "uint64"
914
+ },
568
915
  {
569
916
  "internalType": "bytes32",
570
- "name": "role",
917
+ "name": "beaconRoot",
571
918
  "type": "bytes32"
572
919
  },
573
- {
574
- "internalType": "address",
575
- "name": "account",
576
- "type": "address"
577
- }
578
- ],
579
- "name": "hasRole",
580
- "outputs": [
581
920
  {
582
921
  "internalType": "bool",
583
- "name": "",
922
+ "name": "finalized",
584
923
  "type": "bool"
924
+ },
925
+ {
926
+ "internalType": "uint64",
927
+ "name": "round",
928
+ "type": "uint64"
585
929
  }
586
930
  ],
587
931
  "stateMutability": "view",
@@ -589,12 +933,12 @@
589
933
  },
590
934
  {
591
935
  "inputs": [],
592
- "name": "liqEth",
936
+ "name": "prevTVL",
593
937
  "outputs": [
594
938
  {
595
- "internalType": "contract IRewardsERC20",
939
+ "internalType": "uint256",
596
940
  "name": "",
597
- "type": "address"
941
+ "type": "uint256"
598
942
  }
599
943
  ],
600
944
  "stateMutability": "view",
@@ -602,49 +946,70 @@
602
946
  },
603
947
  {
604
948
  "inputs": [],
605
- "name": "paused",
949
+ "name": "proxiableUUID",
606
950
  "outputs": [
607
951
  {
608
- "internalType": "bool",
952
+ "internalType": "bytes32",
609
953
  "name": "",
610
- "type": "bool"
954
+ "type": "bytes32"
611
955
  }
612
956
  ],
613
957
  "stateMutability": "view",
614
958
  "type": "function"
615
959
  },
960
+ {
961
+ "inputs": [],
962
+ "name": "resolveChallenge",
963
+ "outputs": [],
964
+ "stateMutability": "nonpayable",
965
+ "type": "function"
966
+ },
616
967
  {
617
968
  "inputs": [
618
969
  {
619
- "internalType": "bytes32",
620
- "name": "role",
621
- "type": "bytes32"
970
+ "internalType": "uint64",
971
+ "name": "",
972
+ "type": "uint64"
622
973
  },
974
+ {
975
+ "internalType": "uint256",
976
+ "name": "",
977
+ "type": "uint256"
978
+ }
979
+ ],
980
+ "name": "roundSubmitters",
981
+ "outputs": [
623
982
  {
624
983
  "internalType": "address",
625
- "name": "callerConfirmation",
984
+ "name": "",
626
985
  "type": "address"
627
986
  }
628
987
  ],
629
- "name": "renounceRole",
988
+ "stateMutability": "view",
989
+ "type": "function"
990
+ },
991
+ {
992
+ "inputs": [
993
+ {
994
+ "internalType": "uint256",
995
+ "name": "tvlGwei",
996
+ "type": "uint256"
997
+ }
998
+ ],
999
+ "name": "seedInitialTVL",
630
1000
  "outputs": [],
631
1001
  "stateMutability": "nonpayable",
632
1002
  "type": "function"
633
1003
  },
634
1004
  {
635
1005
  "inputs": [
636
- {
637
- "internalType": "bytes32",
638
- "name": "role",
639
- "type": "bytes32"
640
- },
641
1006
  {
642
1007
  "internalType": "address",
643
- "name": "account",
1008
+ "name": "newAuthority",
644
1009
  "type": "address"
645
1010
  }
646
1011
  ],
647
- "name": "revokeRole",
1012
+ "name": "setAuthority",
648
1013
  "outputs": [],
649
1014
  "stateMutability": "nonpayable",
650
1015
  "type": "function"
@@ -668,29 +1033,24 @@
668
1033
  "internalType": "uint64",
669
1034
  "name": "",
670
1035
  "type": "uint64"
1036
+ },
1037
+ {
1038
+ "internalType": "address",
1039
+ "name": "",
1040
+ "type": "address"
671
1041
  }
672
1042
  ],
673
- "name": "subm",
1043
+ "name": "submissions",
674
1044
  "outputs": [
675
- {
676
- "internalType": "bytes32",
677
- "name": "beaconRoot",
678
- "type": "bytes32"
679
- },
680
1045
  {
681
1046
  "internalType": "bytes32",
682
1047
  "name": "yieldRoot",
683
1048
  "type": "bytes32"
684
1049
  },
685
1050
  {
686
- "internalType": "uint256",
687
- "name": "yieldRate",
688
- "type": "uint256"
689
- },
690
- {
691
- "internalType": "uint256",
692
- "name": "sumDeltaGwei",
693
- "type": "uint256"
1051
+ "internalType": "int256",
1052
+ "name": "yieldDelta",
1053
+ "type": "int256"
694
1054
  },
695
1055
  {
696
1056
  "internalType": "uint256",
@@ -709,8 +1069,48 @@
709
1069
  },
710
1070
  {
711
1071
  "internalType": "bool",
712
- "name": "challenged",
1072
+ "name": "revealed",
1073
+ "type": "bool"
1074
+ },
1075
+ {
1076
+ "internalType": "bool",
1077
+ "name": "disproved",
713
1078
  "type": "bool"
1079
+ },
1080
+ {
1081
+ "internalType": "uint64",
1082
+ "name": "topupCount",
1083
+ "type": "uint64"
1084
+ },
1085
+ {
1086
+ "internalType": "uint64",
1087
+ "name": "pexitCount",
1088
+ "type": "uint64"
1089
+ },
1090
+ {
1091
+ "internalType": "uint64",
1092
+ "name": "exitCount",
1093
+ "type": "uint64"
1094
+ },
1095
+ {
1096
+ "internalType": "bytes32",
1097
+ "name": "topupRoot",
1098
+ "type": "bytes32"
1099
+ },
1100
+ {
1101
+ "internalType": "bytes32",
1102
+ "name": "pexitRoot",
1103
+ "type": "bytes32"
1104
+ },
1105
+ {
1106
+ "internalType": "bytes32",
1107
+ "name": "exitRoot",
1108
+ "type": "bytes32"
1109
+ },
1110
+ {
1111
+ "internalType": "uint64",
1112
+ "name": "round",
1113
+ "type": "uint64"
714
1114
  }
715
1115
  ],
716
1116
  "stateMutability": "view",
@@ -720,33 +1120,48 @@
720
1120
  "inputs": [
721
1121
  {
722
1122
  "internalType": "uint64",
723
- "name": "dayId",
1123
+ "name": "ts",
724
1124
  "type": "uint64"
725
1125
  },
726
1126
  {
727
- "internalType": "uint64",
728
- "name": "ts",
729
- "type": "uint64"
1127
+ "internalType": "bytes32",
1128
+ "name": "yieldRoot",
1129
+ "type": "bytes32"
1130
+ },
1131
+ {
1132
+ "internalType": "int256",
1133
+ "name": "yieldDelta",
1134
+ "type": "int256"
730
1135
  },
731
1136
  {
732
1137
  "internalType": "bytes32",
733
- "name": "beaconRoot",
1138
+ "name": "topupRoot",
734
1139
  "type": "bytes32"
735
1140
  },
736
1141
  {
737
1142
  "internalType": "bytes32",
738
- "name": "yieldRoot",
1143
+ "name": "pexitRoot",
739
1144
  "type": "bytes32"
740
1145
  },
741
1146
  {
742
- "internalType": "uint256",
743
- "name": "yieldRate",
744
- "type": "uint256"
1147
+ "internalType": "bytes32",
1148
+ "name": "exitRoot",
1149
+ "type": "bytes32"
745
1150
  },
746
1151
  {
747
- "internalType": "uint256",
748
- "name": "rootSumGwei",
749
- "type": "uint256"
1152
+ "internalType": "uint64",
1153
+ "name": "topupsUsed",
1154
+ "type": "uint64"
1155
+ },
1156
+ {
1157
+ "internalType": "uint64",
1158
+ "name": "partialexitsUsed",
1159
+ "type": "uint64"
1160
+ },
1161
+ {
1162
+ "internalType": "uint64",
1163
+ "name": "exitCount",
1164
+ "type": "uint64"
750
1165
  }
751
1166
  ],
752
1167
  "name": "submitDailyYield",
@@ -757,22 +1172,47 @@
757
1172
  {
758
1173
  "inputs": [
759
1174
  {
760
- "internalType": "bytes4",
761
- "name": "interfaceId",
762
- "type": "bytes4"
1175
+ "internalType": "uint64",
1176
+ "name": "",
1177
+ "type": "uint64"
763
1178
  }
764
1179
  ],
765
- "name": "supportsInterface",
1180
+ "name": "tvlAt",
766
1181
  "outputs": [
767
1182
  {
768
- "internalType": "bool",
1183
+ "internalType": "uint256",
769
1184
  "name": "",
770
- "type": "bool"
1185
+ "type": "uint256"
771
1186
  }
772
1187
  ],
773
1188
  "stateMutability": "view",
774
1189
  "type": "function"
775
1190
  },
1191
+ {
1192
+ "inputs": [],
1193
+ "name": "unpause",
1194
+ "outputs": [],
1195
+ "stateMutability": "nonpayable",
1196
+ "type": "function"
1197
+ },
1198
+ {
1199
+ "inputs": [
1200
+ {
1201
+ "internalType": "address",
1202
+ "name": "newImplementation",
1203
+ "type": "address"
1204
+ },
1205
+ {
1206
+ "internalType": "bytes",
1207
+ "name": "data",
1208
+ "type": "bytes"
1209
+ }
1210
+ ],
1211
+ "name": "upgradeToAndCall",
1212
+ "outputs": [],
1213
+ "stateMutability": "payable",
1214
+ "type": "function"
1215
+ },
776
1216
  {
777
1217
  "inputs": [
778
1218
  {
@@ -781,33 +1221,156 @@
781
1221
  "type": "uint64"
782
1222
  }
783
1223
  ],
784
- "name": "tvlAt",
1224
+ "name": "windowMeta",
785
1225
  "outputs": [
1226
+ {
1227
+ "internalType": "uint64",
1228
+ "name": "firstSubmissionTs",
1229
+ "type": "uint64"
1230
+ },
1231
+ {
1232
+ "internalType": "uint64",
1233
+ "name": "ts",
1234
+ "type": "uint64"
1235
+ },
1236
+ {
1237
+ "internalType": "bytes32",
1238
+ "name": "beaconRoot",
1239
+ "type": "bytes32"
1240
+ },
1241
+ {
1242
+ "internalType": "bool",
1243
+ "name": "finalized",
1244
+ "type": "bool"
1245
+ },
1246
+ {
1247
+ "internalType": "uint64",
1248
+ "name": "round",
1249
+ "type": "uint64"
1250
+ }
1251
+ ],
1252
+ "stateMutability": "view",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [
786
1257
  {
787
1258
  "internalType": "uint256",
788
- "name": "",
1259
+ "name": "amt",
789
1260
  "type": "uint256"
790
1261
  }
791
1262
  ],
792
- "stateMutability": "view",
1263
+ "name": "withdrawBondEth",
1264
+ "outputs": [],
1265
+ "stateMutability": "nonpayable",
793
1266
  "type": "function"
794
1267
  },
795
1268
  {
796
- "inputs": [],
797
- "name": "verifier",
1269
+ "inputs": [
1270
+ {
1271
+ "internalType": "uint64",
1272
+ "name": "",
1273
+ "type": "uint64"
1274
+ }
1275
+ ],
1276
+ "name": "yieldRate",
798
1277
  "outputs": [
799
1278
  {
800
- "internalType": "contract IValidatorBalanceVerifier",
1279
+ "internalType": "uint64",
801
1280
  "name": "",
802
- "type": "address"
1281
+ "type": "uint64"
803
1282
  }
804
1283
  ],
805
1284
  "stateMutability": "view",
806
1285
  "type": "function"
1286
+ },
1287
+ {
1288
+ "inputs": [
1289
+ {
1290
+ "internalType": "uint64",
1291
+ "name": "ts",
1292
+ "type": "uint64"
1293
+ },
1294
+ {
1295
+ "internalType": "uint256[]",
1296
+ "name": "prevBalances",
1297
+ "type": "uint256[]"
1298
+ },
1299
+ {
1300
+ "internalType": "uint256[]",
1301
+ "name": "curBalances",
1302
+ "type": "uint256[]"
1303
+ },
1304
+ {
1305
+ "internalType": "uint64[]",
1306
+ "name": "indexes",
1307
+ "type": "uint64[]"
1308
+ },
1309
+ {
1310
+ "internalType": "uint64[]",
1311
+ "name": "exitIndexes",
1312
+ "type": "uint64[]"
1313
+ },
1314
+ {
1315
+ "internalType": "uint256[]",
1316
+ "name": "exitBalances",
1317
+ "type": "uint256[]"
1318
+ },
1319
+ {
1320
+ "internalType": "uint64[]",
1321
+ "name": "topupIndexes",
1322
+ "type": "uint64[]"
1323
+ },
1324
+ {
1325
+ "internalType": "uint256[]",
1326
+ "name": "topupBalances",
1327
+ "type": "uint256[]"
1328
+ },
1329
+ {
1330
+ "internalType": "uint64[]",
1331
+ "name": "pexitIndexes",
1332
+ "type": "uint64[]"
1333
+ },
1334
+ {
1335
+ "internalType": "uint256[]",
1336
+ "name": "pexitBalances",
1337
+ "type": "uint256[]"
1338
+ }
1339
+ ],
1340
+ "name": "yieldReveal",
1341
+ "outputs": [],
1342
+ "stateMutability": "nonpayable",
1343
+ "type": "function"
807
1344
  }
808
1345
  ],
809
- "bytecode": "0x60e03461012857601f61190238819003918201601f19168301916001600160401b0383118484101761012d578084926080946040528339810103126101285761004781610143565b61005360208301610143565b61006b606061006460408601610143565b9401610143565b60018055926001600160a01b039283168015158061011d575b156100e95760805290821660a052811660c05281166100e057506100a733610157565b5060405161171a90816101e882396080518181816102100152611060015260a051818181610fef0152611584015260c05181610ee80152f35b6100a790610157565b60405162461bcd60e51b815260206004820152600c60248201526b41646472657373207a65726f60a01b6044820152606490fd5b508383161515610084565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361012857565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166101e357818052816020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b509056fe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146110ca5750806307e2cea51461108f5780630a6517611461104a578063248a9ca31461101e5780632b7ac3f314610fd95780632f2ff15d14610f9c57806336568abe14610f54578063402914f514610f17578063504b82bf14610ed25780635c975abb14610eaf5780635deccf1314610e1c57806374a0e0a3146108e957806379e7ab971461088657806391d148541461083e578063923989fd1461080657806397d7a7e2146105e4578063a217fddf146105c8578063a53e5412146105ac578063c7cf7484146104dd578063d547741f1461049c578063e0de0fee14610479578063ef83dcaa1461045b5763fd7b64391461011e57600080fd5b346104585760403660031901126104585761013761113a565b6024610141611650565b610149611364565b6001600160401b0380921690818452600390602091808352604086209160058301549560018060a01b039687811690610183821515611150565b82610192818360a01c166111a0565b1642106104285760e01c60ff166103f657936004810154946002858301549201545b60001989018481116103e3578a9291858592168d5260058a5260408d2054908115801561035d575b5050906101e891611220565b898c526005895260408c20551697888a526006875260408a2061020c878254611220565b90557f000000000000000000000000000000000000000000000000000000000000000016633b9aca009182810292818404149015171561034a5790818a9493923b15610346578385926040519687938492631b870ba760e01b845260048401525af1801561033b576102f2575b5050509060007f2ae2c2d0079ed90623db71765729413d38380f591ed0ade7727991047e42556e9392858852808452876005604082208481558460018201558460028201558484820155846004820155015560048452604088208281558260018201558860028201550155604051908152a36001805580f35b829893981161032957506040529460007f2ae2c2d0079ed90623db71765729413d38380f591ed0ade7727991047e42556e38610279565b634e487b7160e01b8352604160045282fd5b6040513d8b823e3d90fd5b8480fd5b634e487b7160e01b8a526011600452838afd5b919394509150612710908186029186830414861517156103d0576103bd578290040361038e5790828a9238806101dc565b60405162461bcd60e51b815260048101899052600881870152671c985d194818985960c21b6044820152606490fd5b634e487b7160e01b8d526012600452868dfd5b634e487b7160e01b8e526011600452878efd5b634e487b7160e01b8c526011600452858cfd5b50858852600485526040882061041b6004896002840154169601548583015490611220565b94600184359201546101b4565b60405162461bcd60e51b81526004810188905260098186015268746f6f206561726c7960b81b6044820152606490fd5b80fd5b50346104585780600319360112610458576020604051620151808152f35b5034610458578060031936011261045857602060405167016345785d8a00008152f35b5034610458576040366003190112610458576104d96004356104bc61111f565b90808452836020526104d4600160408620015461122d565b6112ef565b5080f35b50346104585780600319360112610458576104f6611650565b33815260066020526040812054801561057d57338252600660205281604081205580471061055d578180808093335af161052e611382565b901561053c57506001805580f35b80511561054b57602081519101fd5b60405163d6bda27560e01b8152600490fd5b60405163cf47918160e01b81524760048201526024810191909152604490fd5b60405162461bcd60e51b81526020600482015260076024820152666e6f7468696e6760c81b6044820152606490fd5b5034610458578060031936011261045857602060405160018152f35b5034610458578060031936011261045857602090604051908152f35b5060c0366003190112610458576105f961113a565b6001600160401b03602480358281169182820361080257836044359516948587526020946003865260018060a01b039384600560408b200154166107d557816201518087041688036107ab5761064e906113c1565b801561077d578203610749576040519261010084019182118483101761073757509160059188949360405281528581016064358152604082016084358152606083019060a43582526080840192348452600360a086019a338c5260c087019a8b528c60e088019a808c52525260408c2094518555516001850155516002840155516003830155516004820155019351168354926001600160401b0360a01b905160a01b169160ff60e01b9051151560e01b169262ffffff60e81b16171717905533907f4b44fcfbb0929b2e9cefb0892dcebfe6284fdba2a58987242510271ee868b6838380a380f35b634e487b7160e01b8952604160045288fd5b60405162461bcd60e51b815260048101879052600d818501526c0a4dedee840dad2e6dac2e8c6d609b1b6044820152606490fd5b60405162461bcd60e51b81526004810188905260078186015266139bc81c9bdbdd60ca1b6044820152606490fd5b60405162461bcd60e51b8152600481810189905281860152634461792160e01b6044820152606490fd5b60405162461bcd60e51b8152600481018890526006818601526565786973747360d01b6044820152606490fd5b8580fd5b50346104585760203660031901126104585760406020916001600160401b0361082d61113a565b168152600583522054604051908152f35b50346104585760403660031901126104585760ff604060209261085f61111f565b60043582528185528282206001600160a01b03909116825284522054604051911615158152f35b50346104585760203660031901126104585760406080916001600160401b036108ad61113a565b168152600460205220805490600181015490600360018060a01b0360028301541691015491604051938452602084015260408301526060820152f35b5060031960e036820112610e10576108ff61113a565b906001600160401b0360443511610e185761010090818160443536030112610e14576001600160401b0360643511610e145760643536030112610e10576001600160401b0360843511610e1057366023608435011215610e10576001600160401b036084356004013511610e10573660246084356004013560051b608435010111610e105761098c611364565b6001600160401b038116825260036020526040822060058101546109ba6001600160a01b0382161515611150565b60ff8160e01c16610de157600182015460a43514610db0576109e060643560040161118c565b6001600160401b03808360a01c16911603610d6b57610a0b610a0660643560040161118c565b6113c1565b825403610d3157610a2060443560040161118c565b6001600160401b0380610a3760643560040161118c565b1691161015610d0057620151806001600160401b0380610a678382610a6060443560040161118c565b16046111a0565b9281610a7760643560040161118c565b160416911603610ccc57610a8f6044356004016114ce565b6001600160401b03610aa56064356004016114ce565b16906001600160401b03808216830311610cb857602435602460443501351480610ca7575b15610c735760405190602082019260243584526001600160401b038060c01b9216900360c01b16604082015260288152610b03816111ce565b519020602435855b608435600401358110610c3457505060a43503610c035760ff60e01b1916600160e01b1760059190910155604051608081016001600160401b03811182821017610bef5760405260a435815260036020820160c43581526040830133815260608401913483526001600160401b038616875260046020526040872094518555516001850155600284019060018060a01b039051166bffffffffffffffffffffffff60a01b8254161790555191015533906001600160401b0360243591167f5fbbbc9a2dd074618992982f7773af1571d53778cef63f978db91df7f7c4e7228480a480f35b634e487b7160e01b84526041600452602484fd5b60405162461bcd60e51b81526020600482015260096024820152683130b210383937b7b360b91b6044820152606490fd5b909160019060248360051b6084350101358280861614600014610c655790610c5b91611673565b92811c9101610b0b565b610c6e91611673565b610c5b565b60405162461bcd60e51b815260206004820152600c60248201526b0d2c8f040dad2e6dac2e8c6d60a31b6044820152606490fd5b506024356024606435013514610aca565b634e487b7160e01b86526011600452602486fd5b60405162461bcd60e51b815260206004820152600c60248201526b03bb937b733903230bca4b2160a51b6044820152606490fd5b60405162461bcd60e51b8152602060048201526009602482015268074696d657374616d760bc1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271726f6f7473206e6f74206d61746368696e6760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f74696d657374616d70206973206e6f7420636f727265637400000000000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260096024820152681cd85b59481c9bdbdd60ba1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b6044820152606490fd5b5080fd5b8380fd5b8280fd5b5034610458576020366003190112610458576101009060ff60406001600160401b039283610e4861113a565b16815260036020522080549260018201549160028101546003820154906005600484015493015494604051978852602088015260408701526060860152608085015260018060a01b03821660a08501528160a01c1660c084015260e01c16151560e0820152f35b5034610458578060031936011261045857602060ff600254166040519015158152f35b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610458576020366003190112610458576004356001600160a01b03811690819003610e10578160409160209352600683522054604051908152f35b503461045857604036600319011261045857610f6e61111f565b336001600160a01b03821603610f8a576104d9906004356112ef565b60405163334bd91960e11b8152600490fd5b5034610458576040366003190112610458576104d9600435610fbc61111f565b9080845283602052610fd4600160408620015461122d565b611271565b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461045857602036600319011261045857600160406020926004358152808452200154604051908152f35b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461045857806003193601126104585760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b905034610e10576020366003190112610e105760043563ffffffff60e01b8116809103610e185760209250637965db0b60e01b811490811561110e575b5015158152f35b6301ffc9a760e01b14905038611107565b602435906001600160a01b038216820361113557565b600080fd5b600435906001600160401b038216820361113557565b1561115757565b60405162461bcd60e51b815260206004820152600d60248201526c37379039bab136b4b9b9b4b7b760991b6044820152606490fd5b356001600160401b03811681036111355790565b9060016001600160401b03809316019182116111b857565b634e487b7160e01b600052601160045260246000fd5b606081019081106001600160401b038211176111e957604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176111e957604052565b919082018092116111b857565b80600052600060205260406000203360005260205260ff60406000205416156112535750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146112ea57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146112ea5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff6002541661137057565b60405163d93c066560e01b8152600490fd5b3d156113bc573d906001600160401b0382116111e957604051916113b0601f8201601f1916602001846111ff565b82523d6000602084013e565b606090565b6001600160401b036040519060209281848401911681528383526040830191838310908311176111e95760009283926040525190720f3df6d732807ef1319fb7b8bb8522d0beac025afa611413611382565b908061146b575b1561143057818180518101031261113557015190565b60405162461bcd60e51b81526004810183905260136024820152721152540d0dce0e081c9958590819985a5b1959606a1b6044820152606490fd5b508181511461141a565b903590601e198136030182121561113557018035906001600160401b03821161113557602001918160051b3603831361113557565b81835290916001600160fb1b0383116111355760209260051b809284830137010190565b6114d78161118c565b90604090816114e781830161118c565b936114f56080840184611475565b91909360e061157861150a60c0840184611475565b61155c8851998a98899863d58a9e05881b8a526001600160401b039e8f80921660048c015260208a013560248c01521660448a0152606088013560648a015261010060848a01526101048901916114aa565b60a086013560a48801528681036003190160c4880152916114aa565b91013560e483015203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9283156116455760009182946115fc575b5050156115ca575090565b5162461bcd60e51b815260206004820152600c60248201526b1c1c9bdbd98819985a5b195960a21b6044820152606490fd5b919093508282813d831161163e575b61161581836111ff565b81010312610458578151918215158303610e1057602001519384168403610458575038806115bf565b503d61160b565b82513d6000823e3d90fd5b600260015414611661576002600155565b604051633ee5aeb560e01b8152600490fd5b919091604051926020916020850152604084015260408352611694836111ce565b6040519083519060005b8281106116d3575050602092935090806000928101838152039060025afa156116c75760005190565b6040513d6000823e3d90fd5b85810182015184820152810161169e56fea26469706673582212200743efc0a1c88b1a52ee3cdc9ad73004c7b89d16522eac3ba58b27c0aefe861e64736f6c63430008190033",
810
- "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146110ca5750806307e2cea51461108f5780630a6517611461104a578063248a9ca31461101e5780632b7ac3f314610fd95780632f2ff15d14610f9c57806336568abe14610f54578063402914f514610f17578063504b82bf14610ed25780635c975abb14610eaf5780635deccf1314610e1c57806374a0e0a3146108e957806379e7ab971461088657806391d148541461083e578063923989fd1461080657806397d7a7e2146105e4578063a217fddf146105c8578063a53e5412146105ac578063c7cf7484146104dd578063d547741f1461049c578063e0de0fee14610479578063ef83dcaa1461045b5763fd7b64391461011e57600080fd5b346104585760403660031901126104585761013761113a565b6024610141611650565b610149611364565b6001600160401b0380921690818452600390602091808352604086209160058301549560018060a01b039687811690610183821515611150565b82610192818360a01c166111a0565b1642106104285760e01c60ff166103f657936004810154946002858301549201545b60001989018481116103e3578a9291858592168d5260058a5260408d2054908115801561035d575b5050906101e891611220565b898c526005895260408c20551697888a526006875260408a2061020c878254611220565b90557f000000000000000000000000000000000000000000000000000000000000000016633b9aca009182810292818404149015171561034a5790818a9493923b15610346578385926040519687938492631b870ba760e01b845260048401525af1801561033b576102f2575b5050509060007f2ae2c2d0079ed90623db71765729413d38380f591ed0ade7727991047e42556e9392858852808452876005604082208481558460018201558460028201558484820155846004820155015560048452604088208281558260018201558860028201550155604051908152a36001805580f35b829893981161032957506040529460007f2ae2c2d0079ed90623db71765729413d38380f591ed0ade7727991047e42556e38610279565b634e487b7160e01b8352604160045282fd5b6040513d8b823e3d90fd5b8480fd5b634e487b7160e01b8a526011600452838afd5b919394509150612710908186029186830414861517156103d0576103bd578290040361038e5790828a9238806101dc565b60405162461bcd60e51b815260048101899052600881870152671c985d194818985960c21b6044820152606490fd5b634e487b7160e01b8d526012600452868dfd5b634e487b7160e01b8e526011600452878efd5b634e487b7160e01b8c526011600452858cfd5b50858852600485526040882061041b6004896002840154169601548583015490611220565b94600184359201546101b4565b60405162461bcd60e51b81526004810188905260098186015268746f6f206561726c7960b81b6044820152606490fd5b80fd5b50346104585780600319360112610458576020604051620151808152f35b5034610458578060031936011261045857602060405167016345785d8a00008152f35b5034610458576040366003190112610458576104d96004356104bc61111f565b90808452836020526104d4600160408620015461122d565b6112ef565b5080f35b50346104585780600319360112610458576104f6611650565b33815260066020526040812054801561057d57338252600660205281604081205580471061055d578180808093335af161052e611382565b901561053c57506001805580f35b80511561054b57602081519101fd5b60405163d6bda27560e01b8152600490fd5b60405163cf47918160e01b81524760048201526024810191909152604490fd5b60405162461bcd60e51b81526020600482015260076024820152666e6f7468696e6760c81b6044820152606490fd5b5034610458578060031936011261045857602060405160018152f35b5034610458578060031936011261045857602090604051908152f35b5060c0366003190112610458576105f961113a565b6001600160401b03602480358281169182820361080257836044359516948587526020946003865260018060a01b039384600560408b200154166107d557816201518087041688036107ab5761064e906113c1565b801561077d578203610749576040519261010084019182118483101761073757509160059188949360405281528581016064358152604082016084358152606083019060a43582526080840192348452600360a086019a338c5260c087019a8b528c60e088019a808c52525260408c2094518555516001850155516002840155516003830155516004820155019351168354926001600160401b0360a01b905160a01b169160ff60e01b9051151560e01b169262ffffff60e81b16171717905533907f4b44fcfbb0929b2e9cefb0892dcebfe6284fdba2a58987242510271ee868b6838380a380f35b634e487b7160e01b8952604160045288fd5b60405162461bcd60e51b815260048101879052600d818501526c0a4dedee840dad2e6dac2e8c6d609b1b6044820152606490fd5b60405162461bcd60e51b81526004810188905260078186015266139bc81c9bdbdd60ca1b6044820152606490fd5b60405162461bcd60e51b8152600481810189905281860152634461792160e01b6044820152606490fd5b60405162461bcd60e51b8152600481018890526006818601526565786973747360d01b6044820152606490fd5b8580fd5b50346104585760203660031901126104585760406020916001600160401b0361082d61113a565b168152600583522054604051908152f35b50346104585760403660031901126104585760ff604060209261085f61111f565b60043582528185528282206001600160a01b03909116825284522054604051911615158152f35b50346104585760203660031901126104585760406080916001600160401b036108ad61113a565b168152600460205220805490600181015490600360018060a01b0360028301541691015491604051938452602084015260408301526060820152f35b5060031960e036820112610e10576108ff61113a565b906001600160401b0360443511610e185761010090818160443536030112610e14576001600160401b0360643511610e145760643536030112610e10576001600160401b0360843511610e1057366023608435011215610e10576001600160401b036084356004013511610e10573660246084356004013560051b608435010111610e105761098c611364565b6001600160401b038116825260036020526040822060058101546109ba6001600160a01b0382161515611150565b60ff8160e01c16610de157600182015460a43514610db0576109e060643560040161118c565b6001600160401b03808360a01c16911603610d6b57610a0b610a0660643560040161118c565b6113c1565b825403610d3157610a2060443560040161118c565b6001600160401b0380610a3760643560040161118c565b1691161015610d0057620151806001600160401b0380610a678382610a6060443560040161118c565b16046111a0565b9281610a7760643560040161118c565b160416911603610ccc57610a8f6044356004016114ce565b6001600160401b03610aa56064356004016114ce565b16906001600160401b03808216830311610cb857602435602460443501351480610ca7575b15610c735760405190602082019260243584526001600160401b038060c01b9216900360c01b16604082015260288152610b03816111ce565b519020602435855b608435600401358110610c3457505060a43503610c035760ff60e01b1916600160e01b1760059190910155604051608081016001600160401b03811182821017610bef5760405260a435815260036020820160c43581526040830133815260608401913483526001600160401b038616875260046020526040872094518555516001850155600284019060018060a01b039051166bffffffffffffffffffffffff60a01b8254161790555191015533906001600160401b0360243591167f5fbbbc9a2dd074618992982f7773af1571d53778cef63f978db91df7f7c4e7228480a480f35b634e487b7160e01b84526041600452602484fd5b60405162461bcd60e51b81526020600482015260096024820152683130b210383937b7b360b91b6044820152606490fd5b909160019060248360051b6084350101358280861614600014610c655790610c5b91611673565b92811c9101610b0b565b610c6e91611673565b610c5b565b60405162461bcd60e51b815260206004820152600c60248201526b0d2c8f040dad2e6dac2e8c6d60a31b6044820152606490fd5b506024356024606435013514610aca565b634e487b7160e01b86526011600452602486fd5b60405162461bcd60e51b815260206004820152600c60248201526b03bb937b733903230bca4b2160a51b6044820152606490fd5b60405162461bcd60e51b8152602060048201526009602482015268074696d657374616d760bc1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271726f6f7473206e6f74206d61746368696e6760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f74696d657374616d70206973206e6f7420636f727265637400000000000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260096024820152681cd85b59481c9bdbdd60ba1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b6044820152606490fd5b5080fd5b8380fd5b8280fd5b5034610458576020366003190112610458576101009060ff60406001600160401b039283610e4861113a565b16815260036020522080549260018201549160028101546003820154906005600484015493015494604051978852602088015260408701526060860152608085015260018060a01b03821660a08501528160a01c1660c084015260e01c16151560e0820152f35b5034610458578060031936011261045857602060ff600254166040519015158152f35b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610458576020366003190112610458576004356001600160a01b03811690819003610e10578160409160209352600683522054604051908152f35b503461045857604036600319011261045857610f6e61111f565b336001600160a01b03821603610f8a576104d9906004356112ef565b60405163334bd91960e11b8152600490fd5b5034610458576040366003190112610458576104d9600435610fbc61111f565b9080845283602052610fd4600160408620015461122d565b611271565b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461045857602036600319011261045857600160406020926004358152808452200154604051908152f35b50346104585780600319360112610458576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461045857806003193601126104585760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b905034610e10576020366003190112610e105760043563ffffffff60e01b8116809103610e185760209250637965db0b60e01b811490811561110e575b5015158152f35b6301ffc9a760e01b14905038611107565b602435906001600160a01b038216820361113557565b600080fd5b600435906001600160401b038216820361113557565b1561115757565b60405162461bcd60e51b815260206004820152600d60248201526c37379039bab136b4b9b9b4b7b760991b6044820152606490fd5b356001600160401b03811681036111355790565b9060016001600160401b03809316019182116111b857565b634e487b7160e01b600052601160045260246000fd5b606081019081106001600160401b038211176111e957604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176111e957604052565b919082018092116111b857565b80600052600060205260406000203360005260205260ff60406000205416156112535750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146112ea57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146112ea5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff6002541661137057565b60405163d93c066560e01b8152600490fd5b3d156113bc573d906001600160401b0382116111e957604051916113b0601f8201601f1916602001846111ff565b82523d6000602084013e565b606090565b6001600160401b036040519060209281848401911681528383526040830191838310908311176111e95760009283926040525190720f3df6d732807ef1319fb7b8bb8522d0beac025afa611413611382565b908061146b575b1561143057818180518101031261113557015190565b60405162461bcd60e51b81526004810183905260136024820152721152540d0dce0e081c9958590819985a5b1959606a1b6044820152606490fd5b508181511461141a565b903590601e198136030182121561113557018035906001600160401b03821161113557602001918160051b3603831361113557565b81835290916001600160fb1b0383116111355760209260051b809284830137010190565b6114d78161118c565b90604090816114e781830161118c565b936114f56080840184611475565b91909360e061157861150a60c0840184611475565b61155c8851998a98899863d58a9e05881b8a526001600160401b039e8f80921660048c015260208a013560248c01521660448a0152606088013560648a015261010060848a01526101048901916114aa565b60a086013560a48801528681036003190160c4880152916114aa565b91013560e483015203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9283156116455760009182946115fc575b5050156115ca575090565b5162461bcd60e51b815260206004820152600c60248201526b1c1c9bdbd98819985a5b195960a21b6044820152606490fd5b919093508282813d831161163e575b61161581836111ff565b81010312610458578151918215158303610e1057602001519384168403610458575038806115bf565b503d61160b565b82513d6000823e3d90fd5b600260015414611661576002600155565b604051633ee5aeb560e01b8152600490fd5b919091604051926020916020850152604084015260408352611694836111ce565b6040519083519060005b8281106116d3575050602092935090806000928101838152039060025afa156116c75760005190565b6040513d6000823e3d90fd5b85810182015184820152810161169e56fea26469706673582212200743efc0a1c88b1a52ee3cdc9ad73004c7b89d16522eac3ba58b27c0aefe861e64736f6c63430008190033",
811
- "linkReferences": {},
812
- "deployedLinkReferences": {}
1346
+ "bytecode": "0x60c08060405234605657306080526305f5e10060a052615106908161005c82396080518181816108850152614dde015260a05181818161081f01528181611d0a01528181611d6b01528181611e770152611ef00152f35b600080fdfe6103a080604052600436101561001457600080fd5b60003560e01c90816307e2cea51461343f575080630a651761146134165780630cc5e02a146133be5780630ddb257c14612aa357806317d1eb91146129ab5780632ab64a871461294a5780632f756e12146111dc578063304b9071146111c05780633d7c3e51146110a55780633f4ba83a1461102c5780633fe3f1cf14610e0657806345f8597314610b155780634f1ef2861461093b578063504b82bf1461091257806351f338dd146108ef57806352d1902d146108725780635c975abb146108425780636ae8d84e146108075780636dc240d9146107c0578063734c85441461037757806376a2acd3146107835780637a9e5e4b146107065780638456cb591461069d5780638fb360371461064a578063923989fd14610610578063962fc0f3146105d55780639c302510146105b7578063a48946491461057d578063a53e541214610377578063ad3cb1cc1461053f578063b26c604a146104de578063b31892751461045e578063b9d87f5c14610413578063bf7e214f146103dd578063d45fbccd1461037c578063d62aad2914610377578063da30e2791461035c578063dbac26e91461031d578063e373297c146102b6578063ef83dcaa14610298578063f28824611461026e578063f9cd2056146102415763fe10d774146101f957600080fd5b3461023c57602036600319011261023c576001600160a01b0361021a6134ba565b1660005260136020526040806000206001815491015482519182526020820152f35b600080fd5b3461023c57602036600319011261023c57602061026461025f613478565b613d5e565b6040519015158152f35b3461023c57600036600319011261023c5760206001600160401b0360015460a01c16604051908152f35b3461023c57600036600319011261023c576020604051620151808152f35b600036600319011261023c576102ca613d8f565b34156102ed5733600052601360205260406000206102e9348254613d51565b9055005b60405162461bcd60e51b81526020600482015260086024820152674e6f2076616c756560c01b6044820152606490fd5b3461023c57602036600319011261023c576001600160a01b0361033e6134ba565b166000526017602052602060ff604060002054166040519015158152f35b3461023c57600036600319011261023c576020604051818152f35b6135e0565b3461023c57602036600319011261023c57610397363361417a565b600d546103a657600435600d55005b60405162461bcd60e51b815260206004820152600f60248201526e15159308185b1c9958591e481cd95d608a1b6044820152606490fd5b3461023c57600036600319011261023c57600080516020615071833981519152546040516001600160a01b039091168152602090f35b3461023c57600036600319011261023c576002546001600160401b039061045a600354926004549060405194859460ff838560081c16941692808260401c169116866135ad565b0390f35b3461023c57602036600319011261023c576001600160401b0380610480613478565b1660009081526011602090815260409182902080546001820154600283015460038401546004909401548651979093166001600160401b0316875293860152928401919091526001600160a01b03166060830152608082015260a090f35b3461023c57602036600319011261023c576001600160401b0380610500613478565b16600052601060205260406000209061045a825491600260018501549401549060405194859460ff838560081c16941692808260401c169116866135ad565b3461023c57600036600319011261023c5761045a60405161055f81613556565b60058152640352e302e360dc1b60208201526040519182918261361f565b3461023c57602036600319011261023c576001600160401b0361059e613478565b1660005260146020526020604060002054604051908152f35b3461023c57600036600319011261023c576020600d54604051908152f35b3461023c57602036600319011261023c5760206001600160401b03806105f9613478565b166000526016825260406000205416604051908152f35b3461023c57602036600319011261023c576001600160401b03610631613478565b1660005260126020526020604060002054604051908152f35b3461023c57600036600319011261023c576000805160206150718339815191525460a01c60ff1615610694576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610681565b3461023c57600036600319011261023c576106b8363361417a565b6106c0613d8f565b600080516020615091833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461023c57602036600319011261023c5761071f6134ba565b600080516020615071833981519152546001600160a01b0391908216330361076c57803b156107535761075190614c7f565b005b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461023c57600036600319011261023c5761079c61411a565b6107a4613d8f565b6107ac613a03565b60016000805160206150b183398151915255005b3461023c57600036600319011261023c576005546001600160401b039061045a600654926007549060405194859460ff838560081c16941692808260401c169116866135ad565b3461023c57600036600319011261023c5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461023c57600036600319011261023c57602060ff60008051602061509183398151915254166040519015158152f35b3461023c57600036600319011261023c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036108dd5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b3461023c57600036600319011261023c57602060405167016345785d8a00008152f35b3461023c57600036600319011261023c576001546040516001600160a01b039091168152602090f35b604036600319011261023c5761094f6134ba565b60249081356001600160401b03811161023c573660238201121561023c5780600401359161097c83613592565b6109896040519182613571565b838152602093848201933687838301011161023c5781600092888893018737830101526109b4614dd4565b6109be363361417a565b6109c6614dd4565b6040516352d1902d60e01b81526001600160a01b038316948082600481895afa918291600093610ae5575b5050610a0f57604051634c9c8ce360e01b8152600481018690528690fd5b8490867f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610ad05750843b15610aba575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115610aa0575060006107519381925190845af4610a9a61414a565b91614f4d565b9250505034610aab57005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9080929350813d8311610b0e575b610afd8183613571565b8101031261023c57519087806109f1565b503d610af3565b3461023c5760031960803682011261023c57610b2f613478565b610b376134a4565b6044926001600160401b03843581811161023c5760c08160040193823603011261023c57610b6361348e565b95610b6c613d8f565b600554610b8c84808360401c169816978881149081610dfc575b50613929565b8360075491610b9e60ff84161561364b565b1684610ba9826139eb565b164210610db85790610bd085610bc7610bc282956139eb565b6139eb565b164211156136ff565b60081c166000526020600e815260406000209760018060a01b03809716988960005282526040600020936003850197610c0e895491821615156136c3565b60ff8160e01c1615610d855760e81c60ff16610d4d57608486831691013503610d1b57610c3b818561430f565b80610d045750610c65600a91610c5c8a88610c558b613754565b16146139a2565b600b86016144b5565b9301918254841015610cd2575050610c85610c9a949392610c92926134fb565b90549060031b1c926143cd565b161415613968565b805460ff60e81b1916600160e81b1790557f143fdfb97b8e570366bdbb484f6c968051d1c4fae6611c1e87de152db3dd41f4600080a3005b906b4f7574206f662072616e676560a01b6064926040519262461bcd60e51b84526004840152600c6024840152820152fd5b949350505050610c92610d16936143cd565b610c9a565b506b0d2c8f040dad2e6dac2e8c6d60a31b6064926040519262461bcd60e51b84526004840152600c6024840152820152fd5b60405162461bcd60e51b8152600481018490526011602482015270105b1c9958591e48191a5cdc1c9bdd9959607a1b81860152606490fd5b60405162461bcd60e51b815260048101859052600c60248201526b139bdd081c995d99585b195960a21b81870152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f5374696c6c20696e206368616c6c656e67652077696e646f770000000000000081850152606490fd5b905015158a610b86565b3461023c57608036600319011261023c57610e1f6134ba565b610e276134a4565b6001600160a01b03906044358281169081900361023c57610e4661348e565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009384549360ff8560401c1615946001600160401b03811697881580611025575b6001809a14908161101b575b159081611012575b506110005767ffffffffffffffff19821689178855610f0a9187610fe1575b50610ec4614d93565b610ecc614d93565b610ed4614d93565b886000805160206150b183398151915255610eed614d93565b610ef5614d93565b610efd614d93565b610f05614d93565b614c7f565b610f12614d93565b610f1a614d93565b1680151580610fd8575b15610fa457600080546001600160a01b03191691909117905584546001600160e01b0319161760a09190911b67ffffffffffffffff60a01b16178355610f6657005b805468ff0000000000000000191690556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b60405162461bcd60e51b815260206004820152600c60248201526b41646472657373207a65726f60a01b6044820152606490fd5b50811515610f24565b68ffffffffffffffffff19166801000000000000000117885589610ebb565b60405163f92ee8a960e01b8152600490fd5b9050158a610e9c565b303b159150610e94565b5086610e88565b3461023c57600036600319011261023c57611047363361417a565b600080516020615091833981519152805460ff8116156110935760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461023c57602036600319011261023c576004356110c1613d8f565b6110c961411a565b3360005260136020526040600020811515806111b5575b15611179576110f082825461391c565b905580471061115957600080808084335af161110a61414a565b9015611154577f0d41118e36df44efb77a471fc49fb9c0be0406d802ef95520e9fbf606e65b4556040838151903382526020820152a160016000805160206150b183398151915255005b614d72565b60405163cf47918160e01b81524760048201526024810191909152604490fd5b60405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606490fd5b5081815410156110e0565b3461023c57600036600319011261023c576020604051600c8152f35b3461023c5761014036600319011261023c576111f6613478565b610380526024356001600160401b03811161023c57611219903690600401613513565b61028052610260526044356001600160401b03811161023c57611240903690600401613513565b61024052610220526064356001600160401b03811161023c57611267903690600401613513565b6102c0526102a0526084356001600160401b03811161023c5761128e903690600401613513565b6102e052610300526001600160401b0360a4351161023c576112b53660a435600401613513565b61036052610340526001600160401b0360c4351161023c576112dc3660c435600401613513565b6101e052610200526001600160401b0360e4351161023c576113033660e435600401613513565b6101c0526101a0526001600160401b03610104351161023c5761132c3661010435600401613513565b61016052610320526001600160401b03610124351161023c576113553661012435600401613513565b6101805261014052611365613d8f565b6005546001600160401b0361038051166001600160401b038260401c161480612934575b611392906136c3565b6007546113a260ff82161561364b565b6001600160401b036113b58184166139eb565b1642106128ef576113d66001600160401b03610bc7610bc2828096166139eb565b60081c16600052600e60205260406000203360005260205260406000206101205260036101205101546101005261141960018060a01b03610100511615156136c3565b60ff6101005160e01c166128b7576001600160401b0360025460401c168061285a575b6101c0516101e0510361281d57600461012051015460e0526001600160401b0360e051166001600160401b036101e05116036127e0576101e051612781575b610180516101605103612744576001600160401b0360e05160401c166001600160401b0361016051160361270757610160516126a8575b610360516102e0510361266c576001600160401b0360e05160801c166001600160401b036102e0511603612630576102e0516125d2575b6102e05161241c575b6115006102c0511515613768565b6115116102c05161024051146137a4565b6123b7575b61152e61024051610220516102c0516102a051613e50565b61012051540361237957600060c05261154b6102c0511515613768565b61155c6102c05161024051146137a4565b6102c0516102805111612343576102e0516103605103612307576101e0516101c051036122ca57610160516101805103612285576115cb60405161159f81613556565b60128152711a5b99195e195cc81b9bdd081cdbdc9d195960721b60208201526102c0516102a051614cd8565b6116116040516115da81613556565b601781527f6578697420696e6465786573206e6f7420736f7274656400000000000000000060208201526102e05161030051614cd8565b61165760405161162081613556565b601881527f746f70757020696e6465786573206e6f7420736f72746564000000000000000060208201526101e05161020051614cd8565b61169d60405161166681613556565b601f81527f7061727469616c206578697420696e6465786573206e6f7420736f727465640060208201526101605161032051614cd8565b6000806000608052600060c052600060a0525b6102c05160a05110611c88576102e05103611c4f576101e05103611c15576101605160805103611bdb57600154604080516378f82e4960e11b815260e0516001600160401b03808216600484015290831c16602482015291829060449082906001600160a01b03165afa908115611bcf57600090600092611b9d575b506001600160401b036117456101c0516101a051613dba565b166001600160401b03821603611b64576001600160401b0361176d6101805161014051613dba565b166001600160401b03831603611b1f576117986001600160401b038061179d9416921660c0516137e6565b6137ff565b600161012051015403611ae457600160e01b60ff60e01b1961010051161760036101205101556001600160401b03610240511161198b576117e761024051600a6101205101613858565b61022051600a610120510160005260206000209060005b610240518110611ad0576001600160401b03610280511161198b5761182c6102805160096101205101613858565b610260516009610120510160005260206000209060005b610280518110611abc576001600160401b036102c0511161198b576118716102c051600b61012051016138b6565b6102a051600b6101205101600052602060002060005b6102c05160021c8110611a8057506003196102c05116806102c05103611a3b575b505050600c61012051016001600160401b036102e0511161198b576118d06102e051826138b6565b6103005190600052602060002060005b6102e05160021c81106119ff57506102e05160031981169003806119a1575b505050600d61012051016001600160401b03610360511161198b576119276103605182613858565b610340519060005260206000209060005b61036051811061197757336001600160401b0361038051167fd3080ea4da67f41178d1bd1c53f65bc84bb23fe88d86a42516cc7b0da4fb2524600080a3005b600190602083359301928185015501611938565b634e487b7160e01b600052604160045260246000fd5b9160009260005b8181106119c3575050506102e05160021c01558080806118ff565b90919360206119f56001926119d788613754565b908560031b60031b916001600160401b03809116831b921b19161790565b95019291016119a8565b6000805b60048110611a185750828201556001016118e0565b60016020611a2d879596946119d78499613754565b940195509193929101611a03565b9160009260005b816102c051038110611a62575050506102c05160021c01558080806118a8565b9091936020611a766001926119d788613754565b9501929101611a42565b6000805b60048110611a99575082820155600101611887565b60016020611aae879596946119d78499613754565b940195509193929101611a84565b600190602083359301928185015501611843565b6001906020833593019281850155016117fe565b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c888cad8e8c240dad2e6dac2e8c6d606b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f5061727469616c6578697453756d206d69736d617463680000000000000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152700e8dee0eae0a6eada40dad2e6dac2e8c6d607b1b6044820152606490fd5b9050611bc1915060403d604011611bc8575b611bb98183613571565b81019061369f565b908261172c565b503d611baf565b6040513d6000823e3d90fd5b60405162461bcd60e51b81526020600482015260126024820152710aadceae6cac840e0caf0d2e840d2dcc8caf60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260126024820152710aadceae6cac840e8dee0eae040d2dcc8caf60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152700aadceae6cac840caf0d2e840d2dcc8caf607b1b6044820152606490fd5b6102805160a0511061226c5760005b611caa60a0516102405161022051613744565b35906001600160ff1b038111612233576001600160ff1b0382116121fb576102e0518310806121be575b6120b8578115806120af575b61206a57611ced916137e6565b916101e05181108061202d575b610160516080511080611fe9575b7f0000000000000000000000000000000000000000000000000000000000000000851315611e6d575015611e3d57611d47816101c0516101a051613744565b356001600160ff1b038111611e0357611d6090846137e6565b60008112611df5575b7f000000000000000000000000000000000000000000000000000000000000000012611db757611d9b611da5916139dc565b925b60c0516137ff565b60c0525b600160a0510160a0526116b0565b60405162461bcd60e51b81526020600482015260166024820152753a37b83ab81036b4b9b6b0ba31b4103b39903234b33360511b6044820152606490fd5b611dfe90614109565b611d69565b60405162461bcd60e51b8152602060048201526012602482015271746f70757020696e74206f766572666c6f7760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152600860248201526704e6f20746f7075760c41b6044820152606490fd5b9050611e9b9391937f0000000000000000000000000000000000000000000000000000000000000000614109565b8212611eac575b50611da590611d9d565b15611fb257611ec46080516101805161014051613744565b356001600160ff1b038111611f7857611edf611ee591614109565b826137e6565b60008112611f6a575b7f000000000000000000000000000000000000000000000000000000000000000012611f2c57611da590611f236080516139dc565b60805290611ea2565b60405162461bcd60e51b81526020600482015260166024820152753832bc34ba1036b4b9b6b0ba31b4103b39903234b33360511b6044820152606490fd5b611f7390614109565b611eee565b60405162461bcd60e51b8152602060048201526012602482015271706578697420696e74206f766572666c6f7760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e139bc81c185c9d1a585b08195e1a5d608a1b6044820152606490fd5b506120056120006080516101605161032051613744565b613754565b6001600160401b038061202461200060a0516102c0516102a051613744565b16911614611d08565b50612042612000826101e05161020051613744565b6001600160401b038061206161200060a0516102c0516102a051613744565b16911614611cfa565b60405162461bcd60e51b815260206004820152601c60248201527f6e6f6e2d657869742063757242616c3d302062757420707265763e30000000006044820152606490fd5b50801515611ce0565b6120cc836103609493945161034051613744565b359283156121795761213c576001600160ff1b03831161210357611d9d6120f6916120fe946137e6565b60c0526139dc565b611da9565b60405162461bcd60e51b81526020600482015260116024820152706578697420696e74206f766572666c6f7760781b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740657869742063757242616c206d757374206265203605c1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f657869742062616c616e6365206d757374206265203e203000000000000000006044820152606490fd5b506121d3612000846102e05161030051613744565b6001600160401b03806121f261200060a0516102c0516102a051613744565b16911614611cd4565b60405162461bcd60e51b815260206004820152601060248201526f63757220696e74206f766572666c6f7760801b6044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152707072657620696e74206f766572666c6f7760781b6044820152606490fd5b61227f60a0516102805161026051613744565b35611c97565b60405162461bcd60e51b815260206004820152601c60248201527f5061727469616c2065786974206c656e677468206d69736d61746368000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740a8dee0eae040d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601460248201527308af0d2e840d8cadccee8d040dad2e6dac2e8c6d60631b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d50726576203e20696e646578657360901b6044820152606490fd5b60405162461bcd60e51b81526020600482015260166024820152750c6eae440f2d2cad8c8a4dedee840dad2e6dac2e8c6d60531b6044820152606490fd5b6123cf61028051610260516102c0516102a051613e50565b600c54146115165760405162461bcd60e51b815260206004820152601760248201527f70726576207969656c64526f6f74206d69736d617463680000000000000000006044820152606490fd5b612428610380516140ae565b612431826140ae565b6001546001600160a01b03169160005b6102e051811061245457505050506114f2565b612468612000826102e05161030051613744565b6001600160401b0360405191638246438b60e01b8352166004820152602081602481885afa8015611bcf57600090612592575b6001600160401b039150168015612555576001600160401b0383166001600160401b0385161015612522576001600160401b038316106124dd57600101612441565b60405162461bcd60e51b815260206004820152601e60248201527f56616c696461746f72206e6f742079657420776974686472617761626c6500006044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a22b837b1b41037b93232b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152601560248201527409cde40eed2e8d0c8e4c2eec2c4d8ca40cae0dec6d605b1b6044820152606490fd5b506020813d6020116125ca575b816125ac60209383613571565b8101031261023c576125c56001600160401b039161368b565b61249b565b3d915061259f565b6125ea61036051610340516102e05161030051613e50565b6101205160070154146114e95760405162461bcd60e51b81526020600482015260116024820152700caf0d2e8a4dedee840dad2e6dac2e8c6d607b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152730caf0d2e840c6deeadce8e640dad2e6dac2e8c6d60631b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152730caf0d2e840c2e4e4c2f2e640dad2e6dac2e8c6d60631b6044820152606490fd5b6126c061018051610140516101605161032051613e50565b6101205160060154146114b25760405162461bcd60e51b81526020600482015260126024820152710a0caf0d2e8a4dedee840dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e0caf0d2e840c6deeadce8e640dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e0caf0d2e840c2e4e4c2f2e640dad2e6dac2e8c6d605b1b6044820152606490fd5b6127996101c0516101a0516101e05161020051613e50565b61012051600501541461147b5760405162461bcd60e51b81526020600482015260126024820152710a8dee0eae0a4dedee840dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e8dee0eae040c6deeadce8e640dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e8dee0eae040c2e4e4c2f2e640dad2e6dac2e8c6d605b1b6044820152606490fd5b61286a6102805161026051613dba565b600d541461143c5760405162461bcd60e51b815260206004820152601860248201527f707265762062616c616e63657320213d207072657654766c00000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481c995d99585b195960821b6044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4368616c6c656e67652077696e646f77206e6f74206f766572000000000000006044820152606490fd5b50604081901c6001600160401b03161515611389565b3461023c57604036600319011261023c57612963613478565b6001600160401b036024359116600052600f6020526040600020805482101561023c57602091612992916134fb565b905460405160039290921b1c6001600160a01b03168152f35b3461023c57604036600319011261023c576101c06129c7613478565b6129cf6134a4565b6001600160401b03809216600052600e602052604060002060018060a01b038092166000526020526040600020805492600182015492600283015491600384015460ff60048601549160058701549460068801549685600860078b01549a015416996040519b8c5260208c015260408b0152811660608a0152838160a01c1660808a0152818160e01c16151560a08a015260e81c16151560c088015281811660e0880152818160401c1661010088015260801c166101208601526101408501526101608401526101808301526101a0820152f35b61012036600319011261023c57612ab8613478565b60c4356001600160401b038116810361023c576001600160401b0360e4351660e4350361023c576001600160401b036101043516610104350361023c57612afd613d8f565b612b0682613d5e565b15613387576005546001600160401b038160401c16156000146132ca5767ffffffffffffffff60401b8360401b16906001600160401b034216906001600160801b03191617176005556007546001600160401b038160081c1680156000146132ba575068ffffffffffffffff0060015b60081b169068ffffffffffffffffff1916176007555b60405163eaa38b4160e01b81526001600160401b038316600482015260208160248173__$d69645fbc90682499a7586bfd77d6f89d8$__5af4908115611bcf57600091613288575b5080156132525780600654801560001461321057506006555b6001600160401b038316600052601460205260406000205480156000146131cf57506001600160401b03831660005260146020526040600020555b3360005260136020526040600020346131bd575b805467016345785d8a000081106131875767016345785d89ffff198101908111613171578155600181015467016345785d8a0000810181116131715767016345785d8a0000600191019101557ff6a4fac3c715c43d37e594d3f60bb5e3782af5a2aac2783711964a70277b60586040805133815267016345785d8a00006020820152a160015460408051637809c11160e11b81526001600160a01b03909216919081600481855afa908115611bcf57600090600092613148575b506001600160401b03166001600160401b0384161161310a576001600160401b03166001600160401b0360e43516116130cc576001600160401b036101043516612ffe575b506001600160401b0360075460081c16604051602435602082015260443560408201526001600160401b03831660608201526001600160401b0360e4351660808201526001600160401b03610104351660a082015260643560c082015260843560e082015261010060a435818301528152806101208101106001600160401b036101208301111761198b5761012081016040526020815191012090806000526015602052604060002090612dff838360019160005201602052604060002054151590565b612fb95780600052600e60205260406000203360005260205260406000209360018060a01b03600386015416612f805781600052600f602052604060002094855491600160401b83101561198b57612e6283612f4d9860016008960181556134fb565b81549060031b9033821b9160018060a01b03901b19161790556024358255604435600183015567016345785d8a0000600283015560038201546001600160401b0360a01b8960a01b16906001600160401b0360a01b1933169063ffffffff60e01b161717600383015560048201908154606435600585015560843560068501556001600160401b038060801b6101043560801b169216906001600160401b0360c01b161767ffffffffffffffff60401b60e43560401b161717905560a435600782015501906001600160401b0319825416179055816000526002810160205233604060002055614edf565b506001600160401b033391167f4b44fcfbb0929b2e9cefb0892dcebfe6284fdba2a58987242510271ee868b683600080a3005b60405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e481cdd589b5a5d1d1959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f4964656e746963616c207375626d697373696f6e2065786973747300000000006044820152606490fd5b602060049160405192838092639cbdac8760e01b82525afa8015611bcf5760009061308c575b6001600160401b039150166001600160401b036101043516116130475782612d3b565b60405162461bcd60e51b815260206004820152601a60248201527f65786974436f756e74203e20617661696c61626c6545786974730000000000006044820152606490fd5b506020813d6020116130c4575b816130a660209383613571565b8101031261023c576130bf6001600160401b039161368b565b613024565b3d9150613099565b60405162461bcd60e51b815260206004820152601660248201527570657869747355736564203e20617661696c61626c6560501b6044820152606490fd5b60405162461bcd60e51b8152602060048201526016602482015275746f7075707355736564203e20617661696c61626c6560501b6044820152606490fd5b6001600160401b03925061316b915060403d604011611bc857611bb98183613571565b91612cf6565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d109bdb99081cda1bdc9d19985b1b60921b6044820152606490fd5b6131c8348254613d51565b8155612c3c565b14612c285760405162461bcd60e51b8152602060048201526014602482015273084cac2c6dedc40e4dedee840dad2e6dac2e8c6d60631b6044820152606490fd5b14612bed5760405162461bcd60e51b81526020600482015260156024820152740c6eae49acae8c240e4dedee840dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d139bc818995858dbdb881c9bdbdd60921b6044820152606490fd5b90506020813d6020116132b2575b816132a360209383613571565b8101031261023c575183612bd4565b3d9150613296565b68ffffffffffffffff0090612b76565b6001600160401b0383166001600160401b038260401c160361334d576133086001600160401b03809261330260ff600754161561364b565b166139eb565b16421115612b8c5760405162461bcd60e51b815260206004820152601560248201527421b430b63632b733b2903bb4b73237bb9037bb32b960591b6044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271082c6e8d2ecca40e8e640dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e057726f6e672054696d657374616d7608c1b6044820152606490fd5b3461023c57600036600319011261023c57600854600954600a54600b54600c54604080516001600160401b0390961686526020860194909452928401919091526001600160a01b03166060830152608082015260a090f35b3461023c57600036600319011261023c576000546040516001600160a01b039091168152602090f35b3461023c57600036600319011261023c57807f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef160209252f35b600435906001600160401b038216820361023c57565b606435906001600160401b038216820361023c57565b602435906001600160a01b038216820361023c57565b600435906001600160a01b038216820361023c57565b8054156134e557600052602060002090600090565b634e487b7160e01b600052603260045260246000fd5b80548210156134e55760005260206000200190600090565b9181601f8401121561023c578235916001600160401b03831161023c576020808501948460051b01011161023c57565b6001600160401b03811161198b57604052565b604081019081106001600160401b0382111761198b57604052565b90601f801991011681019081106001600160401b0382111761198b57604052565b6001600160401b03811161198b57601f01601f191660200190565b6001600160401b039182168152918116602083015260408201929092529115156060830152909116608082015260a00190565b3461023c57600036600319011261023c57602060405160018152f35b60005b83811061360f5750506000910152565b81810151838201526020016135ff565b6040916020825261363f81518092816020860152602086860191016135fc565b601f01601f1916010190565b1561365257565b60405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e48199a5b985b1a5e9959607a1b6044820152606490fd5b51906001600160401b038216820361023c57565b919082604091031261023c576136c060206136b98461368b565b930161368b565b90565b156136ca57565b60405162461bcd60e51b815260206004820152600d60248201526c27379039bab136b4b9b9b4b7b760991b6044820152606490fd5b1561370657565b60405162461bcd60e51b81526020600482015260166024820152752932b9b7b63aba34b7b7103bb4b73237bb9037bb32b960511b6044820152606490fd5b91908110156134e55760051b0190565b356001600160401b038116810361023c5790565b1561376f57565b60405162461bcd60e51b815260206004820152600d60248201526c456d70747920696e646578657360981b6044820152606490fd5b156137ab57565b60405162461bcd60e51b8152602060048201526013602482015272086eae440d8cadccee8d040dad2e6dac2e8c6d606b1b6044820152606490fd5b8181039291600013801582851316918412161761317157565b9190916000838201938412911290801582169115161761317157565b818110613826575050565b6000815560010161381b565b80546000825580613841575050565b6138569160005260206000209081019061381b565b565b90600160401b811161198b5781549080835581811061387657505050565b613856926000526020600020918201910161381b565b8054600082558061389b575050565b6138569160005260036020600020910160021c81019061381b565b90600160401b811161198b5781548183558082106138d357505050565b613856926000526003602060002091601882850160021c840194831b1680613902575b500160021c019061381b565b6000199081860191825491602003851b1c169055386138f6565b9190820391821161317157565b1561393057565b60405162461bcd60e51b815260206004820152601060248201526f4e6f206163746976652077696e646f7760801b6044820152606490fd5b1561396f57565b60405162461bcd60e51b815260206004820152600b60248201526a09cde40dad2e6dac2e8c6d60ab1b6044820152606490fd5b156139a957565b60405162461bcd60e51b815260206004820152600b60248201526a0a8e640dad2e6dac2e8c6d60ab1b6044820152606490fd5b60001981146131715760010190565b9060016001600160401b038093160191821161317157565b600554906001600160401b0391604090613a228482841c161515613929565b60075484613a3a8160ff9461330260ff86161561364b565b164210613d1857849060081c16916000838152602095600f875282822093845492613a668415156136c3565b6001809414613c98576005549383613a82610bc28288166139eb565b164210613c54578982979392978093600195828c8254955b868310613b7457505050505050505015613abd5750505050613856929350614538565b9091929496959350613b0357835162461bcd60e51b81526004810186905260136024820152722737903b30b634b21039bab136b4b9b9b4b7b760691b6044820152606490fd5b613b317fb1fdd530bb857c48d7bc016cd7e343d8d0c7120c26779b22ebc3ba342fa585e394929593966139eb565b68ffffffffffffffff006007549160081b169068ffffffffffffffff00191617918260075581421680966001600160401b03191617600555519160081c168152a2565b878d613b8085876134fb565b91909360018060a01b03809554600394851b1c16958a52600e8152818a2090868b52528820015491821615613c4b5750848160e81c16159081613c41575b60e01c85169081613c39575b50613bdc575b5085905b018c8f613a9a565b9b5095613be8906139dc565b95858711613bf65738613bd0565b60648f8c519062461bcd60e51b82526004820152601a60248201527f4d756c7469706c652076616c6964207375626d697373696f6e730000000000006044820152fd5b905038613bca565b9599508995613bbe565b92915050613bd4565b855162461bcd60e51b8152600481018b9052601a60248201527f5265736f6c7574696f6e2077696e646f77206e6f74206f7665720000000000006044820152606490fd5b94849894935060039250613cac91506134d0565b9054868652600e855283862091831b1c6001600160a01b039081168087529185529290942001541615613ce55750613856929350614538565b60649085519062461bcd60e51b82526004820152600d60248201526c4e6f207375626d69747465727360981b6044820152fd5b825162461bcd60e51b815260206004820152601260248201527121b430b63632b733b2903737ba1037bb32b960711b6044820152606490fd5b9190820180921161317157565b6001600160401b03908160015460a01c1690818382161115613d8757600c918391031606161590565b505050600090565b60ff6000805160206150918339815191525416613da857565b60405163d93c066560e01b8152600490fd5b91906000926000915b808310613dcf57505050565b909193613dea600191613de3878587613744565b3590613d51565b94019190613dc3565b6001600160401b03811161198b5760051b60200190565b90613e1482613df3565b613e216040519182613571565b8281528092613e32601f1991613df3565b0190602036910137565b80518210156134e55760209160051b010190565b939291909382156140785782851061403f57613e6b83613e0a565b9260005b818110613fb55750505050809192509051918215613f845791905b600180831115613f735780830180841161317157811c92613eaa84613e0a565b9260005b858110613ebe5750505050613e8a565b80841b6001600160ff1b038216820361317157613edb8184613e3c565b51908581018091116131715760009085811015613f6d57613efd915084613e3c565b515b60409182516020928382019283528482015283815260608101908082106001600160401b0383111761198b5781613f3f60009482885283519283916135fc565b8101039060025afa15613f6357508390600051613f5c8288613e3c565b5201613eae565b513d6000823e3d90fd5b50613eff565b5090508051156134e5576020015190565b60405162461bcd60e51b81526020600482015260096024820152686e6f206c656176657360b81b6044820152606490fd5b613fc3612000828986613744565b613fce828487613744565b3590600061401a6040938451602094858201926001600160401b0360c01b918260c091821b1685521b1660288201526010815261400a81613556565b85519283928392519283916135fc565b8101039060025afa15613f6357506001906000516140388288613e3c565b5201613e6f565b60405162461bcd60e51b81526020600482015260116024820152701a5b99195e195cc81d1bdbc81cda1bdc9d607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d656d7074792062616c616e63657360901b6044820152606490fd5b6001600160401b0390818060015460a01c1691168181106140db5703908082116131715761018091160490565b60405162461bcd60e51b815260206004820152600660248201526562616420747360d01b6044820152606490fd5b600160ff1b81146131715760000390565b6000805160206150b183398151915260028154146141385760029055565b604051633ee5aeb560e01b8152600490fd5b3d15614175573d9061415b82613592565b916141696040519384613571565b82523d6000602084013e565b606090565b6000805160206150718339815191528054909290916001600160a01b03808416926004811061023c57600080604094855194602086019163b700961360e01b8352169485602482015230604482015263ffffffff60e01b84351660648201526064815260a081018181106001600160401b038211176142d85791849188938452828052826020525190895afa6142c7575b1561421a575b50505050505050565b63ffffffff16156142b15760ff60a01b19948516600160a01b178655833b1561023c57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af1908115613f6357506142a2575b50815416905538808080808080614211565b6142ab90613543565b38614290565b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c15029061420b565b634e487b7160e01b85526041600452602485fd5b91909180548310156134e557600052601860206000208360021c019260031b1690565b90600c82019182549260005b84811061432c575050505050600090565b61433681836142ec565b6001600160401b0391549160039281881692841b1c161461435a575060010161431b565b94509161436c9350600d9150016134fb565b9054911b1c90565b903590601e198136030182121561023c57018035906001600160401b03821161023c57602001918160051b3603831361023c57565b81835290916001600160fb1b03831161023c5760209260051b809284830137010190565b73__$d69645fbc90682499a7586bfd77d6f89d8$__906143ec81613754565b6143f96020830183614374565b90936144086060850185614374565b95909260a086019561441987613754565b95843b1561023c57600096608061447e614462986040519c8d9a8b998a9963a362685760e01b8b526001600160401b0380991660048c015260c060248c015260c48b01916143a9565b604088013560448a01528881036003190160648a0152916143a9565b93013560848501521660a483015203915af4918215611bcf576136c0926144a6575b50613754565b6144af90613543565b386144a0565b9060005b82548110156144f3576144cc81846142ec565b906001600160401b0390548185169260031b1c16146144ed576001016144b9565b91505090565b60405162461bcd60e51b815260206004820152601a60248201527f76616c496e646578206e6f7420696e20616374697665207365740000000000006044820152606490fd5b6000929091906001600160a01b03831615614c47576001600160401b0382168452600e602090815260408086206001600160a01b038681168852925285206003810154909291811615614c0a576145a4906001600160401b038060055460401c169160a01c16146139a2565b600160ff19600754161760075560048201546001600160401b038116908115801590614bf5575b614b83575b5050846001600160401b03600484015460801c1680614b1f575b50506145fd600d546001840154906137ff565b91858312614aeb5782600d556001810154868113600014614a62575060018060a01b038654166001820154633b9aca008181810204811482151715614a4e5790829189933b15614a4a5760248492836040519586948593631b870ba760e01b85520260048401525af18015614a3f57614a27575b50509490945b81926001945b6001600160401b0381166001600160401b038716116148c7576001600160401b0386168452600f6020526040842097845b89548110156147f2576146c1818b6134fb565b60018060a01b0391549060031b1c166001600160401b0389168752600e6020526040872081600052602052604060002060018060a01b03600382015416156147e85781885260136020526002600160408a200154910154908082116147e0575b50806147c7575b50906001916001600160401b038a168852600e60205260408820906000526020526147c1600d6040600020600081556000858201556000600282015589600382015589600482015560006005820155600060068201556000600782015589600882015561479760098201613832565b6147a3600a8201613832565b6147af600b820161388c565b6147bb600c820161388c565b01613832565b016146ae565b81986147d7828d60019695614e40565b01979091614728565b905038614721565b50506001906147c1565b5091969492909397506001600160401b0386168852600f602052604088208054898255806148ab575b50506001600160401b0386168852601560205260408820965b87541561486b57614865614847896134d0565b90549060031b1c808b5260028a01602052600060408c205589614f94565b50614834565b9193956001600160401b039193959750166001600160401b03811461489757929660019093019461467d565b634e487b7160e01b88526011600452602488fd5b6148c09160005260206000209081019061381b565b388061481b565b5092949093506001600160401b03600385015460a01c16916001850154938554906040519560a08701958787106001600160401b0388111761198b578360807fe682b5acd06a8bafeaeacd838c895ebb4f71a55bdc48399583f654d28bb225cf996040998a52838152846020820152858a82015260018060a01b038916606082015201526001600160401b03196008541617600855600955600a5560018060a01b0383166bffffffffffffffffffffffff60a01b600b541617600b55600c5560055490600254906001600160801b03199167ffffffffffffffff60401b841690836001600160401b03861691161717600255600654600355600754916004549368ffffffffffffffffff199468ffffffffffffffff008516908660ff80881615151691161717600455166005556006551660075560016001600160401b03600386015460a01c169401548251958652602086015260018060a01b031693a3565b614a3090613543565b614a3b578538614671565b8580fd5b6040513d84823e3d90fd5b8380fd5b634e487b7160e01b89526011600452602489fd5b868112614a73575b50949094614677565b86546001600160a01b031690614a8890614109565b633b9aca008181810204811482151715614a4e5790829189933b15614a4a57602484928360405195869485936371cfd2e960e11b85520260048401525af18015614a3f57614ad7575b50614a6a565b614ae090613543565b614a3b578538614ad1565b60405162461bcd60e51b815260206004820152600c60248201526b54564c206e6567617469766560a01b6044820152606490fd5b6001546001600160a01b0316803b15614b7f57602483926040519485938492632798c82360e01b845260048401525af18015614b7457614b61575b85906145ea565b614b6d90959195613543565b9338614b5a565b6040513d88823e3d90fd5b8280fd5b60015460408051632198ef3160e21b81526001600160401b03948516600482015292811c9093166024830152909190829060449082908a906001600160a01b03165af18015614b7457614bd7575b806145d0565b614bef9060403d604011611bc857611bb98183613571565b50614bd1565b506001600160401b038160401c1615156145cb565b60405162461bcd60e51b81526020600482015260156024820152742130b2103bb4b73732b91039bab136b4b9b9b4b7b760591b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f057696e6e6572206164647265737320360841b6044820152606490fd5b60008051602061507183398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b916001926001831115614d6c5760015b838110614cf6575050505050565b614d04612000828685613744565b6000198201828111614d575761200090614d296001600160401b039283928988613744565b1691161115614d39578401614ce8565b60405162461bcd60e51b815280614d53856004830161361f565b0390fd5b60246000634e487b7160e01b81526011600452fd5b50505050565b805115614d8157602081519101fd5b60405163d6bda27560e01b8152600490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615614dc257565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215614e12575b50506108dd57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880614e0a565b9160018060a01b03809316908160005260136020526001604060002001938454938215614ed7577f9b3fd5a866dbcaa7a24245289bd117318de3bb1014fb8bdcdd71b038a3b4542b95856060968511614ecf575b84614e9e9161391c565b9055168060005260136020526040600020614eba838254613d51565b905560405192835260208301526040820152a1565b935083614e94565b505050505050565b6000828152600182016020526040902054614f4657805490600160401b82101561198b5782614f2f614f188460018096018555846134fb565b819391549060031b91821b91600019901b19161790565b905580549260005201602052604060002055600190565b5050600090565b90614f585750614d72565b81511580614f8b575b614f69575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15614f61565b9060018201906000928184528260205260408420549081151560001461506957600019918083018181116150555782549084820191821161489757818103615020575b5050508054801561500c57820191614fef83836134fb565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b615040615030614f1893866134fb565b90549060031b1c928392866134fb565b90558652846020526040862055388080614fd7565b634e487b7160e01b87526011600452602487fd5b505050509056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122035229677e3002ec1fdd1c82b55719f6c6ecfbc0147121eb82dbd2126a843851e64736f6c63430008190033",
1347
+ "deployedBytecode": "0x6103a080604052600436101561001457600080fd5b60003560e01c90816307e2cea51461343f575080630a651761146134165780630cc5e02a146133be5780630ddb257c14612aa357806317d1eb91146129ab5780632ab64a871461294a5780632f756e12146111dc578063304b9071146111c05780633d7c3e51146110a55780633f4ba83a1461102c5780633fe3f1cf14610e0657806345f8597314610b155780634f1ef2861461093b578063504b82bf1461091257806351f338dd146108ef57806352d1902d146108725780635c975abb146108425780636ae8d84e146108075780636dc240d9146107c0578063734c85441461037757806376a2acd3146107835780637a9e5e4b146107065780638456cb591461069d5780638fb360371461064a578063923989fd14610610578063962fc0f3146105d55780639c302510146105b7578063a48946491461057d578063a53e541214610377578063ad3cb1cc1461053f578063b26c604a146104de578063b31892751461045e578063b9d87f5c14610413578063bf7e214f146103dd578063d45fbccd1461037c578063d62aad2914610377578063da30e2791461035c578063dbac26e91461031d578063e373297c146102b6578063ef83dcaa14610298578063f28824611461026e578063f9cd2056146102415763fe10d774146101f957600080fd5b3461023c57602036600319011261023c576001600160a01b0361021a6134ba565b1660005260136020526040806000206001815491015482519182526020820152f35b600080fd5b3461023c57602036600319011261023c57602061026461025f613478565b613d5e565b6040519015158152f35b3461023c57600036600319011261023c5760206001600160401b0360015460a01c16604051908152f35b3461023c57600036600319011261023c576020604051620151808152f35b600036600319011261023c576102ca613d8f565b34156102ed5733600052601360205260406000206102e9348254613d51565b9055005b60405162461bcd60e51b81526020600482015260086024820152674e6f2076616c756560c01b6044820152606490fd5b3461023c57602036600319011261023c576001600160a01b0361033e6134ba565b166000526017602052602060ff604060002054166040519015158152f35b3461023c57600036600319011261023c576020604051818152f35b6135e0565b3461023c57602036600319011261023c57610397363361417a565b600d546103a657600435600d55005b60405162461bcd60e51b815260206004820152600f60248201526e15159308185b1c9958591e481cd95d608a1b6044820152606490fd5b3461023c57600036600319011261023c57600080516020615071833981519152546040516001600160a01b039091168152602090f35b3461023c57600036600319011261023c576002546001600160401b039061045a600354926004549060405194859460ff838560081c16941692808260401c169116866135ad565b0390f35b3461023c57602036600319011261023c576001600160401b0380610480613478565b1660009081526011602090815260409182902080546001820154600283015460038401546004909401548651979093166001600160401b0316875293860152928401919091526001600160a01b03166060830152608082015260a090f35b3461023c57602036600319011261023c576001600160401b0380610500613478565b16600052601060205260406000209061045a825491600260018501549401549060405194859460ff838560081c16941692808260401c169116866135ad565b3461023c57600036600319011261023c5761045a60405161055f81613556565b60058152640352e302e360dc1b60208201526040519182918261361f565b3461023c57602036600319011261023c576001600160401b0361059e613478565b1660005260146020526020604060002054604051908152f35b3461023c57600036600319011261023c576020600d54604051908152f35b3461023c57602036600319011261023c5760206001600160401b03806105f9613478565b166000526016825260406000205416604051908152f35b3461023c57602036600319011261023c576001600160401b03610631613478565b1660005260126020526020604060002054604051908152f35b3461023c57600036600319011261023c576000805160206150718339815191525460a01c60ff1615610694576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610681565b3461023c57600036600319011261023c576106b8363361417a565b6106c0613d8f565b600080516020615091833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461023c57602036600319011261023c5761071f6134ba565b600080516020615071833981519152546001600160a01b0391908216330361076c57803b156107535761075190614c7f565b005b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461023c57600036600319011261023c5761079c61411a565b6107a4613d8f565b6107ac613a03565b60016000805160206150b183398151915255005b3461023c57600036600319011261023c576005546001600160401b039061045a600654926007549060405194859460ff838560081c16941692808260401c169116866135ad565b3461023c57600036600319011261023c5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461023c57600036600319011261023c57602060ff60008051602061509183398151915254166040519015158152f35b3461023c57600036600319011261023c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036108dd5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b3461023c57600036600319011261023c57602060405167016345785d8a00008152f35b3461023c57600036600319011261023c576001546040516001600160a01b039091168152602090f35b604036600319011261023c5761094f6134ba565b60249081356001600160401b03811161023c573660238201121561023c5780600401359161097c83613592565b6109896040519182613571565b838152602093848201933687838301011161023c5781600092888893018737830101526109b4614dd4565b6109be363361417a565b6109c6614dd4565b6040516352d1902d60e01b81526001600160a01b038316948082600481895afa918291600093610ae5575b5050610a0f57604051634c9c8ce360e01b8152600481018690528690fd5b8490867f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610ad05750843b15610aba575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115610aa0575060006107519381925190845af4610a9a61414a565b91614f4d565b9250505034610aab57005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9080929350813d8311610b0e575b610afd8183613571565b8101031261023c57519087806109f1565b503d610af3565b3461023c5760031960803682011261023c57610b2f613478565b610b376134a4565b6044926001600160401b03843581811161023c5760c08160040193823603011261023c57610b6361348e565b95610b6c613d8f565b600554610b8c84808360401c169816978881149081610dfc575b50613929565b8360075491610b9e60ff84161561364b565b1684610ba9826139eb565b164210610db85790610bd085610bc7610bc282956139eb565b6139eb565b164211156136ff565b60081c166000526020600e815260406000209760018060a01b03809716988960005282526040600020936003850197610c0e895491821615156136c3565b60ff8160e01c1615610d855760e81c60ff16610d4d57608486831691013503610d1b57610c3b818561430f565b80610d045750610c65600a91610c5c8a88610c558b613754565b16146139a2565b600b86016144b5565b9301918254841015610cd2575050610c85610c9a949392610c92926134fb565b90549060031b1c926143cd565b161415613968565b805460ff60e81b1916600160e81b1790557f143fdfb97b8e570366bdbb484f6c968051d1c4fae6611c1e87de152db3dd41f4600080a3005b906b4f7574206f662072616e676560a01b6064926040519262461bcd60e51b84526004840152600c6024840152820152fd5b949350505050610c92610d16936143cd565b610c9a565b506b0d2c8f040dad2e6dac2e8c6d60a31b6064926040519262461bcd60e51b84526004840152600c6024840152820152fd5b60405162461bcd60e51b8152600481018490526011602482015270105b1c9958591e48191a5cdc1c9bdd9959607a1b81860152606490fd5b60405162461bcd60e51b815260048101859052600c60248201526b139bdd081c995d99585b195960a21b81870152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f5374696c6c20696e206368616c6c656e67652077696e646f770000000000000081850152606490fd5b905015158a610b86565b3461023c57608036600319011261023c57610e1f6134ba565b610e276134a4565b6001600160a01b03906044358281169081900361023c57610e4661348e565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009384549360ff8560401c1615946001600160401b03811697881580611025575b6001809a14908161101b575b159081611012575b506110005767ffffffffffffffff19821689178855610f0a9187610fe1575b50610ec4614d93565b610ecc614d93565b610ed4614d93565b886000805160206150b183398151915255610eed614d93565b610ef5614d93565b610efd614d93565b610f05614d93565b614c7f565b610f12614d93565b610f1a614d93565b1680151580610fd8575b15610fa457600080546001600160a01b03191691909117905584546001600160e01b0319161760a09190911b67ffffffffffffffff60a01b16178355610f6657005b805468ff0000000000000000191690556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b60405162461bcd60e51b815260206004820152600c60248201526b41646472657373207a65726f60a01b6044820152606490fd5b50811515610f24565b68ffffffffffffffffff19166801000000000000000117885589610ebb565b60405163f92ee8a960e01b8152600490fd5b9050158a610e9c565b303b159150610e94565b5086610e88565b3461023c57600036600319011261023c57611047363361417a565b600080516020615091833981519152805460ff8116156110935760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461023c57602036600319011261023c576004356110c1613d8f565b6110c961411a565b3360005260136020526040600020811515806111b5575b15611179576110f082825461391c565b905580471061115957600080808084335af161110a61414a565b9015611154577f0d41118e36df44efb77a471fc49fb9c0be0406d802ef95520e9fbf606e65b4556040838151903382526020820152a160016000805160206150b183398151915255005b614d72565b60405163cf47918160e01b81524760048201526024810191909152604490fd5b60405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606490fd5b5081815410156110e0565b3461023c57600036600319011261023c576020604051600c8152f35b3461023c5761014036600319011261023c576111f6613478565b610380526024356001600160401b03811161023c57611219903690600401613513565b61028052610260526044356001600160401b03811161023c57611240903690600401613513565b61024052610220526064356001600160401b03811161023c57611267903690600401613513565b6102c0526102a0526084356001600160401b03811161023c5761128e903690600401613513565b6102e052610300526001600160401b0360a4351161023c576112b53660a435600401613513565b61036052610340526001600160401b0360c4351161023c576112dc3660c435600401613513565b6101e052610200526001600160401b0360e4351161023c576113033660e435600401613513565b6101c0526101a0526001600160401b03610104351161023c5761132c3661010435600401613513565b61016052610320526001600160401b03610124351161023c576113553661012435600401613513565b6101805261014052611365613d8f565b6005546001600160401b0361038051166001600160401b038260401c161480612934575b611392906136c3565b6007546113a260ff82161561364b565b6001600160401b036113b58184166139eb565b1642106128ef576113d66001600160401b03610bc7610bc2828096166139eb565b60081c16600052600e60205260406000203360005260205260406000206101205260036101205101546101005261141960018060a01b03610100511615156136c3565b60ff6101005160e01c166128b7576001600160401b0360025460401c168061285a575b6101c0516101e0510361281d57600461012051015460e0526001600160401b0360e051166001600160401b036101e05116036127e0576101e051612781575b610180516101605103612744576001600160401b0360e05160401c166001600160401b0361016051160361270757610160516126a8575b610360516102e0510361266c576001600160401b0360e05160801c166001600160401b036102e0511603612630576102e0516125d2575b6102e05161241c575b6115006102c0511515613768565b6115116102c05161024051146137a4565b6123b7575b61152e61024051610220516102c0516102a051613e50565b61012051540361237957600060c05261154b6102c0511515613768565b61155c6102c05161024051146137a4565b6102c0516102805111612343576102e0516103605103612307576101e0516101c051036122ca57610160516101805103612285576115cb60405161159f81613556565b60128152711a5b99195e195cc81b9bdd081cdbdc9d195960721b60208201526102c0516102a051614cd8565b6116116040516115da81613556565b601781527f6578697420696e6465786573206e6f7420736f7274656400000000000000000060208201526102e05161030051614cd8565b61165760405161162081613556565b601881527f746f70757020696e6465786573206e6f7420736f72746564000000000000000060208201526101e05161020051614cd8565b61169d60405161166681613556565b601f81527f7061727469616c206578697420696e6465786573206e6f7420736f727465640060208201526101605161032051614cd8565b6000806000608052600060c052600060a0525b6102c05160a05110611c88576102e05103611c4f576101e05103611c15576101605160805103611bdb57600154604080516378f82e4960e11b815260e0516001600160401b03808216600484015290831c16602482015291829060449082906001600160a01b03165afa908115611bcf57600090600092611b9d575b506001600160401b036117456101c0516101a051613dba565b166001600160401b03821603611b64576001600160401b0361176d6101805161014051613dba565b166001600160401b03831603611b1f576117986001600160401b038061179d9416921660c0516137e6565b6137ff565b600161012051015403611ae457600160e01b60ff60e01b1961010051161760036101205101556001600160401b03610240511161198b576117e761024051600a6101205101613858565b61022051600a610120510160005260206000209060005b610240518110611ad0576001600160401b03610280511161198b5761182c6102805160096101205101613858565b610260516009610120510160005260206000209060005b610280518110611abc576001600160401b036102c0511161198b576118716102c051600b61012051016138b6565b6102a051600b6101205101600052602060002060005b6102c05160021c8110611a8057506003196102c05116806102c05103611a3b575b505050600c61012051016001600160401b036102e0511161198b576118d06102e051826138b6565b6103005190600052602060002060005b6102e05160021c81106119ff57506102e05160031981169003806119a1575b505050600d61012051016001600160401b03610360511161198b576119276103605182613858565b610340519060005260206000209060005b61036051811061197757336001600160401b0361038051167fd3080ea4da67f41178d1bd1c53f65bc84bb23fe88d86a42516cc7b0da4fb2524600080a3005b600190602083359301928185015501611938565b634e487b7160e01b600052604160045260246000fd5b9160009260005b8181106119c3575050506102e05160021c01558080806118ff565b90919360206119f56001926119d788613754565b908560031b60031b916001600160401b03809116831b921b19161790565b95019291016119a8565b6000805b60048110611a185750828201556001016118e0565b60016020611a2d879596946119d78499613754565b940195509193929101611a03565b9160009260005b816102c051038110611a62575050506102c05160021c01558080806118a8565b9091936020611a766001926119d788613754565b9501929101611a42565b6000805b60048110611a99575082820155600101611887565b60016020611aae879596946119d78499613754565b940195509193929101611a84565b600190602083359301928185015501611843565b6001906020833593019281850155016117fe565b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c888cad8e8c240dad2e6dac2e8c6d606b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f5061727469616c6578697453756d206d69736d617463680000000000000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152700e8dee0eae0a6eada40dad2e6dac2e8c6d607b1b6044820152606490fd5b9050611bc1915060403d604011611bc8575b611bb98183613571565b81019061369f565b908261172c565b503d611baf565b6040513d6000823e3d90fd5b60405162461bcd60e51b81526020600482015260126024820152710aadceae6cac840e0caf0d2e840d2dcc8caf60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260126024820152710aadceae6cac840e8dee0eae040d2dcc8caf60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152700aadceae6cac840caf0d2e840d2dcc8caf607b1b6044820152606490fd5b6102805160a0511061226c5760005b611caa60a0516102405161022051613744565b35906001600160ff1b038111612233576001600160ff1b0382116121fb576102e0518310806121be575b6120b8578115806120af575b61206a57611ced916137e6565b916101e05181108061202d575b610160516080511080611fe9575b7f0000000000000000000000000000000000000000000000000000000000000000851315611e6d575015611e3d57611d47816101c0516101a051613744565b356001600160ff1b038111611e0357611d6090846137e6565b60008112611df5575b7f000000000000000000000000000000000000000000000000000000000000000012611db757611d9b611da5916139dc565b925b60c0516137ff565b60c0525b600160a0510160a0526116b0565b60405162461bcd60e51b81526020600482015260166024820152753a37b83ab81036b4b9b6b0ba31b4103b39903234b33360511b6044820152606490fd5b611dfe90614109565b611d69565b60405162461bcd60e51b8152602060048201526012602482015271746f70757020696e74206f766572666c6f7760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152600860248201526704e6f20746f7075760c41b6044820152606490fd5b9050611e9b9391937f0000000000000000000000000000000000000000000000000000000000000000614109565b8212611eac575b50611da590611d9d565b15611fb257611ec46080516101805161014051613744565b356001600160ff1b038111611f7857611edf611ee591614109565b826137e6565b60008112611f6a575b7f000000000000000000000000000000000000000000000000000000000000000012611f2c57611da590611f236080516139dc565b60805290611ea2565b60405162461bcd60e51b81526020600482015260166024820152753832bc34ba1036b4b9b6b0ba31b4103b39903234b33360511b6044820152606490fd5b611f7390614109565b611eee565b60405162461bcd60e51b8152602060048201526012602482015271706578697420696e74206f766572666c6f7760701b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e139bc81c185c9d1a585b08195e1a5d608a1b6044820152606490fd5b506120056120006080516101605161032051613744565b613754565b6001600160401b038061202461200060a0516102c0516102a051613744565b16911614611d08565b50612042612000826101e05161020051613744565b6001600160401b038061206161200060a0516102c0516102a051613744565b16911614611cfa565b60405162461bcd60e51b815260206004820152601c60248201527f6e6f6e2d657869742063757242616c3d302062757420707265763e30000000006044820152606490fd5b50801515611ce0565b6120cc836103609493945161034051613744565b359283156121795761213c576001600160ff1b03831161210357611d9d6120f6916120fe946137e6565b60c0526139dc565b611da9565b60405162461bcd60e51b81526020600482015260116024820152706578697420696e74206f766572666c6f7760781b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740657869742063757242616c206d757374206265203605c1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f657869742062616c616e6365206d757374206265203e203000000000000000006044820152606490fd5b506121d3612000846102e05161030051613744565b6001600160401b03806121f261200060a0516102c0516102a051613744565b16911614611cd4565b60405162461bcd60e51b815260206004820152601060248201526f63757220696e74206f766572666c6f7760801b6044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152707072657620696e74206f766572666c6f7760781b6044820152606490fd5b61227f60a0516102805161026051613744565b35611c97565b60405162461bcd60e51b815260206004820152601c60248201527f5061727469616c2065786974206c656e677468206d69736d61746368000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740a8dee0eae040d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601460248201527308af0d2e840d8cadccee8d040dad2e6dac2e8c6d60631b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d50726576203e20696e646578657360901b6044820152606490fd5b60405162461bcd60e51b81526020600482015260166024820152750c6eae440f2d2cad8c8a4dedee840dad2e6dac2e8c6d60531b6044820152606490fd5b6123cf61028051610260516102c0516102a051613e50565b600c54146115165760405162461bcd60e51b815260206004820152601760248201527f70726576207969656c64526f6f74206d69736d617463680000000000000000006044820152606490fd5b612428610380516140ae565b612431826140ae565b6001546001600160a01b03169160005b6102e051811061245457505050506114f2565b612468612000826102e05161030051613744565b6001600160401b0360405191638246438b60e01b8352166004820152602081602481885afa8015611bcf57600090612592575b6001600160401b039150168015612555576001600160401b0383166001600160401b0385161015612522576001600160401b038316106124dd57600101612441565b60405162461bcd60e51b815260206004820152601e60248201527f56616c696461746f72206e6f742079657420776974686472617761626c6500006044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a22b837b1b41037b93232b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152601560248201527409cde40eed2e8d0c8e4c2eec2c4d8ca40cae0dec6d605b1b6044820152606490fd5b506020813d6020116125ca575b816125ac60209383613571565b8101031261023c576125c56001600160401b039161368b565b61249b565b3d915061259f565b6125ea61036051610340516102e05161030051613e50565b6101205160070154146114e95760405162461bcd60e51b81526020600482015260116024820152700caf0d2e8a4dedee840dad2e6dac2e8c6d607b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152730caf0d2e840c6deeadce8e640dad2e6dac2e8c6d60631b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152730caf0d2e840c2e4e4c2f2e640dad2e6dac2e8c6d60631b6044820152606490fd5b6126c061018051610140516101605161032051613e50565b6101205160060154146114b25760405162461bcd60e51b81526020600482015260126024820152710a0caf0d2e8a4dedee840dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e0caf0d2e840c6deeadce8e640dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e0caf0d2e840c2e4e4c2f2e640dad2e6dac2e8c6d605b1b6044820152606490fd5b6127996101c0516101a0516101e05161020051613e50565b61012051600501541461147b5760405162461bcd60e51b81526020600482015260126024820152710a8dee0eae0a4dedee840dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e8dee0eae040c6deeadce8e640dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152740e8dee0eae040c2e4e4c2f2e640dad2e6dac2e8c6d605b1b6044820152606490fd5b61286a6102805161026051613dba565b600d541461143c5760405162461bcd60e51b815260206004820152601860248201527f707265762062616c616e63657320213d207072657654766c00000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481c995d99585b195960821b6044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4368616c6c656e67652077696e646f77206e6f74206f766572000000000000006044820152606490fd5b50604081901c6001600160401b03161515611389565b3461023c57604036600319011261023c57612963613478565b6001600160401b036024359116600052600f6020526040600020805482101561023c57602091612992916134fb565b905460405160039290921b1c6001600160a01b03168152f35b3461023c57604036600319011261023c576101c06129c7613478565b6129cf6134a4565b6001600160401b03809216600052600e602052604060002060018060a01b038092166000526020526040600020805492600182015492600283015491600384015460ff60048601549160058701549460068801549685600860078b01549a015416996040519b8c5260208c015260408b0152811660608a0152838160a01c1660808a0152818160e01c16151560a08a015260e81c16151560c088015281811660e0880152818160401c1661010088015260801c166101208601526101408501526101608401526101808301526101a0820152f35b61012036600319011261023c57612ab8613478565b60c4356001600160401b038116810361023c576001600160401b0360e4351660e4350361023c576001600160401b036101043516610104350361023c57612afd613d8f565b612b0682613d5e565b15613387576005546001600160401b038160401c16156000146132ca5767ffffffffffffffff60401b8360401b16906001600160401b034216906001600160801b03191617176005556007546001600160401b038160081c1680156000146132ba575068ffffffffffffffff0060015b60081b169068ffffffffffffffffff1916176007555b60405163eaa38b4160e01b81526001600160401b038316600482015260208160248173__$d69645fbc90682499a7586bfd77d6f89d8$__5af4908115611bcf57600091613288575b5080156132525780600654801560001461321057506006555b6001600160401b038316600052601460205260406000205480156000146131cf57506001600160401b03831660005260146020526040600020555b3360005260136020526040600020346131bd575b805467016345785d8a000081106131875767016345785d89ffff198101908111613171578155600181015467016345785d8a0000810181116131715767016345785d8a0000600191019101557ff6a4fac3c715c43d37e594d3f60bb5e3782af5a2aac2783711964a70277b60586040805133815267016345785d8a00006020820152a160015460408051637809c11160e11b81526001600160a01b03909216919081600481855afa908115611bcf57600090600092613148575b506001600160401b03166001600160401b0384161161310a576001600160401b03166001600160401b0360e43516116130cc576001600160401b036101043516612ffe575b506001600160401b0360075460081c16604051602435602082015260443560408201526001600160401b03831660608201526001600160401b0360e4351660808201526001600160401b03610104351660a082015260643560c082015260843560e082015261010060a435818301528152806101208101106001600160401b036101208301111761198b5761012081016040526020815191012090806000526015602052604060002090612dff838360019160005201602052604060002054151590565b612fb95780600052600e60205260406000203360005260205260406000209360018060a01b03600386015416612f805781600052600f602052604060002094855491600160401b83101561198b57612e6283612f4d9860016008960181556134fb565b81549060031b9033821b9160018060a01b03901b19161790556024358255604435600183015567016345785d8a0000600283015560038201546001600160401b0360a01b8960a01b16906001600160401b0360a01b1933169063ffffffff60e01b161717600383015560048201908154606435600585015560843560068501556001600160401b038060801b6101043560801b169216906001600160401b0360c01b161767ffffffffffffffff60401b60e43560401b161717905560a435600782015501906001600160401b0319825416179055816000526002810160205233604060002055614edf565b506001600160401b033391167f4b44fcfbb0929b2e9cefb0892dcebfe6284fdba2a58987242510271ee868b683600080a3005b60405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e481cdd589b5a5d1d1959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f4964656e746963616c207375626d697373696f6e2065786973747300000000006044820152606490fd5b602060049160405192838092639cbdac8760e01b82525afa8015611bcf5760009061308c575b6001600160401b039150166001600160401b036101043516116130475782612d3b565b60405162461bcd60e51b815260206004820152601a60248201527f65786974436f756e74203e20617661696c61626c6545786974730000000000006044820152606490fd5b506020813d6020116130c4575b816130a660209383613571565b8101031261023c576130bf6001600160401b039161368b565b613024565b3d9150613099565b60405162461bcd60e51b815260206004820152601660248201527570657869747355736564203e20617661696c61626c6560501b6044820152606490fd5b60405162461bcd60e51b8152602060048201526016602482015275746f7075707355736564203e20617661696c61626c6560501b6044820152606490fd5b6001600160401b03925061316b915060403d604011611bc857611bb98183613571565b91612cf6565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d109bdb99081cda1bdc9d19985b1b60921b6044820152606490fd5b6131c8348254613d51565b8155612c3c565b14612c285760405162461bcd60e51b8152602060048201526014602482015273084cac2c6dedc40e4dedee840dad2e6dac2e8c6d60631b6044820152606490fd5b14612bed5760405162461bcd60e51b81526020600482015260156024820152740c6eae49acae8c240e4dedee840dad2e6dac2e8c6d605b1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d139bc818995858dbdb881c9bdbdd60921b6044820152606490fd5b90506020813d6020116132b2575b816132a360209383613571565b8101031261023c575183612bd4565b3d9150613296565b68ffffffffffffffff0090612b76565b6001600160401b0383166001600160401b038260401c160361334d576133086001600160401b03809261330260ff600754161561364b565b166139eb565b16421115612b8c5760405162461bcd60e51b815260206004820152601560248201527421b430b63632b733b2903bb4b73237bb9037bb32b960591b6044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271082c6e8d2ecca40e8e640dad2e6dac2e8c6d60731b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e057726f6e672054696d657374616d7608c1b6044820152606490fd5b3461023c57600036600319011261023c57600854600954600a54600b54600c54604080516001600160401b0390961686526020860194909452928401919091526001600160a01b03166060830152608082015260a090f35b3461023c57600036600319011261023c576000546040516001600160a01b039091168152602090f35b3461023c57600036600319011261023c57807f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef160209252f35b600435906001600160401b038216820361023c57565b606435906001600160401b038216820361023c57565b602435906001600160a01b038216820361023c57565b600435906001600160a01b038216820361023c57565b8054156134e557600052602060002090600090565b634e487b7160e01b600052603260045260246000fd5b80548210156134e55760005260206000200190600090565b9181601f8401121561023c578235916001600160401b03831161023c576020808501948460051b01011161023c57565b6001600160401b03811161198b57604052565b604081019081106001600160401b0382111761198b57604052565b90601f801991011681019081106001600160401b0382111761198b57604052565b6001600160401b03811161198b57601f01601f191660200190565b6001600160401b039182168152918116602083015260408201929092529115156060830152909116608082015260a00190565b3461023c57600036600319011261023c57602060405160018152f35b60005b83811061360f5750506000910152565b81810151838201526020016135ff565b6040916020825261363f81518092816020860152602086860191016135fc565b601f01601f1916010190565b1561365257565b60405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e48199a5b985b1a5e9959607a1b6044820152606490fd5b51906001600160401b038216820361023c57565b919082604091031261023c576136c060206136b98461368b565b930161368b565b90565b156136ca57565b60405162461bcd60e51b815260206004820152600d60248201526c27379039bab136b4b9b9b4b7b760991b6044820152606490fd5b1561370657565b60405162461bcd60e51b81526020600482015260166024820152752932b9b7b63aba34b7b7103bb4b73237bb9037bb32b960511b6044820152606490fd5b91908110156134e55760051b0190565b356001600160401b038116810361023c5790565b1561376f57565b60405162461bcd60e51b815260206004820152600d60248201526c456d70747920696e646578657360981b6044820152606490fd5b156137ab57565b60405162461bcd60e51b8152602060048201526013602482015272086eae440d8cadccee8d040dad2e6dac2e8c6d606b1b6044820152606490fd5b8181039291600013801582851316918412161761317157565b9190916000838201938412911290801582169115161761317157565b818110613826575050565b6000815560010161381b565b80546000825580613841575050565b6138569160005260206000209081019061381b565b565b90600160401b811161198b5781549080835581811061387657505050565b613856926000526020600020918201910161381b565b8054600082558061389b575050565b6138569160005260036020600020910160021c81019061381b565b90600160401b811161198b5781548183558082106138d357505050565b613856926000526003602060002091601882850160021c840194831b1680613902575b500160021c019061381b565b6000199081860191825491602003851b1c169055386138f6565b9190820391821161317157565b1561393057565b60405162461bcd60e51b815260206004820152601060248201526f4e6f206163746976652077696e646f7760801b6044820152606490fd5b1561396f57565b60405162461bcd60e51b815260206004820152600b60248201526a09cde40dad2e6dac2e8c6d60ab1b6044820152606490fd5b156139a957565b60405162461bcd60e51b815260206004820152600b60248201526a0a8e640dad2e6dac2e8c6d60ab1b6044820152606490fd5b60001981146131715760010190565b9060016001600160401b038093160191821161317157565b600554906001600160401b0391604090613a228482841c161515613929565b60075484613a3a8160ff9461330260ff86161561364b565b164210613d1857849060081c16916000838152602095600f875282822093845492613a668415156136c3565b6001809414613c98576005549383613a82610bc28288166139eb565b164210613c54578982979392978093600195828c8254955b868310613b7457505050505050505015613abd5750505050613856929350614538565b9091929496959350613b0357835162461bcd60e51b81526004810186905260136024820152722737903b30b634b21039bab136b4b9b9b4b7b760691b6044820152606490fd5b613b317fb1fdd530bb857c48d7bc016cd7e343d8d0c7120c26779b22ebc3ba342fa585e394929593966139eb565b68ffffffffffffffff006007549160081b169068ffffffffffffffff00191617918260075581421680966001600160401b03191617600555519160081c168152a2565b878d613b8085876134fb565b91909360018060a01b03809554600394851b1c16958a52600e8152818a2090868b52528820015491821615613c4b5750848160e81c16159081613c41575b60e01c85169081613c39575b50613bdc575b5085905b018c8f613a9a565b9b5095613be8906139dc565b95858711613bf65738613bd0565b60648f8c519062461bcd60e51b82526004820152601a60248201527f4d756c7469706c652076616c6964207375626d697373696f6e730000000000006044820152fd5b905038613bca565b9599508995613bbe565b92915050613bd4565b855162461bcd60e51b8152600481018b9052601a60248201527f5265736f6c7574696f6e2077696e646f77206e6f74206f7665720000000000006044820152606490fd5b94849894935060039250613cac91506134d0565b9054868652600e855283862091831b1c6001600160a01b039081168087529185529290942001541615613ce55750613856929350614538565b60649085519062461bcd60e51b82526004820152600d60248201526c4e6f207375626d69747465727360981b6044820152fd5b825162461bcd60e51b815260206004820152601260248201527121b430b63632b733b2903737ba1037bb32b960711b6044820152606490fd5b9190820180921161317157565b6001600160401b03908160015460a01c1690818382161115613d8757600c918391031606161590565b505050600090565b60ff6000805160206150918339815191525416613da857565b60405163d93c066560e01b8152600490fd5b91906000926000915b808310613dcf57505050565b909193613dea600191613de3878587613744565b3590613d51565b94019190613dc3565b6001600160401b03811161198b5760051b60200190565b90613e1482613df3565b613e216040519182613571565b8281528092613e32601f1991613df3565b0190602036910137565b80518210156134e55760209160051b010190565b939291909382156140785782851061403f57613e6b83613e0a565b9260005b818110613fb55750505050809192509051918215613f845791905b600180831115613f735780830180841161317157811c92613eaa84613e0a565b9260005b858110613ebe5750505050613e8a565b80841b6001600160ff1b038216820361317157613edb8184613e3c565b51908581018091116131715760009085811015613f6d57613efd915084613e3c565b515b60409182516020928382019283528482015283815260608101908082106001600160401b0383111761198b5781613f3f60009482885283519283916135fc565b8101039060025afa15613f6357508390600051613f5c8288613e3c565b5201613eae565b513d6000823e3d90fd5b50613eff565b5090508051156134e5576020015190565b60405162461bcd60e51b81526020600482015260096024820152686e6f206c656176657360b81b6044820152606490fd5b613fc3612000828986613744565b613fce828487613744565b3590600061401a6040938451602094858201926001600160401b0360c01b918260c091821b1685521b1660288201526010815261400a81613556565b85519283928392519283916135fc565b8101039060025afa15613f6357506001906000516140388288613e3c565b5201613e6f565b60405162461bcd60e51b81526020600482015260116024820152701a5b99195e195cc81d1bdbc81cda1bdc9d607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d656d7074792062616c616e63657360901b6044820152606490fd5b6001600160401b0390818060015460a01c1691168181106140db5703908082116131715761018091160490565b60405162461bcd60e51b815260206004820152600660248201526562616420747360d01b6044820152606490fd5b600160ff1b81146131715760000390565b6000805160206150b183398151915260028154146141385760029055565b604051633ee5aeb560e01b8152600490fd5b3d15614175573d9061415b82613592565b916141696040519384613571565b82523d6000602084013e565b606090565b6000805160206150718339815191528054909290916001600160a01b03808416926004811061023c57600080604094855194602086019163b700961360e01b8352169485602482015230604482015263ffffffff60e01b84351660648201526064815260a081018181106001600160401b038211176142d85791849188938452828052826020525190895afa6142c7575b1561421a575b50505050505050565b63ffffffff16156142b15760ff60a01b19948516600160a01b178655833b1561023c57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af1908115613f6357506142a2575b50815416905538808080808080614211565b6142ab90613543565b38614290565b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c15029061420b565b634e487b7160e01b85526041600452602485fd5b91909180548310156134e557600052601860206000208360021c019260031b1690565b90600c82019182549260005b84811061432c575050505050600090565b61433681836142ec565b6001600160401b0391549160039281881692841b1c161461435a575060010161431b565b94509161436c9350600d9150016134fb565b9054911b1c90565b903590601e198136030182121561023c57018035906001600160401b03821161023c57602001918160051b3603831361023c57565b81835290916001600160fb1b03831161023c5760209260051b809284830137010190565b73__$d69645fbc90682499a7586bfd77d6f89d8$__906143ec81613754565b6143f96020830183614374565b90936144086060850185614374565b95909260a086019561441987613754565b95843b1561023c57600096608061447e614462986040519c8d9a8b998a9963a362685760e01b8b526001600160401b0380991660048c015260c060248c015260c48b01916143a9565b604088013560448a01528881036003190160648a0152916143a9565b93013560848501521660a483015203915af4918215611bcf576136c0926144a6575b50613754565b6144af90613543565b386144a0565b9060005b82548110156144f3576144cc81846142ec565b906001600160401b0390548185169260031b1c16146144ed576001016144b9565b91505090565b60405162461bcd60e51b815260206004820152601a60248201527f76616c496e646578206e6f7420696e20616374697665207365740000000000006044820152606490fd5b6000929091906001600160a01b03831615614c47576001600160401b0382168452600e602090815260408086206001600160a01b038681168852925285206003810154909291811615614c0a576145a4906001600160401b038060055460401c169160a01c16146139a2565b600160ff19600754161760075560048201546001600160401b038116908115801590614bf5575b614b83575b5050846001600160401b03600484015460801c1680614b1f575b50506145fd600d546001840154906137ff565b91858312614aeb5782600d556001810154868113600014614a62575060018060a01b038654166001820154633b9aca008181810204811482151715614a4e5790829189933b15614a4a5760248492836040519586948593631b870ba760e01b85520260048401525af18015614a3f57614a27575b50509490945b81926001945b6001600160401b0381166001600160401b038716116148c7576001600160401b0386168452600f6020526040842097845b89548110156147f2576146c1818b6134fb565b60018060a01b0391549060031b1c166001600160401b0389168752600e6020526040872081600052602052604060002060018060a01b03600382015416156147e85781885260136020526002600160408a200154910154908082116147e0575b50806147c7575b50906001916001600160401b038a168852600e60205260408820906000526020526147c1600d6040600020600081556000858201556000600282015589600382015589600482015560006005820155600060068201556000600782015589600882015561479760098201613832565b6147a3600a8201613832565b6147af600b820161388c565b6147bb600c820161388c565b01613832565b016146ae565b81986147d7828d60019695614e40565b01979091614728565b905038614721565b50506001906147c1565b5091969492909397506001600160401b0386168852600f602052604088208054898255806148ab575b50506001600160401b0386168852601560205260408820965b87541561486b57614865614847896134d0565b90549060031b1c808b5260028a01602052600060408c205589614f94565b50614834565b9193956001600160401b039193959750166001600160401b03811461489757929660019093019461467d565b634e487b7160e01b88526011600452602488fd5b6148c09160005260206000209081019061381b565b388061481b565b5092949093506001600160401b03600385015460a01c16916001850154938554906040519560a08701958787106001600160401b0388111761198b578360807fe682b5acd06a8bafeaeacd838c895ebb4f71a55bdc48399583f654d28bb225cf996040998a52838152846020820152858a82015260018060a01b038916606082015201526001600160401b03196008541617600855600955600a5560018060a01b0383166bffffffffffffffffffffffff60a01b600b541617600b55600c5560055490600254906001600160801b03199167ffffffffffffffff60401b841690836001600160401b03861691161717600255600654600355600754916004549368ffffffffffffffffff199468ffffffffffffffff008516908660ff80881615151691161717600455166005556006551660075560016001600160401b03600386015460a01c169401548251958652602086015260018060a01b031693a3565b614a3090613543565b614a3b578538614671565b8580fd5b6040513d84823e3d90fd5b8380fd5b634e487b7160e01b89526011600452602489fd5b868112614a73575b50949094614677565b86546001600160a01b031690614a8890614109565b633b9aca008181810204811482151715614a4e5790829189933b15614a4a57602484928360405195869485936371cfd2e960e11b85520260048401525af18015614a3f57614ad7575b50614a6a565b614ae090613543565b614a3b578538614ad1565b60405162461bcd60e51b815260206004820152600c60248201526b54564c206e6567617469766560a01b6044820152606490fd5b6001546001600160a01b0316803b15614b7f57602483926040519485938492632798c82360e01b845260048401525af18015614b7457614b61575b85906145ea565b614b6d90959195613543565b9338614b5a565b6040513d88823e3d90fd5b8280fd5b60015460408051632198ef3160e21b81526001600160401b03948516600482015292811c9093166024830152909190829060449082908a906001600160a01b03165af18015614b7457614bd7575b806145d0565b614bef9060403d604011611bc857611bb98183613571565b50614bd1565b506001600160401b038160401c1615156145cb565b60405162461bcd60e51b81526020600482015260156024820152742130b2103bb4b73732b91039bab136b4b9b9b4b7b760591b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f057696e6e6572206164647265737320360841b6044820152606490fd5b60008051602061507183398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b916001926001831115614d6c5760015b838110614cf6575050505050565b614d04612000828685613744565b6000198201828111614d575761200090614d296001600160401b039283928988613744565b1691161115614d39578401614ce8565b60405162461bcd60e51b815280614d53856004830161361f565b0390fd5b60246000634e487b7160e01b81526011600452fd5b50505050565b805115614d8157602081519101fd5b60405163d6bda27560e01b8152600490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615614dc257565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215614e12575b50506108dd57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880614e0a565b9160018060a01b03809316908160005260136020526001604060002001938454938215614ed7577f9b3fd5a866dbcaa7a24245289bd117318de3bb1014fb8bdcdd71b038a3b4542b95856060968511614ecf575b84614e9e9161391c565b9055168060005260136020526040600020614eba838254613d51565b905560405192835260208301526040820152a1565b935083614e94565b505050505050565b6000828152600182016020526040902054614f4657805490600160401b82101561198b5782614f2f614f188460018096018555846134fb565b819391549060031b91821b91600019901b19161790565b905580549260005201602052604060002055600190565b5050600090565b90614f585750614d72565b81511580614f8b575b614f69575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15614f61565b9060018201906000928184528260205260408420549081151560001461506957600019918083018181116150555782549084820191821161489757818103615020575b5050508054801561500c57820191614fef83836134fb565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b615040615030614f1893866134fb565b90549060031b1c928392866134fb565b90558652846020526040862055388080614fd7565b634e487b7160e01b87526011600452602487fd5b505050509056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122035229677e3002ec1fdd1c82b55719f6c6ecfbc0147121eb82dbd2126a843851e64736f6c63430008190033",
1348
+ "linkReferences": {
1349
+ "contracts/liqEth/BeaconState.sol": {
1350
+ "BeaconState": [
1351
+ {
1352
+ "length": 20,
1353
+ "start": 11276
1354
+ },
1355
+ {
1356
+ "length": 20,
1357
+ "start": 17451
1358
+ }
1359
+ ]
1360
+ }
1361
+ },
1362
+ "deployedLinkReferences": {
1363
+ "contracts/liqEth/BeaconState.sol": {
1364
+ "BeaconState": [
1365
+ {
1366
+ "length": 20,
1367
+ "start": 11184
1368
+ },
1369
+ {
1370
+ "length": 20,
1371
+ "start": 17359
1372
+ }
1373
+ ]
1374
+ }
1375
+ }
813
1376
  }