@ensuro/core 1.2.7 → 2.0.0-beta10

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 (109) hide show
  1. package/README.md +63 -27
  2. package/build/contracts/AccessManager.sol/AccessManager.json +559 -0
  3. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +219 -0
  4. package/build/contracts/EToken.sol/EToken.json +217 -190
  5. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +17 -4
  6. package/build/contracts/{extras/IPriceRiskModule.sol/IPriceRiskModule.json → LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json} +81 -131
  7. package/build/contracts/Policy.sol/Policy.json +2 -2
  8. package/build/contracts/PolicyPool.sol/PolicyPool.json +425 -295
  9. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +15 -2
  10. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +868 -0
  11. package/build/contracts/{BaseAssetManager.sol/BaseAssetManager.json → Reserve.sol/Reserve.json} +37 -166
  12. package/build/contracts/RiskModule.sol/RiskModule.json +85 -312
  13. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +960 -0
  14. package/build/contracts/{DataTypes.sol/DataTypes.json → TimeScaled.sol/TimeScaled.json} +4 -4
  15. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +134 -336
  16. package/build/contracts/dependencies/ERC1967Proxy.sol/ERC1967Proxy.json +64 -0
  17. package/build/{interfaces/IExchange.sol/IExchange.json → contracts/dependencies/IERC20Metadata.sol/IERC20Metadata.json} +83 -79
  18. package/build/contracts/{WadRayMath.sol → dependencies/WadRayMath.sol}/WadRayMath.json +3 -3
  19. package/build/{interfaces/IPolicyPoolConfig.sol/IPolicyPoolConfig.json → contracts/interfaces/IAccessManager.sol/IAccessManager.json} +79 -77
  20. package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +109 -0
  21. package/build/{interfaces → contracts/interfaces}/IEToken.sol/IEToken.json +39 -91
  22. package/build/{interfaces → contracts/interfaces}/ILPWhitelist.sol/ILPWhitelist.json +1 -1
  23. package/build/{interfaces → contracts/interfaces}/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  24. package/build/{interfaces → contracts/interfaces}/IPolicyPool.sol/IPolicyPool.json +137 -100
  25. package/build/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +1 -1
  26. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +315 -0
  27. package/build/{interfaces → contracts/interfaces}/IRiskModule.sol/IRiskModule.json +58 -34
  28. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
  29. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  30. package/build/{interfaces/IInsolvencyHook.sol/IInsolvencyHook.json → contracts/mocks/IMintableERC20.sol/IMintableERC20.json} +13 -8
  31. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +228 -0
  32. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +35 -0
  33. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +702 -0
  34. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  35. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +764 -0
  36. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  37. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  38. package/contracts/AccessManager.sol +103 -0
  39. package/contracts/ERC4626AssetManager.sol +52 -0
  40. package/contracts/EToken.sol +254 -299
  41. package/contracts/LPManualWhitelist.sol +4 -4
  42. package/contracts/LiquidityThresholdAssetManager.sol +160 -0
  43. package/contracts/Policy.sol +49 -45
  44. package/contracts/PolicyPool.sol +379 -514
  45. package/contracts/PolicyPoolComponent.sol +41 -41
  46. package/contracts/PremiumsAccount.sol +480 -0
  47. package/contracts/Reserve.sol +213 -0
  48. package/contracts/RiskModule.sol +233 -174
  49. package/contracts/SignedQuoteRiskModule.sol +241 -0
  50. package/contracts/TimeScaled.sol +138 -0
  51. package/contracts/TrustfulRiskModule.sol +85 -23
  52. package/contracts/dependencies/ERC1967Proxy.sol +19 -0
  53. package/contracts/dependencies/IERC20Metadata.sol +19 -0
  54. package/contracts/dependencies/WadRayMath.sol +126 -0
  55. package/contracts/interfaces/IAccessManager.sol +148 -0
  56. package/contracts/interfaces/IAssetManager.sol +84 -0
  57. package/contracts/interfaces/IEToken.sol +195 -0
  58. package/contracts/interfaces/ILPWhitelist.sol +40 -0
  59. package/{interfaces → contracts/interfaces}/IPolicyHolder.sol +0 -0
  60. package/contracts/interfaces/IPolicyPool.sol +145 -0
  61. package/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol +3 -0
  62. package/contracts/interfaces/IPremiumsAccount.sol +76 -0
  63. package/contracts/interfaces/IRiskModule.sol +123 -0
  64. package/contracts/mocks/FixedRateVault.sol +85 -0
  65. package/contracts/mocks/ForwardProxy.sol +66 -0
  66. package/contracts/mocks/IMintableERC20.sol +13 -0
  67. package/contracts/mocks/PolicyHolderMock.sol +89 -0
  68. package/contracts/mocks/PolicyPoolComponentMock.sol +17 -0
  69. package/contracts/mocks/PolicyPoolMock.sol +148 -0
  70. package/contracts/mocks/RiskModuleMock.sol +75 -0
  71. package/contracts/mocks/TestCurrency.sol +35 -0
  72. package/contracts/mocks/TestNFT.sol +23 -0
  73. package/js/test-utils.js +356 -0
  74. package/package.json +2 -2
  75. package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +0 -742
  76. package/build/contracts/Exchange.sol/Exchange.json +0 -591
  77. package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +0 -1112
  78. package/build/contracts/PolicyNFT.sol/PolicyNFT.json +0 -570
  79. package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +0 -686
  80. package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +0 -50
  81. package/build/contracts/extras/PriceRiskModule.sol/PriceRiskModule.json +0 -1055
  82. package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +0 -322
  83. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +0 -571
  84. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +0 -602
  85. package/build/interfaces/IAssetManager.sol/IAssetManager.json +0 -31
  86. package/build/interfaces/IExchange.sol/IPriceOracle.json +0 -30
  87. package/build/interfaces/IPolicyNFT.sol/IPolicyNFT.json +0 -321
  88. package/contracts/AaveAssetManager.sol +0 -298
  89. package/contracts/BaseAssetManager.sol +0 -301
  90. package/contracts/DataTypes.sol +0 -287
  91. package/contracts/Exchange.sol +0 -189
  92. package/contracts/FlightDelayRiskModule.sol +0 -208
  93. package/contracts/PolicyNFT.sol +0 -96
  94. package/contracts/PolicyPoolConfig.sol +0 -247
  95. package/contracts/WadRayMath.sol +0 -135
  96. package/contracts/dependencies/ChainlinkClientUpgradeable.sol +0 -371
  97. package/contracts/extras/IPriceRiskModule.sol +0 -41
  98. package/contracts/extras/PriceRiskModule.sol +0 -243
  99. package/contracts/upgraded/IPolicyNFTv1.sol +0 -15
  100. package/contracts/upgraded/PolicyNFTv1.sol +0 -126
  101. package/interfaces/IAssetManager.sol +0 -23
  102. package/interfaces/IEToken.sol +0 -48
  103. package/interfaces/IExchange.sol +0 -59
  104. package/interfaces/IInsolvencyHook.sol +0 -27
  105. package/interfaces/ILPWhitelist.sol +0 -23
  106. package/interfaces/IPolicyNFT.sol +0 -15
  107. package/interfaces/IPolicyPool.sol +0 -44
  108. package/interfaces/IPolicyPoolConfig.sol +0 -87
  109. package/interfaces/IRiskModule.sol +0 -29
@@ -0,0 +1,559 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AccessManager",
4
+ "sourceName": "contracts/AccessManager.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "previousAdmin",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "address",
18
+ "name": "newAdmin",
19
+ "type": "address"
20
+ }
21
+ ],
22
+ "name": "AdminChanged",
23
+ "type": "event"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "beacon",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "BeaconUpgraded",
36
+ "type": "event"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "uint8",
44
+ "name": "version",
45
+ "type": "uint8"
46
+ }
47
+ ],
48
+ "name": "Initialized",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": true,
56
+ "internalType": "bytes32",
57
+ "name": "role",
58
+ "type": "bytes32"
59
+ },
60
+ {
61
+ "indexed": true,
62
+ "internalType": "bytes32",
63
+ "name": "previousAdminRole",
64
+ "type": "bytes32"
65
+ },
66
+ {
67
+ "indexed": true,
68
+ "internalType": "bytes32",
69
+ "name": "newAdminRole",
70
+ "type": "bytes32"
71
+ }
72
+ ],
73
+ "name": "RoleAdminChanged",
74
+ "type": "event"
75
+ },
76
+ {
77
+ "anonymous": false,
78
+ "inputs": [
79
+ {
80
+ "indexed": true,
81
+ "internalType": "bytes32",
82
+ "name": "role",
83
+ "type": "bytes32"
84
+ },
85
+ {
86
+ "indexed": true,
87
+ "internalType": "address",
88
+ "name": "account",
89
+ "type": "address"
90
+ },
91
+ {
92
+ "indexed": true,
93
+ "internalType": "address",
94
+ "name": "sender",
95
+ "type": "address"
96
+ }
97
+ ],
98
+ "name": "RoleGranted",
99
+ "type": "event"
100
+ },
101
+ {
102
+ "anonymous": false,
103
+ "inputs": [
104
+ {
105
+ "indexed": true,
106
+ "internalType": "bytes32",
107
+ "name": "role",
108
+ "type": "bytes32"
109
+ },
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "account",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "sender",
120
+ "type": "address"
121
+ }
122
+ ],
123
+ "name": "RoleRevoked",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "address",
132
+ "name": "implementation",
133
+ "type": "address"
134
+ }
135
+ ],
136
+ "name": "Upgraded",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "inputs": [],
141
+ "name": "DEFAULT_ADMIN_ROLE",
142
+ "outputs": [
143
+ {
144
+ "internalType": "bytes32",
145
+ "name": "",
146
+ "type": "bytes32"
147
+ }
148
+ ],
149
+ "stateMutability": "view",
150
+ "type": "function"
151
+ },
152
+ {
153
+ "inputs": [],
154
+ "name": "GUARDIAN_ROLE",
155
+ "outputs": [
156
+ {
157
+ "internalType": "bytes32",
158
+ "name": "",
159
+ "type": "bytes32"
160
+ }
161
+ ],
162
+ "stateMutability": "view",
163
+ "type": "function"
164
+ },
165
+ {
166
+ "inputs": [],
167
+ "name": "LEVEL1_ROLE",
168
+ "outputs": [
169
+ {
170
+ "internalType": "bytes32",
171
+ "name": "",
172
+ "type": "bytes32"
173
+ }
174
+ ],
175
+ "stateMutability": "view",
176
+ "type": "function"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "LEVEL2_ROLE",
181
+ "outputs": [
182
+ {
183
+ "internalType": "bytes32",
184
+ "name": "",
185
+ "type": "bytes32"
186
+ }
187
+ ],
188
+ "stateMutability": "view",
189
+ "type": "function"
190
+ },
191
+ {
192
+ "inputs": [],
193
+ "name": "LEVEL3_ROLE",
194
+ "outputs": [
195
+ {
196
+ "internalType": "bytes32",
197
+ "name": "",
198
+ "type": "bytes32"
199
+ }
200
+ ],
201
+ "stateMutability": "view",
202
+ "type": "function"
203
+ },
204
+ {
205
+ "inputs": [
206
+ {
207
+ "internalType": "address",
208
+ "name": "component",
209
+ "type": "address"
210
+ },
211
+ {
212
+ "internalType": "bytes32",
213
+ "name": "role",
214
+ "type": "bytes32"
215
+ },
216
+ {
217
+ "internalType": "address",
218
+ "name": "account",
219
+ "type": "address"
220
+ },
221
+ {
222
+ "internalType": "bool",
223
+ "name": "alsoGlobal",
224
+ "type": "bool"
225
+ }
226
+ ],
227
+ "name": "checkComponentRole",
228
+ "outputs": [],
229
+ "stateMutability": "view",
230
+ "type": "function"
231
+ },
232
+ {
233
+ "inputs": [
234
+ {
235
+ "internalType": "address",
236
+ "name": "component",
237
+ "type": "address"
238
+ },
239
+ {
240
+ "internalType": "bytes32",
241
+ "name": "role1",
242
+ "type": "bytes32"
243
+ },
244
+ {
245
+ "internalType": "bytes32",
246
+ "name": "role2",
247
+ "type": "bytes32"
248
+ },
249
+ {
250
+ "internalType": "address",
251
+ "name": "account",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "internalType": "bool",
256
+ "name": "alsoGlobal",
257
+ "type": "bool"
258
+ }
259
+ ],
260
+ "name": "checkComponentRole2",
261
+ "outputs": [],
262
+ "stateMutability": "view",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "inputs": [
267
+ {
268
+ "internalType": "bytes32",
269
+ "name": "role",
270
+ "type": "bytes32"
271
+ },
272
+ {
273
+ "internalType": "address",
274
+ "name": "account",
275
+ "type": "address"
276
+ }
277
+ ],
278
+ "name": "checkRole",
279
+ "outputs": [],
280
+ "stateMutability": "view",
281
+ "type": "function"
282
+ },
283
+ {
284
+ "inputs": [
285
+ {
286
+ "internalType": "bytes32",
287
+ "name": "role1",
288
+ "type": "bytes32"
289
+ },
290
+ {
291
+ "internalType": "bytes32",
292
+ "name": "role2",
293
+ "type": "bytes32"
294
+ },
295
+ {
296
+ "internalType": "address",
297
+ "name": "account",
298
+ "type": "address"
299
+ }
300
+ ],
301
+ "name": "checkRole2",
302
+ "outputs": [],
303
+ "stateMutability": "view",
304
+ "type": "function"
305
+ },
306
+ {
307
+ "inputs": [
308
+ {
309
+ "internalType": "address",
310
+ "name": "component",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "internalType": "bytes32",
315
+ "name": "role",
316
+ "type": "bytes32"
317
+ }
318
+ ],
319
+ "name": "getComponentRole",
320
+ "outputs": [
321
+ {
322
+ "internalType": "bytes32",
323
+ "name": "",
324
+ "type": "bytes32"
325
+ }
326
+ ],
327
+ "stateMutability": "pure",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [
332
+ {
333
+ "internalType": "bytes32",
334
+ "name": "role",
335
+ "type": "bytes32"
336
+ }
337
+ ],
338
+ "name": "getRoleAdmin",
339
+ "outputs": [
340
+ {
341
+ "internalType": "bytes32",
342
+ "name": "",
343
+ "type": "bytes32"
344
+ }
345
+ ],
346
+ "stateMutability": "view",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "address",
353
+ "name": "component",
354
+ "type": "address"
355
+ },
356
+ {
357
+ "internalType": "bytes32",
358
+ "name": "role",
359
+ "type": "bytes32"
360
+ },
361
+ {
362
+ "internalType": "address",
363
+ "name": "account",
364
+ "type": "address"
365
+ }
366
+ ],
367
+ "name": "grantComponentRole",
368
+ "outputs": [],
369
+ "stateMutability": "nonpayable",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [
374
+ {
375
+ "internalType": "bytes32",
376
+ "name": "role",
377
+ "type": "bytes32"
378
+ },
379
+ {
380
+ "internalType": "address",
381
+ "name": "account",
382
+ "type": "address"
383
+ }
384
+ ],
385
+ "name": "grantRole",
386
+ "outputs": [],
387
+ "stateMutability": "nonpayable",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [
392
+ {
393
+ "internalType": "address",
394
+ "name": "component",
395
+ "type": "address"
396
+ },
397
+ {
398
+ "internalType": "bytes32",
399
+ "name": "role",
400
+ "type": "bytes32"
401
+ },
402
+ {
403
+ "internalType": "address",
404
+ "name": "account",
405
+ "type": "address"
406
+ },
407
+ {
408
+ "internalType": "bool",
409
+ "name": "alsoGlobal",
410
+ "type": "bool"
411
+ }
412
+ ],
413
+ "name": "hasComponentRole",
414
+ "outputs": [
415
+ {
416
+ "internalType": "bool",
417
+ "name": "",
418
+ "type": "bool"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [
426
+ {
427
+ "internalType": "bytes32",
428
+ "name": "role",
429
+ "type": "bytes32"
430
+ },
431
+ {
432
+ "internalType": "address",
433
+ "name": "account",
434
+ "type": "address"
435
+ }
436
+ ],
437
+ "name": "hasRole",
438
+ "outputs": [
439
+ {
440
+ "internalType": "bool",
441
+ "name": "",
442
+ "type": "bool"
443
+ }
444
+ ],
445
+ "stateMutability": "view",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [],
450
+ "name": "initialize",
451
+ "outputs": [],
452
+ "stateMutability": "nonpayable",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [],
457
+ "name": "proxiableUUID",
458
+ "outputs": [
459
+ {
460
+ "internalType": "bytes32",
461
+ "name": "",
462
+ "type": "bytes32"
463
+ }
464
+ ],
465
+ "stateMutability": "view",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [
470
+ {
471
+ "internalType": "bytes32",
472
+ "name": "role",
473
+ "type": "bytes32"
474
+ },
475
+ {
476
+ "internalType": "address",
477
+ "name": "account",
478
+ "type": "address"
479
+ }
480
+ ],
481
+ "name": "renounceRole",
482
+ "outputs": [],
483
+ "stateMutability": "nonpayable",
484
+ "type": "function"
485
+ },
486
+ {
487
+ "inputs": [
488
+ {
489
+ "internalType": "bytes32",
490
+ "name": "role",
491
+ "type": "bytes32"
492
+ },
493
+ {
494
+ "internalType": "address",
495
+ "name": "account",
496
+ "type": "address"
497
+ }
498
+ ],
499
+ "name": "revokeRole",
500
+ "outputs": [],
501
+ "stateMutability": "nonpayable",
502
+ "type": "function"
503
+ },
504
+ {
505
+ "inputs": [
506
+ {
507
+ "internalType": "bytes4",
508
+ "name": "interfaceId",
509
+ "type": "bytes4"
510
+ }
511
+ ],
512
+ "name": "supportsInterface",
513
+ "outputs": [
514
+ {
515
+ "internalType": "bool",
516
+ "name": "",
517
+ "type": "bool"
518
+ }
519
+ ],
520
+ "stateMutability": "view",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "address",
527
+ "name": "newImplementation",
528
+ "type": "address"
529
+ }
530
+ ],
531
+ "name": "upgradeTo",
532
+ "outputs": [],
533
+ "stateMutability": "nonpayable",
534
+ "type": "function"
535
+ },
536
+ {
537
+ "inputs": [
538
+ {
539
+ "internalType": "address",
540
+ "name": "newImplementation",
541
+ "type": "address"
542
+ },
543
+ {
544
+ "internalType": "bytes",
545
+ "name": "data",
546
+ "type": "bytes"
547
+ }
548
+ ],
549
+ "name": "upgradeToAndCall",
550
+ "outputs": [],
551
+ "stateMutability": "payable",
552
+ "type": "function"
553
+ }
554
+ ],
555
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161175a61004c600039600081816105a6015281816105e60152818161069e015281816106de015261076d015261175a6000f3fe6080604052600436106101355760003560e01c806352d1902d116100ab578063a217fddf1161006f578063a217fddf14610388578063b3efcbd21461039d578063c5b8f5cf146103bd578063d547741f146103dd578063f67b2bad146103fd578063f6a421fc1461043157600080fd5b806352d1902d146102ea5780635b494dd5146102ff5780635ff57d20146103335780638129fc1c1461035357806391d148541461036857600080fd5b80632f2ff15d116100fd5780632f2ff15d1461022357806336568abe146102435780633659cfe614610263578063374c96c8146102835780634a47a3e0146102a35780634f1ef286146102d757600080fd5b806301ffc9a71461013a57806312d9a6ad1461016f578063248a9ca31461019157806324ea54f4146101cf5780632b1cff1f14610203575b600080fd5b34801561014657600080fd5b5061015a6101553660046111bd565b610451565b60405190151581526020015b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611203565b610488565b005b34801561019d57600080fd5b506101c16101ac36600461122f565b60009081526065602052604090206001015490565b604051908152602001610166565b3480156101db57600080fd5b506101c17f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b34801561020f57600080fd5b5061018f61021e366004611258565b610496565b34801561022f57600080fd5b5061018f61023e366004611203565b6104f3565b34801561024f57600080fd5b5061018f61025e366004611203565b61051d565b34801561026f57600080fd5b5061018f61027e3660046112af565b61059c565b34801561028f57600080fd5b506101c161029e3660046112ca565b61067b565b3480156102af57600080fd5b506101c17fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61018f6102e536600461130a565b610694565b3480156102f657600080fd5b506101c1610760565b34801561030b57600080fd5b506101c17f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561033f57600080fd5b5061018f61034e3660046113cc565b610813565b34801561035f57600080fd5b5061018f61083f565b34801561037457600080fd5b5061015a610383366004611203565b610918565b34801561039457600080fd5b506101c1600081565b3480156103a957600080fd5b5061015a6103b83660046113cc565b610943565b3480156103c957600080fd5b5061018f6103d8366004611419565b610979565b3480156103e957600080fd5b5061018f6103f8366004611203565b610991565b34801561040957600080fd5b506101c17fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b34801561043d57600080fd5b5061018f61044c36600461144e565b6109b6565b60006001600160e01b03198216637965db0b60e01b148061048257506301ffc9a760e01b6001600160e01b03198316145b92915050565b61049282826109df565b5050565b8080156104a857506104a88483610918565b6104ec576104bf6104b9868661067b565b83610918565b6104ec578080156104d557506104d58383610918565b6104ec576104ec6104e6868561067b565b836109df565b5050505050565b60008281526065602052604090206001015461050e81610a43565b6105188383610a4d565b505050565b6001600160a01b03811633146105925760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104928282610ad3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105e45760405162461bcd60e51b815260040161058990611481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661062d6000805160206116de833981519152546001600160a01b031690565b6001600160a01b0316146106535760405162461bcd60e51b8152600401610589906114cd565b61065c81610b3a565b6040805160008082526020820190925261067891839190610b94565b50565b60609190911b6bffffffffffffffffffffffff19161890565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106dc5760405162461bcd60e51b815260040161058990611481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107256000805160206116de833981519152546001600160a01b031690565b6001600160a01b03161461074b5760405162461bcd60e51b8152600401610589906114cd565b61075482610b3a565b61049282826001610b94565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108005760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610589565b506000805160206116de83398151915290565b80158061082757506108258383610918565b155b15610839576108396104e6858561067b565b50505050565b600054610100900460ff161580801561085f5750600054600160ff909116105b806108795750303b158015610879575060005460ff166001145b6108955760405162461bcd60e51b815260040161058990611519565b6000805460ff1916600117905580156108b8576000805461ff0019166101001790555b6108c0610cff565b6108c8610cff565b6108d0610d6c565b8015610678576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600081801561095757506109578484610918565b80610970575061097061096a868661067b565b84610918565b95945050505050565b6109838382610918565b6105185761051882826109df565b6000828152606560205260409020600101546109ac81610a43565b6105188383610ad3565b6109c36101ac848461067b565b6109cc81610a43565b6108396109d9858561067b565b83610a4d565b6109e98282610918565b61049257610a01816001600160a01b03166014610df0565b610a0c836020610df0565b604051602001610a1d92919061158b565b60408051601f198184030181529082905262461bcd60e51b825261058991600401611600565b61067881336109df565b610a578282610918565b6104925760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a8f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610add8282610918565b156104925760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2610b868233610918565b6105185761051881336109df565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610bc75761051883610f93565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c21575060408051601f3d908101601f19168201909252610c1e91810190611633565b60015b610c845760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610589565b6000805160206116de8339815191528114610cf35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610589565b5061051883838361102f565b600054610100900460ff16610d6a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610589565b565b600054610100900460ff1615808015610d8c5750600054600160ff909116105b80610da65750303b158015610da6575060005460ff166001145b610dc25760405162461bcd60e51b815260040161058990611519565b6000805460ff191660011790558015610de5576000805461ff0019166101001790555b6108d0600033611054565b60606000610dff836002611662565b610e0a906002611681565b67ffffffffffffffff811115610e2257610e226112f4565b6040519080825280601f01601f191660200182016040528015610e4c576020820181803683370190505b509050600360fc1b81600081518110610e6757610e67611694565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610e9657610e96611694565b60200101906001600160f81b031916908160001a9053506000610eba846002611662565b610ec5906001611681565b90505b6001811115610f3d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610ef957610ef9611694565b1a60f81b828281518110610f0f57610f0f611694565b60200101906001600160f81b031916908160001a90535060049490941c93610f36816116aa565b9050610ec8565b508315610f8c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610589565b9392505050565b6001600160a01b0381163b6110005760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610589565b6000805160206116de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6110388361105e565b6000825111806110455750805b1561051857610839838361109e565b6104928282610a4d565b61106781610f93565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6111065760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610589565b600080846001600160a01b03168460405161112191906116c1565b600060405180830381855af49150503d806000811461115c576040519150601f19603f3d011682016040523d82523d6000602084013e611161565b606091505b509150915061097082826040518060600160405280602781526020016116fe6027913960608315611193575081610f8c565b8251156111a35782518084602001fd5b8160405162461bcd60e51b81526004016105899190611600565b6000602082840312156111cf57600080fd5b81356001600160e01b031981168114610f8c57600080fd5b80356001600160a01b03811681146111fe57600080fd5b919050565b6000806040838503121561121657600080fd5b82359150611226602084016111e7565b90509250929050565b60006020828403121561124157600080fd5b5035919050565b803580151581146111fe57600080fd5b600080600080600060a0868803121561127057600080fd5b611279866111e7565b94506020860135935060408601359250611295606087016111e7565b91506112a360808701611248565b90509295509295909350565b6000602082840312156112c157600080fd5b610f8c826111e7565b600080604083850312156112dd57600080fd5b6112e6836111e7565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561131d57600080fd5b611326836111e7565b9150602083013567ffffffffffffffff8082111561134357600080fd5b818501915085601f83011261135757600080fd5b813581811115611369576113696112f4565b604051601f8201601f19908116603f01168101908382118183101715611391576113916112f4565b816040528281528860208487010111156113aa57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080608085870312156113e257600080fd5b6113eb856111e7565b935060208501359250611400604086016111e7565b915061140e60608601611248565b905092959194509250565b60008060006060848603121561142e57600080fd5b8335925060208401359150611445604085016111e7565b90509250925092565b60008060006060848603121561146357600080fd5b61146c846111e7565b925060208401359150611445604085016111e7565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60005b8381101561158257818101518382015260200161156a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516115c3816017850160208801611567565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516115f4816028840160208801611567565b01602801949350505050565b602081526000825180602084015261161f816040850160208701611567565b601f01601f19169190910160400192915050565b60006020828403121561164557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561167c5761167c61164c565b500290565b808201808211156104825761048261164c565b634e487b7160e01b600052603260045260246000fd5b6000816116b9576116b961164c565b506000190190565b600082516116d3818460208701611567565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ee0d8053bb608ae88edc70ba069ed8bc5a916e28dcebd34fc917a4e788822ccf64736f6c63430008100033",
556
+ "deployedBytecode": "0x6080604052600436106101355760003560e01c806352d1902d116100ab578063a217fddf1161006f578063a217fddf14610388578063b3efcbd21461039d578063c5b8f5cf146103bd578063d547741f146103dd578063f67b2bad146103fd578063f6a421fc1461043157600080fd5b806352d1902d146102ea5780635b494dd5146102ff5780635ff57d20146103335780638129fc1c1461035357806391d148541461036857600080fd5b80632f2ff15d116100fd5780632f2ff15d1461022357806336568abe146102435780633659cfe614610263578063374c96c8146102835780634a47a3e0146102a35780634f1ef286146102d757600080fd5b806301ffc9a71461013a57806312d9a6ad1461016f578063248a9ca31461019157806324ea54f4146101cf5780632b1cff1f14610203575b600080fd5b34801561014657600080fd5b5061015a6101553660046111bd565b610451565b60405190151581526020015b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611203565b610488565b005b34801561019d57600080fd5b506101c16101ac36600461122f565b60009081526065602052604090206001015490565b604051908152602001610166565b3480156101db57600080fd5b506101c17f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b34801561020f57600080fd5b5061018f61021e366004611258565b610496565b34801561022f57600080fd5b5061018f61023e366004611203565b6104f3565b34801561024f57600080fd5b5061018f61025e366004611203565b61051d565b34801561026f57600080fd5b5061018f61027e3660046112af565b61059c565b34801561028f57600080fd5b506101c161029e3660046112ca565b61067b565b3480156102af57600080fd5b506101c17fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61018f6102e536600461130a565b610694565b3480156102f657600080fd5b506101c1610760565b34801561030b57600080fd5b506101c17f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561033f57600080fd5b5061018f61034e3660046113cc565b610813565b34801561035f57600080fd5b5061018f61083f565b34801561037457600080fd5b5061015a610383366004611203565b610918565b34801561039457600080fd5b506101c1600081565b3480156103a957600080fd5b5061015a6103b83660046113cc565b610943565b3480156103c957600080fd5b5061018f6103d8366004611419565b610979565b3480156103e957600080fd5b5061018f6103f8366004611203565b610991565b34801561040957600080fd5b506101c17fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b34801561043d57600080fd5b5061018f61044c36600461144e565b6109b6565b60006001600160e01b03198216637965db0b60e01b148061048257506301ffc9a760e01b6001600160e01b03198316145b92915050565b61049282826109df565b5050565b8080156104a857506104a88483610918565b6104ec576104bf6104b9868661067b565b83610918565b6104ec578080156104d557506104d58383610918565b6104ec576104ec6104e6868561067b565b836109df565b5050505050565b60008281526065602052604090206001015461050e81610a43565b6105188383610a4d565b505050565b6001600160a01b03811633146105925760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104928282610ad3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105e45760405162461bcd60e51b815260040161058990611481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661062d6000805160206116de833981519152546001600160a01b031690565b6001600160a01b0316146106535760405162461bcd60e51b8152600401610589906114cd565b61065c81610b3a565b6040805160008082526020820190925261067891839190610b94565b50565b60609190911b6bffffffffffffffffffffffff19161890565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106dc5760405162461bcd60e51b815260040161058990611481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107256000805160206116de833981519152546001600160a01b031690565b6001600160a01b03161461074b5760405162461bcd60e51b8152600401610589906114cd565b61075482610b3a565b61049282826001610b94565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108005760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610589565b506000805160206116de83398151915290565b80158061082757506108258383610918565b155b15610839576108396104e6858561067b565b50505050565b600054610100900460ff161580801561085f5750600054600160ff909116105b806108795750303b158015610879575060005460ff166001145b6108955760405162461bcd60e51b815260040161058990611519565b6000805460ff1916600117905580156108b8576000805461ff0019166101001790555b6108c0610cff565b6108c8610cff565b6108d0610d6c565b8015610678576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600081801561095757506109578484610918565b80610970575061097061096a868661067b565b84610918565b95945050505050565b6109838382610918565b6105185761051882826109df565b6000828152606560205260409020600101546109ac81610a43565b6105188383610ad3565b6109c36101ac848461067b565b6109cc81610a43565b6108396109d9858561067b565b83610a4d565b6109e98282610918565b61049257610a01816001600160a01b03166014610df0565b610a0c836020610df0565b604051602001610a1d92919061158b565b60408051601f198184030181529082905262461bcd60e51b825261058991600401611600565b61067881336109df565b610a578282610918565b6104925760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a8f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610add8282610918565b156104925760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2610b868233610918565b6105185761051881336109df565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610bc75761051883610f93565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c21575060408051601f3d908101601f19168201909252610c1e91810190611633565b60015b610c845760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610589565b6000805160206116de8339815191528114610cf35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610589565b5061051883838361102f565b600054610100900460ff16610d6a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610589565b565b600054610100900460ff1615808015610d8c5750600054600160ff909116105b80610da65750303b158015610da6575060005460ff166001145b610dc25760405162461bcd60e51b815260040161058990611519565b6000805460ff191660011790558015610de5576000805461ff0019166101001790555b6108d0600033611054565b60606000610dff836002611662565b610e0a906002611681565b67ffffffffffffffff811115610e2257610e226112f4565b6040519080825280601f01601f191660200182016040528015610e4c576020820181803683370190505b509050600360fc1b81600081518110610e6757610e67611694565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610e9657610e96611694565b60200101906001600160f81b031916908160001a9053506000610eba846002611662565b610ec5906001611681565b90505b6001811115610f3d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610ef957610ef9611694565b1a60f81b828281518110610f0f57610f0f611694565b60200101906001600160f81b031916908160001a90535060049490941c93610f36816116aa565b9050610ec8565b508315610f8c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610589565b9392505050565b6001600160a01b0381163b6110005760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610589565b6000805160206116de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6110388361105e565b6000825111806110455750805b1561051857610839838361109e565b6104928282610a4d565b61106781610f93565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6111065760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610589565b600080846001600160a01b03168460405161112191906116c1565b600060405180830381855af49150503d806000811461115c576040519150601f19603f3d011682016040523d82523d6000602084013e611161565b606091505b509150915061097082826040518060600160405280602781526020016116fe6027913960608315611193575081610f8c565b8251156111a35782518084602001fd5b8160405162461bcd60e51b81526004016105899190611600565b6000602082840312156111cf57600080fd5b81356001600160e01b031981168114610f8c57600080fd5b80356001600160a01b03811681146111fe57600080fd5b919050565b6000806040838503121561121657600080fd5b82359150611226602084016111e7565b90509250929050565b60006020828403121561124157600080fd5b5035919050565b803580151581146111fe57600080fd5b600080600080600060a0868803121561127057600080fd5b611279866111e7565b94506020860135935060408601359250611295606087016111e7565b91506112a360808701611248565b90509295509295909350565b6000602082840312156112c157600080fd5b610f8c826111e7565b600080604083850312156112dd57600080fd5b6112e6836111e7565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561131d57600080fd5b611326836111e7565b9150602083013567ffffffffffffffff8082111561134357600080fd5b818501915085601f83011261135757600080fd5b813581811115611369576113696112f4565b604051601f8201601f19908116603f01168101908382118183101715611391576113916112f4565b816040528281528860208487010111156113aa57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080608085870312156113e257600080fd5b6113eb856111e7565b935060208501359250611400604086016111e7565b915061140e60608601611248565b905092959194509250565b60008060006060848603121561142e57600080fd5b8335925060208401359150611445604085016111e7565b90509250925092565b60008060006060848603121561146357600080fd5b61146c846111e7565b925060208401359150611445604085016111e7565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60005b8381101561158257818101518382015260200161156a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516115c3816017850160208801611567565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516115f4816028840160208801611567565b01602801949350505050565b602081526000825180602084015261161f816040850160208701611567565b601f01601f19169190910160400192915050565b60006020828403121561164557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561167c5761167c61164c565b500290565b808201808211156104825761048261164c565b634e487b7160e01b600052603260045260246000fd5b6000816116b9576116b961164c565b506000190190565b600082516116d3818460208701611567565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ee0d8053bb608ae88edc70ba069ed8bc5a916e28dcebd34fc917a4e788822ccf64736f6c63430008100033",
557
+ "linkReferences": {},
558
+ "deployedLinkReferences": {}
559
+ }