@flarenetwork/flare-periphery-contract-artifacts 0.0.1 → 0.0.3

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 (121) hide show
  1. package/dist/coston/deploys/contractAddresses.d.ts +1 -0
  2. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  3. package/dist/coston/deploys/contractAddresses.js +1 -0
  4. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  5. package/dist/coston/deploys/coston.json +5 -0
  6. package/dist/coston/deploys/mapper.d.ts.map +1 -1
  7. package/dist/coston/deploys/mapper.js +6 -2
  8. package/dist/coston/deploys/mapper.js.map +1 -1
  9. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  10. package/dist/coston2/abis.coston2.js +8 -2
  11. package/dist/coston2/abis.coston2.js.map +1 -1
  12. package/dist/coston2/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  13. package/dist/coston2/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  14. package/dist/coston2/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  15. package/dist/coston2/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  16. package/dist/coston2/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  17. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  18. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  19. package/dist/coston2/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  20. package/dist/coston2/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  21. package/dist/coston2/deploys/contractAddresses.d.ts +2 -1
  22. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  23. package/dist/coston2/deploys/contractAddresses.js +5 -4
  24. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  25. package/dist/coston2/deploys/coston2.json +13 -8
  26. package/dist/coston2/deploys/mapper.d.ts.map +1 -1
  27. package/dist/coston2/deploys/mapper.js +6 -2
  28. package/dist/coston2/deploys/mapper.js.map +1 -1
  29. package/dist/flare/abis.flare.d.ts.map +1 -1
  30. package/dist/flare/abis.flare.js +8 -2
  31. package/dist/flare/abis.flare.js.map +1 -1
  32. package/dist/flare/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  33. package/dist/flare/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  34. package/dist/flare/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  35. package/dist/flare/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  36. package/dist/flare/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  37. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  38. package/dist/flare/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  39. package/dist/flare/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  40. package/dist/flare/deploys/contractAddresses.d.ts +2 -1
  41. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  42. package/dist/flare/deploys/contractAddresses.js +5 -4
  43. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  44. package/dist/flare/deploys/flare.json +13 -8
  45. package/dist/flare/deploys/mapper.d.ts.map +1 -1
  46. package/dist/flare/deploys/mapper.js +6 -2
  47. package/dist/flare/deploys/mapper.js.map +1 -1
  48. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  49. package/dist/songbird/abis.songbird.js +52 -4
  50. package/dist/songbird/abis.songbird.js.map +1 -1
  51. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdatable.sol/AddressUpdatable.json +42 -0
  52. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +381 -0
  53. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdatable.sol/IIAddressUpdatable.json +29 -0
  54. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  55. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +1151 -0
  56. package/dist/songbird/artifacts/contracts/claiming/implementation/CloneFactory.sol/CloneFactory.json +10 -0
  57. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +346 -0
  58. package/dist/songbird/artifacts/contracts/claiming/interface/IIClaimSetupManager.sol/IIClaimSetupManager.json +795 -0
  59. package/dist/songbird/artifacts/contracts/claiming/interface/IIDelegationAccount.sol/IIDelegationAccount.json +316 -0
  60. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +175 -26
  61. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +758 -146
  62. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtso.sol/IIFtso.json +162 -20
  63. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManager.sol/IIFtsoManager.json +321 -46
  64. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManagerV1.sol/IIFtsoManagerV1.json +102 -0
  65. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  66. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +43 -0
  67. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  68. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoMedian.sol/FtsoMedian.json +2 -2
  69. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +184 -3
  70. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  71. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  72. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +164 -22
  73. package/dist/songbird/artifacts/contracts/genesis/implementation/GovernanceSettings.sol/GovernanceSettings.json +224 -0
  74. package/dist/songbird/artifacts/contracts/genesis/implementation/PriceSubmitter.sol/PriceSubmitter.json +2 -2
  75. package/dist/songbird/artifacts/contracts/genesis/implementation/StateConnector.sol/StateConnector.json +106 -785
  76. package/dist/songbird/artifacts/contracts/genesis/interface/IFtsoManagerGenesis.sol/IFtsoManagerGenesis.json +24 -0
  77. package/dist/songbird/artifacts/contracts/{tokenPools/interface/IIDataAvailabilityRewardManager.sol/IIDataAvailabilityRewardManager.json → governance/implementation/GovernedBaseV2.sol/GovernedBaseV2.json} +97 -91
  78. package/dist/songbird/artifacts/contracts/governance/implementation/GovernedV2.sol/GovernedV2.json +220 -0
  79. package/dist/songbird/artifacts/contracts/governance/implementation/Governor.sol/Governor.json +22 -154
  80. package/dist/songbird/artifacts/contracts/governance/implementation/GovernorProposer.sol/GovernorProposer.json +126 -32
  81. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  82. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +161 -90
  83. package/dist/songbird/artifacts/contracts/governance/interface/IIPollingFoundation.sol/IIPollingFoundation.json +0 -31
  84. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  85. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  86. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  87. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  88. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  89. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  90. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  91. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  92. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +25 -2
  93. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  94. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +69 -0
  95. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +949 -0
  96. package/dist/songbird/artifacts/contracts/tokenPools/lib/DataProviderFee.sol/DataProviderFee.json +10 -0
  97. package/dist/songbird/artifacts/contracts/utils/implementation/AddressSet.sol/AddressSet.json +10 -0
  98. package/dist/songbird/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  99. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +327 -33
  100. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistryProxy.sol/FtsoRegistryProxy.json +272 -0
  101. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +440 -0
  102. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +238 -0
  103. package/dist/songbird/artifacts/contracts/utils/implementation/ProxyGoverned.sol/ProxyGoverned.json +256 -0
  104. package/dist/songbird/artifacts/contracts/utils/implementation/RevertErrorTracking.sol/RevertErrorTracking.json +2 -20
  105. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  106. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistry.sol/IIFtsoRegistry.json +175 -13
  107. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistryV1.sol/IIFtsoRegistryV1.json +120 -0
  108. package/dist/songbird/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  109. package/dist/songbird/artifacts/contracts/utils/interface/IUpdateValidators.sol/IUpdateValidators.json +18 -0
  110. package/dist/songbird/deploys/contractAddresses.d.ts +3 -0
  111. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  112. package/dist/songbird/deploys/contractAddresses.js +19 -16
  113. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  114. package/dist/songbird/deploys/mapper.d.ts.map +1 -1
  115. package/dist/songbird/deploys/mapper.js +6 -2
  116. package/dist/songbird/deploys/mapper.js.map +1 -1
  117. package/dist/songbird/deploys/songbird.json +31 -16
  118. package/package.json +1 -1
  119. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  120. package/dist/flare/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  121. package/dist/songbird/artifacts/contracts/tokenPools/implementation/DataAvailabilityRewardManager.sol/DataAvailabilityRewardManager.json +0 -566
@@ -4,15 +4,34 @@
4
4
  "sourceName": "contracts/utils/implementation/FtsoRegistry.sol",
5
5
  "abi": [
6
6
  {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "anonymous": false,
7
13
  "inputs": [
8
14
  {
9
- "internalType": "address",
10
- "name": "_governance",
11
- "type": "address"
15
+ "indexed": false,
16
+ "internalType": "bytes4",
17
+ "name": "selector",
18
+ "type": "bytes4"
19
+ },
20
+ {
21
+ "indexed": false,
22
+ "internalType": "uint256",
23
+ "name": "allowedAfterTimestamp",
24
+ "type": "uint256"
25
+ },
26
+ {
27
+ "indexed": false,
28
+ "internalType": "bytes",
29
+ "name": "encodedCall",
30
+ "type": "bytes"
12
31
  }
13
32
  ],
14
- "stateMutability": "nonpayable",
15
- "type": "constructor"
33
+ "name": "GovernanceCallTimelocked",
34
+ "type": "event"
16
35
  },
17
36
  {
18
37
  "anonymous": false,
@@ -20,11 +39,11 @@
20
39
  {
21
40
  "indexed": false,
22
41
  "internalType": "address",
23
- "name": "proposedGovernance",
42
+ "name": "initialGovernance",
24
43
  "type": "address"
25
44
  }
26
45
  ],
27
- "name": "GovernanceProposed",
46
+ "name": "GovernanceInitialised",
28
47
  "type": "event"
29
48
  },
30
49
  {
@@ -33,17 +52,49 @@
33
52
  {
34
53
  "indexed": false,
35
54
  "internalType": "address",
36
- "name": "oldGovernance",
55
+ "name": "governanceSettings",
37
56
  "type": "address"
57
+ }
58
+ ],
59
+ "name": "GovernedProductionModeEntered",
60
+ "type": "event"
61
+ },
62
+ {
63
+ "anonymous": false,
64
+ "inputs": [
65
+ {
66
+ "indexed": false,
67
+ "internalType": "bytes4",
68
+ "name": "selector",
69
+ "type": "bytes4"
38
70
  },
39
71
  {
40
72
  "indexed": false,
41
- "internalType": "address",
42
- "name": "newGoveranance",
43
- "type": "address"
73
+ "internalType": "uint256",
74
+ "name": "timestamp",
75
+ "type": "uint256"
76
+ }
77
+ ],
78
+ "name": "TimelockedGovernanceCallCanceled",
79
+ "type": "event"
80
+ },
81
+ {
82
+ "anonymous": false,
83
+ "inputs": [
84
+ {
85
+ "indexed": false,
86
+ "internalType": "bytes4",
87
+ "name": "selector",
88
+ "type": "bytes4"
89
+ },
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint256",
93
+ "name": "timestamp",
94
+ "type": "uint256"
44
95
  }
45
96
  ],
46
- "name": "GovernanceUpdated",
97
+ "name": "TimelockedGovernanceCallExecuted",
47
98
  "type": "event"
48
99
  },
49
100
  {
@@ -58,7 +109,7 @@
58
109
  "outputs": [
59
110
  {
60
111
  "internalType": "uint256",
61
- "name": "_ftsoIndex",
112
+ "name": "_assetIndex",
62
113
  "type": "uint256"
63
114
  }
64
115
  ],
@@ -66,8 +117,27 @@
66
117
  "type": "function"
67
118
  },
68
119
  {
69
- "inputs": [],
70
- "name": "claimGovernance",
120
+ "inputs": [
121
+ {
122
+ "internalType": "bytes4",
123
+ "name": "_selector",
124
+ "type": "bytes4"
125
+ }
126
+ ],
127
+ "name": "cancelGovernanceCall",
128
+ "outputs": [],
129
+ "stateMutability": "nonpayable",
130
+ "type": "function"
131
+ },
132
+ {
133
+ "inputs": [
134
+ {
135
+ "internalType": "bytes4",
136
+ "name": "_selector",
137
+ "type": "bytes4"
138
+ }
139
+ ],
140
+ "name": "executeGovernanceCall",
71
141
  "outputs": [],
72
142
  "stateMutability": "nonpayable",
73
143
  "type": "function"
@@ -85,6 +155,54 @@
85
155
  "stateMutability": "view",
86
156
  "type": "function"
87
157
  },
158
+ {
159
+ "inputs": [],
160
+ "name": "getAddressUpdater",
161
+ "outputs": [
162
+ {
163
+ "internalType": "address",
164
+ "name": "_addressUpdater",
165
+ "type": "address"
166
+ }
167
+ ],
168
+ "stateMutability": "view",
169
+ "type": "function"
170
+ },
171
+ {
172
+ "inputs": [],
173
+ "name": "getAllCurrentPrices",
174
+ "outputs": [
175
+ {
176
+ "components": [
177
+ {
178
+ "internalType": "uint256",
179
+ "name": "ftsoIndex",
180
+ "type": "uint256"
181
+ },
182
+ {
183
+ "internalType": "uint256",
184
+ "name": "price",
185
+ "type": "uint256"
186
+ },
187
+ {
188
+ "internalType": "uint256",
189
+ "name": "decimals",
190
+ "type": "uint256"
191
+ },
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "timestamp",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "internalType": "struct IFtsoRegistry.PriceInfo[]",
199
+ "name": "",
200
+ "type": "tuple[]"
201
+ }
202
+ ],
203
+ "stateMutability": "view",
204
+ "type": "function"
205
+ },
88
206
  {
89
207
  "inputs": [],
90
208
  "name": "getAllFtsos",
@@ -146,6 +264,146 @@
146
264
  "stateMutability": "view",
147
265
  "type": "function"
148
266
  },
267
+ {
268
+ "inputs": [
269
+ {
270
+ "internalType": "uint256",
271
+ "name": "_assetIndex",
272
+ "type": "uint256"
273
+ }
274
+ ],
275
+ "name": "getCurrentPriceWithDecimals",
276
+ "outputs": [
277
+ {
278
+ "internalType": "uint256",
279
+ "name": "_price",
280
+ "type": "uint256"
281
+ },
282
+ {
283
+ "internalType": "uint256",
284
+ "name": "_timestamp",
285
+ "type": "uint256"
286
+ },
287
+ {
288
+ "internalType": "uint256",
289
+ "name": "_assetPriceUsdDecimals",
290
+ "type": "uint256"
291
+ }
292
+ ],
293
+ "stateMutability": "view",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [
298
+ {
299
+ "internalType": "string",
300
+ "name": "_symbol",
301
+ "type": "string"
302
+ }
303
+ ],
304
+ "name": "getCurrentPriceWithDecimals",
305
+ "outputs": [
306
+ {
307
+ "internalType": "uint256",
308
+ "name": "_price",
309
+ "type": "uint256"
310
+ },
311
+ {
312
+ "internalType": "uint256",
313
+ "name": "_timestamp",
314
+ "type": "uint256"
315
+ },
316
+ {
317
+ "internalType": "uint256",
318
+ "name": "_assetPriceUsdDecimals",
319
+ "type": "uint256"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "uint256[]",
329
+ "name": "_indices",
330
+ "type": "uint256[]"
331
+ }
332
+ ],
333
+ "name": "getCurrentPricesByIndices",
334
+ "outputs": [
335
+ {
336
+ "components": [
337
+ {
338
+ "internalType": "uint256",
339
+ "name": "ftsoIndex",
340
+ "type": "uint256"
341
+ },
342
+ {
343
+ "internalType": "uint256",
344
+ "name": "price",
345
+ "type": "uint256"
346
+ },
347
+ {
348
+ "internalType": "uint256",
349
+ "name": "decimals",
350
+ "type": "uint256"
351
+ },
352
+ {
353
+ "internalType": "uint256",
354
+ "name": "timestamp",
355
+ "type": "uint256"
356
+ }
357
+ ],
358
+ "internalType": "struct IFtsoRegistry.PriceInfo[]",
359
+ "name": "",
360
+ "type": "tuple[]"
361
+ }
362
+ ],
363
+ "stateMutability": "view",
364
+ "type": "function"
365
+ },
366
+ {
367
+ "inputs": [
368
+ {
369
+ "internalType": "string[]",
370
+ "name": "_symbols",
371
+ "type": "string[]"
372
+ }
373
+ ],
374
+ "name": "getCurrentPricesBySymbols",
375
+ "outputs": [
376
+ {
377
+ "components": [
378
+ {
379
+ "internalType": "uint256",
380
+ "name": "ftsoIndex",
381
+ "type": "uint256"
382
+ },
383
+ {
384
+ "internalType": "uint256",
385
+ "name": "price",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "decimals",
391
+ "type": "uint256"
392
+ },
393
+ {
394
+ "internalType": "uint256",
395
+ "name": "timestamp",
396
+ "type": "uint256"
397
+ }
398
+ ],
399
+ "internalType": "struct IFtsoRegistry.PriceInfo[]",
400
+ "name": "",
401
+ "type": "tuple[]"
402
+ }
403
+ ],
404
+ "stateMutability": "view",
405
+ "type": "function"
406
+ },
149
407
  {
150
408
  "inputs": [
151
409
  {
@@ -389,11 +647,24 @@
389
647
  "stateMutability": "view",
390
648
  "type": "function"
391
649
  },
650
+ {
651
+ "inputs": [],
652
+ "name": "governanceSettings",
653
+ "outputs": [
654
+ {
655
+ "internalType": "contract IGovernanceSettings",
656
+ "name": "",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "stateMutability": "view",
661
+ "type": "function"
662
+ },
392
663
  {
393
664
  "inputs": [
394
665
  {
395
666
  "internalType": "address",
396
- "name": "_governance",
667
+ "name": "_initialGovernance",
397
668
  "type": "address"
398
669
  }
399
670
  ],
@@ -406,23 +677,23 @@
406
677
  "inputs": [
407
678
  {
408
679
  "internalType": "address",
409
- "name": "_governance",
680
+ "name": "_addressUpdater",
410
681
  "type": "address"
411
682
  }
412
683
  ],
413
- "name": "proposeGovernance",
684
+ "name": "initialiseRegistry",
414
685
  "outputs": [],
415
686
  "stateMutability": "nonpayable",
416
687
  "type": "function"
417
688
  },
418
689
  {
419
690
  "inputs": [],
420
- "name": "proposedGovernance",
691
+ "name": "productionMode",
421
692
  "outputs": [
422
693
  {
423
- "internalType": "address",
694
+ "internalType": "bool",
424
695
  "name": "",
425
- "type": "address"
696
+ "type": "bool"
426
697
  }
427
698
  ],
428
699
  "stateMutability": "view",
@@ -441,35 +712,58 @@
441
712
  "stateMutability": "nonpayable",
442
713
  "type": "function"
443
714
  },
715
+ {
716
+ "inputs": [],
717
+ "name": "switchToProductionMode",
718
+ "outputs": [],
719
+ "stateMutability": "nonpayable",
720
+ "type": "function"
721
+ },
444
722
  {
445
723
  "inputs": [
446
724
  {
447
- "internalType": "contract IIFtsoManager",
448
- "name": "_ftsoManager",
449
- "type": "address"
725
+ "internalType": "bytes4",
726
+ "name": "",
727
+ "type": "bytes4"
450
728
  }
451
729
  ],
452
- "name": "setFtsoManagerAddress",
453
- "outputs": [],
454
- "stateMutability": "nonpayable",
730
+ "name": "timelockedCalls",
731
+ "outputs": [
732
+ {
733
+ "internalType": "uint256",
734
+ "name": "allowedAfterTimestamp",
735
+ "type": "uint256"
736
+ },
737
+ {
738
+ "internalType": "bytes",
739
+ "name": "encodedCall",
740
+ "type": "bytes"
741
+ }
742
+ ],
743
+ "stateMutability": "view",
455
744
  "type": "function"
456
745
  },
457
746
  {
458
747
  "inputs": [
459
748
  {
460
- "internalType": "address",
461
- "name": "_governance",
462
- "type": "address"
749
+ "internalType": "bytes32[]",
750
+ "name": "_contractNameHashes",
751
+ "type": "bytes32[]"
752
+ },
753
+ {
754
+ "internalType": "address[]",
755
+ "name": "_contractAddresses",
756
+ "type": "address[]"
463
757
  }
464
758
  ],
465
- "name": "transferGovernance",
759
+ "name": "updateContractAddresses",
466
760
  "outputs": [],
467
761
  "stateMutability": "nonpayable",
468
762
  "type": "function"
469
763
  }
470
764
  ],
471
- "bytecode": "0x60806040523480156200001157600080fd5b506040516200234d3803806200234d83398101604081905262000034916200018d565b80806001600160a01b0381161562000051576200005181620000a9565b506001600160a01b038116620000a1576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b5050620001bd565b600154600160a01b900460ff161562000109576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000602082840312156200019f578081fd5b81516001600160a01b0381168114620001b6578182fd5b9392505050565b61218080620001cd6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639cb47538116100de578063c55d0f5611610097578063d38bfff411610071578063d38bfff414610368578063d75f6d811461037b578063e68f283b1461038e578063e848da30146103a45761018e565b8063c55d0f5614610320578063c71a1b2014610333578063ce1c0e4d146103535761018e565b80639cb47538146102ac5780639d6a890f146102cc578063a40060ba146102df578063a670ff87146102e7578063adf71fd8146102fa578063c373a08e1461030d5761018e565b806342a0f2431161014b57806360f7ac971161012557806360f7ac97146102655780637687542c1461026d578063798aac5b1461028457806397da6af4146102995761018e565b806342a0f243146102325780635aa6e675146102535780635d36b1901461025b5761018e565b806306a2ba29146101935780630cf48497146101b257806311a7aaaa146101c8578063136d3f64146101dd5780632663f1b4146101fd5780632bcdd6ab1461021d575b600080fd5b61019b6103b7565b6040516101a9929190611ffc565b60405180910390f35b6101ba61048d565b6040516101a9929190611fc4565b6101d0610652565b6040516101a99190611f03565b6101f06101eb366004611dd7565b610661565b6040516101a99190612077565b61021061020b366004611c2a565b6106e8565b6040516101a9919061208a565b610225610955565b6040516101a99190611f9e565b610245610240366004611ced565b610a11565b6040516101a9929190612093565b6101d0610a9d565b610263610aac565b005b6101d0610b6e565b610275610b7d565b6040516101a993929190612034565b61028c610d42565b6040516101a99190611fe9565b6101d06102a7366004611ced565b610d51565b6102bf6102ba366004611c4d565b610d5f565b6040516101a99190611f17565b6102636102da366004611c2a565b610ee3565b610225610fbd565b6102636102f5366004611c2a565b611094565b610263610308366004611c2a565b611308565b61026361031b366004611c2a565b61137b565b61024561032e366004611dd7565b611420565b610346610341366004611dd7565b61142c565b6040516101a99190611f64565b61035b611512565b6040516101a99190611fb1565b610263610376366004611c2a565b611649565b6101d0610389366004611dd7565b61170b565b610396611716565b6040516101a992919061200f565b6102106103b2366004611ced565b61184c565b6060806103c2611857565b8051909250806001600160401b03811180156103dd57600080fd5b50604051908082528060200260200182016040528015610407578160200160208202803683370190505b5091505b80156104885780600190039050600283828151811061042657fe5b60200260200101518154811061043857fe5b600091825260208220600590910201015482516001600160a01b039091169083908390811061046357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061040b565b509091565b606080600061049a611857565b8051909150806001600160401b03811180156104b557600080fd5b506040519080825280602002602001820160405280156104df578160200160208202803683370190505b509250806001600160401b03811180156104f857600080fd5b5060405190808252806020026020018201604052801561052c57816020015b60608152602001906001900390816105175790505b5093505b801561064c5780600190039050600282828151811061054b57fe5b60200260200101518154811061055d57fe5b600091825260208220600590910201015483516001600160a01b039091169084908390811061058857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508281815181106105b457fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105f457600080fd5b505afa158015610608573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106309190810190611d65565b84828151811061063c57fe5b6020026020010181905250610530565b50509091565b6003546001600160a01b031681565b606061066c82611998565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156106a457600080fd5b505afa1580156106b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106e09190810190611d65565b90505b919050565b6003546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b60208201526000916001600160a01b031633146107475760405162461bcd60e51b815260040161073e9190612077565b60405180910390fd5b50600060028054905090506000836001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561078d57600080fd5b505afa1580156107a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107c99190810190611d65565b90506000816040516020016107de9190612077565b604051602081830303815290604052805190602001209050600093505b828410156108ee5760006002858154811061081257fe5b60009182526020822060059091020101546001600160a01b031690508061083957506108e3565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108ae9190810190611d65565b6040516020016108be9190612077565b604051602081830303815290604052805190602001208214156108e157506108ee565b505b6001909301926107fb565b8284141561090757600280546001018155600052610910565b61091084611a4f565b846002858154811061091e57fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550919392505050565b6002546060906000816001600160401b038111801561097357600080fd5b5060405190808252806020026020018201604052801561099d578160200160208202803683370190505b5090505b8115610a0b5781600190039150600282815481106109bb57fe5b600091825260208220600590910201015481516001600160a01b03909116908290849081106109e657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506109a1565b91505090565b600080610a25610a2084611ae2565b611998565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b158015610a5c57600080fd5b505afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611def565b91509150915091565b6000546001600160a01b031681565b6001546001600160a01b03163314610afb576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6060806060610b8a611857565b8051909350806001600160401b0381118015610ba557600080fd5b50604051908082528060200260200182016040528015610bcf578160200160208202803683370190505b509150806001600160401b0381118015610be857600080fd5b50604051908082528060200260200182016040528015610c1c57816020015b6060815260200190600190039081610c075790505b5092505b8015610d3c57806001900390506002848281518110610c3b57fe5b602002602001015181548110610c4d57fe5b600091825260208220600590910201015482516001600160a01b0390911690839083908110610c7857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818181518110610ca457fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d209190810190611d65565b838281518110610d2c57fe5b6020026020010181905250610c20565b50909192565b6060610d4c611857565b905090565b60006106e0610a2083611ae2565b600254815160609190806001600160401b0381118015610d7e57600080fd5b50604051908082528060200260200182016040528015610da8578160200160208202803683370190505b5092505b8015610edc57806001900390506000848281518110610dc757fe5b6020026020010151905082811060405180604001604052806018815260200160008051602061212b83398151915281525090610e165760405162461bcd60e51b815260040161073e9190612077565b5060028181548110610e2457fe5b600091825260208220600590910201015484516001600160a01b0390911690859084908110610e4f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b0316848381518110610e8657fe5b60200260200101516001600160a01b03161415610ed6576040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b50610dac565b5050919050565b600154600160a01b900460ff1615610f39576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b60606000610fc9611857565b8051909150806001600160401b0381118015610fe457600080fd5b5060405190808252806020026020018201604052801561100e578160200160208202803683370190505b5092505b801561108f5780600190039050600282828151811061102d57fe5b60200260200101518154811061103f57fe5b600091825260208220600590910201015483516001600160a01b039091169084908390811061106a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611012565b505090565b6003546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146110e85760405162461bcd60e51b815260040161073e9190612077565b506000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561112457600080fd5b505afa158015611138573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111609190810190611d65565b6040516020016111709190612077565b60408051601f19818403018152919052805160209091012060025490915060005b818110156112cb576000600282815481106111a857fe5b60009182526020822060059091020101546001600160a01b03169050806111cf57506112c3565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112449190810190611d65565b6040516020016112549190612077565b604051602081830303815290604052805190602001208414156112c15761127a82611a4f565b60006002838154811061128957fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790555061130592505050565b505b600101611191565b506040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b50565b6000546001600160a01b03163314611359576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113cc576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b600080610a2583611998565b611434611c0c565b60025482108015611475575060006001600160a01b03166002838154811061145857fe5b60009182526020822060059091020101546001600160a01b031614155b60405180604001604052806018815260200160008051602061212b833981519152815250906114b75760405162461bcd60e51b815260040161073e9190612077565b50600282815481106114c557fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116114e95750505050509050919050565b6060600061151e611857565b8051909150806001600160401b038111801561153957600080fd5b5060405190808252806020026020018201604052801561156d57816020015b60608152602001906001900390816115585790505b5092505b801561108f57806001900390506000600283838151811061158e57fe5b6020026020010151815481106115a057fe5b6000918252602082206005919091020154604080516395d89b4160e01b815290516001600160a01b03909216935083926395d89b4192600480840193829003018186803b1580156115f057600080fd5b505afa158015611604573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261162c9190810190611d65565b84838151811061163857fe5b602002602001018190525050611571565b6000546001600160a01b0316331461169a576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b60006106e082611998565b606080611721611857565b8051909250806001600160401b038111801561173c57600080fd5b5060405190808252806020026020018201604052801561177057816020015b606081526020019060019003908161175b5790505b5091505b801561048857806001900390506000600284838151811061179157fe5b6020026020010151815481106117a357fe5b6000918252602082206005919091020154604080516395d89b4160e01b815290516001600160a01b03909216935083926395d89b4192600480840193829003018186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261182f9190810190611d65565b83838151811061183b57fe5b602002602001018190525050611774565b60006106e082611ae2565b6002546060906000816001600160401b038111801561187557600080fd5b5060405190808252806020026020018201604052801561189f578160200160208202803683370190505b50905060008060005b8481101561190e57826001600160a01b0316600282815481106118c757fe5b60009182526020822060059091020101546001600160a01b03161461190657808483815181106118f357fe5b6020026020010181815250508160010191505b6001016118a8565b50806001600160401b038111801561192557600080fd5b5060405190808252806020026020018201604052801561194f578160200160208202803683370190505b5094505b8015611991578060019003905082818151811061196c57fe5b602002602001015185828151811061198057fe5b602002602001018181525050611953565b5050505090565b600254604080518082019091526018815260008051602061212b833981519152602082015260009183106119df5760405162461bcd60e51b815260040161073e9190612077565b506000600283815481106119ef57fe5b60009182526020822060059091020101546001600160a01b0316905080611a49576040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b92915050565b60045b8015611ade5760028281548110611a6557fe5b90600052602060002090600502016001820360058110611a8157fe5b0154600280546001600160a01b039092169184908110611a9d57fe5b90600052602060002090600502018260058110611ab657fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611a52565b5050565b60008082604051602001611af69190612077565b60408051601f19818403018152919052805160209091012060025490915060005b818110156112cb57600060028281548110611b2e57fe5b60009182526020822060059091020101546001600160a01b0316905080611b555750611c04565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611b8e57600080fd5b505afa158015611ba2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bca9190810190611d65565b604051602001611bda9190612077565b60405160208183030381529060405280519060200120841415611c02575092506106e3915050565b505b600101611b17565b6040518060a001604052806005906020820280368337509192915050565b600060208284031215611c3b578081fd5b8135611c4681612115565b9392505050565b60006020808385031215611c5f578182fd5b82356001600160401b0380821115611c75578384fd5b818501915085601f830112611c88578384fd5b813581811115611c9457fe5b8381029150611ca48483016120a1565b8181528481019084860184860187018a1015611cbe578788fd5b8795505b83861015611ce0578035835260019590950194918601918601611cc2565b5098975050505050505050565b600060208284031215611cfe578081fd5b81356001600160401b03811115611d13578182fd5b8201601f81018413611d23578182fd5b8035611d36611d31826120c4565b6120a1565b818152856020838501011115611d4a578384fd5b81602084016020830137908101602001929092525092915050565b600060208284031215611d76578081fd5b81516001600160401b03811115611d8b578182fd5b8201601f81018413611d9b578182fd5b8051611da9611d31826120c4565b818152856020838501011115611dbd578384fd5b611dce8260208301602086016120e5565b95945050505050565b600060208284031215611de8578081fd5b5035919050565b60008060408385031215611e01578081fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b83811015611e4a5781516001600160a01b031687529582019590820190600101611e25565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015611e9b578284038952611e89848351611ed7565b98850198935090840190600101611e71565b5091979650505050505050565b6000815180845260208085019450808401835b83811015611e4a57815187529582019590820190600101611ebb565b60008151808452611eef8160208601602086016120e5565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015611f585783516001600160a01b031683529284019291840191600101611f33565b50909695505050505050565b60a08101818360005b6005811015611f955781516001600160a01b0316835260209283019290910190600101611f6d565b50505092915050565b600060208252611c466020830184611e12565b600060208252611c466020830184611e55565b600060408252611fd76040830185611e55565b8281036020840152611dce8185611e12565b600060208252611c466020830184611ea8565b600060408252611fd76040830185611ea8565b6000604082526120226040830185611ea8565b8281036020840152611dce8185611e55565b6000606082526120476060830186611ea8565b82810360208401526120598186611e55565b9050828103604084015261206d8185611e12565b9695505050505050565b600060208252611c466020830184611ed7565b90815260200190565b918252602082015260400190565b6040518181016001600160401b03811182821017156120bc57fe5b604052919050565b60006001600160401b038211156120d757fe5b50601f01601f191660200190565b60005b838110156121005781810151838201526020016120e8565b8381111561210f576000848401525b50505050565b6001600160a01b038116811461130557600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a2646970667358221220043380f5602cdbdfd05111166fa17885d226fa8d07af75e7029d0bdeabe5fe6364736f6c63430007060033",
472
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80639cb47538116100de578063c55d0f5611610097578063d38bfff411610071578063d38bfff414610368578063d75f6d811461037b578063e68f283b1461038e578063e848da30146103a45761018e565b8063c55d0f5614610320578063c71a1b2014610333578063ce1c0e4d146103535761018e565b80639cb47538146102ac5780639d6a890f146102cc578063a40060ba146102df578063a670ff87146102e7578063adf71fd8146102fa578063c373a08e1461030d5761018e565b806342a0f2431161014b57806360f7ac971161012557806360f7ac97146102655780637687542c1461026d578063798aac5b1461028457806397da6af4146102995761018e565b806342a0f243146102325780635aa6e675146102535780635d36b1901461025b5761018e565b806306a2ba29146101935780630cf48497146101b257806311a7aaaa146101c8578063136d3f64146101dd5780632663f1b4146101fd5780632bcdd6ab1461021d575b600080fd5b61019b6103b7565b6040516101a9929190611ffc565b60405180910390f35b6101ba61048d565b6040516101a9929190611fc4565b6101d0610652565b6040516101a99190611f03565b6101f06101eb366004611dd7565b610661565b6040516101a99190612077565b61021061020b366004611c2a565b6106e8565b6040516101a9919061208a565b610225610955565b6040516101a99190611f9e565b610245610240366004611ced565b610a11565b6040516101a9929190612093565b6101d0610a9d565b610263610aac565b005b6101d0610b6e565b610275610b7d565b6040516101a993929190612034565b61028c610d42565b6040516101a99190611fe9565b6101d06102a7366004611ced565b610d51565b6102bf6102ba366004611c4d565b610d5f565b6040516101a99190611f17565b6102636102da366004611c2a565b610ee3565b610225610fbd565b6102636102f5366004611c2a565b611094565b610263610308366004611c2a565b611308565b61026361031b366004611c2a565b61137b565b61024561032e366004611dd7565b611420565b610346610341366004611dd7565b61142c565b6040516101a99190611f64565b61035b611512565b6040516101a99190611fb1565b610263610376366004611c2a565b611649565b6101d0610389366004611dd7565b61170b565b610396611716565b6040516101a992919061200f565b6102106103b2366004611ced565b61184c565b6060806103c2611857565b8051909250806001600160401b03811180156103dd57600080fd5b50604051908082528060200260200182016040528015610407578160200160208202803683370190505b5091505b80156104885780600190039050600283828151811061042657fe5b60200260200101518154811061043857fe5b600091825260208220600590910201015482516001600160a01b039091169083908390811061046357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061040b565b509091565b606080600061049a611857565b8051909150806001600160401b03811180156104b557600080fd5b506040519080825280602002602001820160405280156104df578160200160208202803683370190505b509250806001600160401b03811180156104f857600080fd5b5060405190808252806020026020018201604052801561052c57816020015b60608152602001906001900390816105175790505b5093505b801561064c5780600190039050600282828151811061054b57fe5b60200260200101518154811061055d57fe5b600091825260208220600590910201015483516001600160a01b039091169084908390811061058857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508281815181106105b457fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105f457600080fd5b505afa158015610608573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106309190810190611d65565b84828151811061063c57fe5b6020026020010181905250610530565b50509091565b6003546001600160a01b031681565b606061066c82611998565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156106a457600080fd5b505afa1580156106b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106e09190810190611d65565b90505b919050565b6003546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b60208201526000916001600160a01b031633146107475760405162461bcd60e51b815260040161073e9190612077565b60405180910390fd5b50600060028054905090506000836001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561078d57600080fd5b505afa1580156107a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107c99190810190611d65565b90506000816040516020016107de9190612077565b604051602081830303815290604052805190602001209050600093505b828410156108ee5760006002858154811061081257fe5b60009182526020822060059091020101546001600160a01b031690508061083957506108e3565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108ae9190810190611d65565b6040516020016108be9190612077565b604051602081830303815290604052805190602001208214156108e157506108ee565b505b6001909301926107fb565b8284141561090757600280546001018155600052610910565b61091084611a4f565b846002858154811061091e57fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550919392505050565b6002546060906000816001600160401b038111801561097357600080fd5b5060405190808252806020026020018201604052801561099d578160200160208202803683370190505b5090505b8115610a0b5781600190039150600282815481106109bb57fe5b600091825260208220600590910201015481516001600160a01b03909116908290849081106109e657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506109a1565b91505090565b600080610a25610a2084611ae2565b611998565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b158015610a5c57600080fd5b505afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611def565b91509150915091565b6000546001600160a01b031681565b6001546001600160a01b03163314610afb576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6060806060610b8a611857565b8051909350806001600160401b0381118015610ba557600080fd5b50604051908082528060200260200182016040528015610bcf578160200160208202803683370190505b509150806001600160401b0381118015610be857600080fd5b50604051908082528060200260200182016040528015610c1c57816020015b6060815260200190600190039081610c075790505b5092505b8015610d3c57806001900390506002848281518110610c3b57fe5b602002602001015181548110610c4d57fe5b600091825260208220600590910201015482516001600160a01b0390911690839083908110610c7857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818181518110610ca457fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d209190810190611d65565b838281518110610d2c57fe5b6020026020010181905250610c20565b50909192565b6060610d4c611857565b905090565b60006106e0610a2083611ae2565b600254815160609190806001600160401b0381118015610d7e57600080fd5b50604051908082528060200260200182016040528015610da8578160200160208202803683370190505b5092505b8015610edc57806001900390506000848281518110610dc757fe5b6020026020010151905082811060405180604001604052806018815260200160008051602061212b83398151915281525090610e165760405162461bcd60e51b815260040161073e9190612077565b5060028181548110610e2457fe5b600091825260208220600590910201015484516001600160a01b0390911690859084908110610e4f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b0316848381518110610e8657fe5b60200260200101516001600160a01b03161415610ed6576040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b50610dac565b5050919050565b600154600160a01b900460ff1615610f39576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b60606000610fc9611857565b8051909150806001600160401b0381118015610fe457600080fd5b5060405190808252806020026020018201604052801561100e578160200160208202803683370190505b5092505b801561108f5780600190039050600282828151811061102d57fe5b60200260200101518154811061103f57fe5b600091825260208220600590910201015483516001600160a01b039091169084908390811061106a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611012565b505090565b6003546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146110e85760405162461bcd60e51b815260040161073e9190612077565b506000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561112457600080fd5b505afa158015611138573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111609190810190611d65565b6040516020016111709190612077565b60408051601f19818403018152919052805160209091012060025490915060005b818110156112cb576000600282815481106111a857fe5b60009182526020822060059091020101546001600160a01b03169050806111cf57506112c3565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112449190810190611d65565b6040516020016112549190612077565b604051602081830303815290604052805190602001208414156112c15761127a82611a4f565b60006002838154811061128957fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790555061130592505050565b505b600101611191565b506040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b50565b6000546001600160a01b03163314611359576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113cc576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b600080610a2583611998565b611434611c0c565b60025482108015611475575060006001600160a01b03166002838154811061145857fe5b60009182526020822060059091020101546001600160a01b031614155b60405180604001604052806018815260200160008051602061212b833981519152815250906114b75760405162461bcd60e51b815260040161073e9190612077565b50600282815481106114c557fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116114e95750505050509050919050565b6060600061151e611857565b8051909150806001600160401b038111801561153957600080fd5b5060405190808252806020026020018201604052801561156d57816020015b60608152602001906001900390816115585790505b5092505b801561108f57806001900390506000600283838151811061158e57fe5b6020026020010151815481106115a057fe5b6000918252602082206005919091020154604080516395d89b4160e01b815290516001600160a01b03909216935083926395d89b4192600480840193829003018186803b1580156115f057600080fd5b505afa158015611604573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261162c9190810190611d65565b84838151811061163857fe5b602002602001018190525050611571565b6000546001600160a01b0316331461169a576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b60006106e082611998565b606080611721611857565b8051909250806001600160401b038111801561173c57600080fd5b5060405190808252806020026020018201604052801561177057816020015b606081526020019060019003908161175b5790505b5091505b801561048857806001900390506000600284838151811061179157fe5b6020026020010151815481106117a357fe5b6000918252602082206005919091020154604080516395d89b4160e01b815290516001600160a01b03909216935083926395d89b4192600480840193829003018186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261182f9190810190611d65565b83838151811061183b57fe5b602002602001018190525050611774565b60006106e082611ae2565b6002546060906000816001600160401b038111801561187557600080fd5b5060405190808252806020026020018201604052801561189f578160200160208202803683370190505b50905060008060005b8481101561190e57826001600160a01b0316600282815481106118c757fe5b60009182526020822060059091020101546001600160a01b03161461190657808483815181106118f357fe5b6020026020010181815250508160010191505b6001016118a8565b50806001600160401b038111801561192557600080fd5b5060405190808252806020026020018201604052801561194f578160200160208202803683370190505b5094505b8015611991578060019003905082818151811061196c57fe5b602002602001015185828151811061198057fe5b602002602001018181525050611953565b5050505090565b600254604080518082019091526018815260008051602061212b833981519152602082015260009183106119df5760405162461bcd60e51b815260040161073e9190612077565b506000600283815481106119ef57fe5b60009182526020822060059091020101546001600160a01b0316905080611a49576040805180820182526018815260008051602061212b8339815191526020820152905162461bcd60e51b815261073e9190600401612077565b92915050565b60045b8015611ade5760028281548110611a6557fe5b90600052602060002090600502016001820360058110611a8157fe5b0154600280546001600160a01b039092169184908110611a9d57fe5b90600052602060002090600502018260058110611ab657fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611a52565b5050565b60008082604051602001611af69190612077565b60408051601f19818403018152919052805160209091012060025490915060005b818110156112cb57600060028281548110611b2e57fe5b60009182526020822060059091020101546001600160a01b0316905080611b555750611c04565b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611b8e57600080fd5b505afa158015611ba2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bca9190810190611d65565b604051602001611bda9190612077565b60405160208183030381529060405280519060200120841415611c02575092506106e3915050565b505b600101611b17565b6040518060a001604052806005906020820280368337509192915050565b600060208284031215611c3b578081fd5b8135611c4681612115565b9392505050565b60006020808385031215611c5f578182fd5b82356001600160401b0380821115611c75578384fd5b818501915085601f830112611c88578384fd5b813581811115611c9457fe5b8381029150611ca48483016120a1565b8181528481019084860184860187018a1015611cbe578788fd5b8795505b83861015611ce0578035835260019590950194918601918601611cc2565b5098975050505050505050565b600060208284031215611cfe578081fd5b81356001600160401b03811115611d13578182fd5b8201601f81018413611d23578182fd5b8035611d36611d31826120c4565b6120a1565b818152856020838501011115611d4a578384fd5b81602084016020830137908101602001929092525092915050565b600060208284031215611d76578081fd5b81516001600160401b03811115611d8b578182fd5b8201601f81018413611d9b578182fd5b8051611da9611d31826120c4565b818152856020838501011115611dbd578384fd5b611dce8260208301602086016120e5565b95945050505050565b600060208284031215611de8578081fd5b5035919050565b60008060408385031215611e01578081fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b83811015611e4a5781516001600160a01b031687529582019590820190600101611e25565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015611e9b578284038952611e89848351611ed7565b98850198935090840190600101611e71565b5091979650505050505050565b6000815180845260208085019450808401835b83811015611e4a57815187529582019590820190600101611ebb565b60008151808452611eef8160208601602086016120e5565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015611f585783516001600160a01b031683529284019291840191600101611f33565b50909695505050505050565b60a08101818360005b6005811015611f955781516001600160a01b0316835260209283019290910190600101611f6d565b50505092915050565b600060208252611c466020830184611e12565b600060208252611c466020830184611e55565b600060408252611fd76040830185611e55565b8281036020840152611dce8185611e12565b600060208252611c466020830184611ea8565b600060408252611fd76040830185611ea8565b6000604082526120226040830185611ea8565b8281036020840152611dce8185611e55565b6000606082526120476060830186611ea8565b82810360208401526120598186611e55565b9050828103604084015261206d8185611e12565b9695505050505050565b600060208252611c466020830184611ed7565b90815260200190565b918252602082015260400190565b6040518181016001600160401b03811182821017156120bc57fe5b604052919050565b60006001600160401b038211156120d757fe5b50601f01601f191660200190565b60005b838110156121005781810151838201526020016120e8565b8381111561210f576000848401525b50505050565b6001600160a01b038116811461130557600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a2646970667358221220043380f5602cdbdfd05111166fa17885d226fa8d07af75e7029d0bdeabe5fe6364736f6c63430007060033",
765
+ "bytecode": "0x60806040523480156200001157600080fd5b5061dead6000620000228162000045565b506001600160a01b038116156200003e576200003e8162000069565b506200012c565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600054600160a01b900460ff1615620000c9576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b612fa0806200013c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063798aac5b11610125578063c55d0f56116100ad578063e17f212e1161007c578063e17f212e146104a2578063e68f283b146104b7578063e848da30146104cd578063f5a98383146104e0578063ffc880fd146104e857610211565b8063c55d0f5614610447578063c71a1b201461045a578063ce1c0e4d1461047a578063d75f6d811461048f57610211565b80639d6a890f116100f45780639d6a890f146103f3578063a40060ba14610406578063a670ff871461040e578063a69afdc614610421578063b00c0b761461043457610211565b8063798aac5b1461039857806379d5ea4b146103ad57806397da6af4146103c05780639cb47538146103d357610211565b80635267a15d116101a857806362354e031161017757806362354e031461033257806367fc40291461033a5780636ba31fa11461034d57806374e6310e146103605780637687542c1461038157610211565b80635267a15d146102f857806358f9296f146103005780635aa6e675146103155780635ff270791461031d57610211565b8063257cbd3a116101e4578063257cbd3a146102805780632663f1b4146102a25780632bcdd6ab146102c257806342a0f243146102d757610211565b806306a2ba29146102165780630cf484971461023557806311a7aaaa1461024b578063136d3f6414610260575b600080fd5b61021e6104fb565b60405161022c929190612d6e565b60405180910390f35b61023d61050f565b60405161022c929190612cdf565b610253610625565b60405161022c9190612c1e565b61027361026e366004612aa9565b610634565b60405161022c9190612df4565b61029361028e366004612aa9565b6106b9565b60405161022c93929190612e92565b6102b56102b03660046127fd565b610744565b60405161022c9190612e62565b6102ca6108d5565b60405161022c9190612cb9565b6102ea6102e5366004612a0e565b610991565b60405161022c929190612e84565b610253610a15565b610308610a3a565b60405161022c9190612d04565b610253610a5c565b61033061032b3660046129e6565b610afe565b005b610253610e60565b6103306103483660046129e6565b610e78565b61030861035b366004612957565b610f60565b61037361036e3660046129e6565b61100e565b60405161022c929190612e6b565b6103896110b4565b60405161022c93929190612da6565b6103a06111cd565b60405161022c9190612d5b565b6103086103bb3660046128cf565b6111dd565b6102536103ce366004612a0e565b611329565b6103e66103e1366004612957565b611334565b60405161022c9190612c32565b6103306104013660046127fd565b6114b8565b6102ca611571565b61033061041c3660046127fd565b61157b565b61029361042f366004612a0e565b611723565b610330610442366004612819565b611731565b6102ea610455366004612aa9565b6117dc565b61046d610468366004612aa9565b6117e8565b60405161022c9190612c7f565b6104826118ce565b60405161022c9190612ccc565b61025361049d366004612aa9565b6119e5565b6104aa6119f0565b60405161022c9190612de9565b6104bf611a00565b60405161022c929190612d81565b6102b56104db366004612a0e565b611b19565b610330611b24565b6103306104f63660046127fd565b611beb565b606080610506611c89565b90939092509050565b60608061051a611c89565b80519092509050806001600160401b038111801561053757600080fd5b5060405190808252806020026020018201604052801561056b57816020015b60608152602001906001900390816105565790505b5092505b8015610620578060019003905081818151811061058857fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105c857600080fd5b505afa1580156105dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106049190810190612a40565b83828151811061061057fe5b602002602001018190525061056f565b509091565b6004546001600160a01b031681565b606061063f82611ec3565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561067757600080fd5b505afa15801561068b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b39190810190612a40565b92915050565b60008060006106c784611ec3565b6001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107379190612ae4565b9250925092509193909250565b6004546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b60208201526000916001600160a01b031633146107a35760405162461bcd60e51b815260040161079a9190612df4565b60405180910390fd5b506000826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107df57600080fd5b505afa1580156107f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261081b9190810190612a40565b905060038160405161082d9190612c02565b90815260200160405180910390205491508160001415610884576002805490509150816001016003826040516108639190612c02565b90815260405190819003602001902055600280546001018155600052610893565b60018203915061089382611f74565b82600283815481106108a157fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550919050565b6002546060906000816001600160401b03811180156108f357600080fd5b5060405190808252806020026020018201604052801561091d578160200160208202803683370190505b5090505b811561098b57816001900391506002828154811061093b57fe5b600091825260208220600590910201015481516001600160a01b039091169082908490811061096657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610921565b91505090565b60008061099d83612003565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190612ac1565b91509150915091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6060600080610a47611c89565b91509150610a55828261203f565b9250505090565b60008054600160a81b900460ff16610a7f576000546001600160a01b0316610af9565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d6020811015610af657600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d6020811015610b7957600080fd5b5051610bbc576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610c28576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610c7e576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d185780601f10610ced57610100808354040283529160200191610d18565b820191906000526020600020905b815481529060010190602001808311610cfb57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610d4c9150830182612611565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610d945780518252601f199092019160209182019101610d75565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610df6576040519150601f19603f3d011682016040523d82523d6000602084013e610dfb565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610e5a816121b6565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610e806121d3565b6001600160e01b03198116600090815260016020526040902054610eeb576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610f5b90830182612611565b505050565b6060600082516001600160401b0381118015610f7b57600080fd5b50604051908082528060200260200182016040528015610fa5578160200160208202803683370190505b50905060005b8351811015610ffc57610fd0848281518110610fc357fe5b6020026020010151611ec3565b828281518110610fdc57fe5b6001600160a01b0390921660209283029190910190910152600101610fab565b50611007838261203f565b9392505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156110aa5780601f1061107f576101008083540402835291602001916110aa565b820191906000526020600020905b81548152906001019060200180831161108d57829003601f168201915b5050505050905082565b60608060606110c1611c89565b81519194509150806001600160401b03811180156110de57600080fd5b5060405190808252806020026020018201604052801561111257816020015b60608152602001906001900390816110fd5790505b5092505b80156111c7578060019003905081818151811061112f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ab9190810190612a40565b8382815181106111b757fe5b6020026020010181905250611116565b50909192565b60606111d7611c89565b50919050565b6060600082516001600160401b03811180156111f857600080fd5b50604051908082528060200260200182016040528015611222578160200160208202803683370190505b509050600083516001600160401b038111801561123e57600080fd5b50604051908082528060200260200182016040528015611268578160200160208202803683370190505b50905060005b84518110156113165761129385828151811061128657fe5b6020026020010151612234565b83828151811061129f57fe5b60200260200101818152505060028382815181106112b957fe5b6020026020010151815481106112cb57fe5b600091825260208220600590910201015482516001600160a01b03909116908390839081106112f657fe5b6001600160a01b039092166020928302919091019091015260010161126e565b50611321828261203f565b949350505050565b60006106b382612003565b600254815160609190806001600160401b038111801561135357600080fd5b5060405190808252806020026020018201604052801561137d578160200160208202803683370190505b5092505b80156114b15780600190039050600084828151811061139c57fe5b60200260200101519050828110604051806040016040528060188152602001600080516020612f4b833981519152815250906113eb5760405162461bcd60e51b815260040161079a9190612df4565b50600281815481106113f957fe5b600091825260208220600590910201015484516001600160a01b039091169085908490811061142457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031684838151811061145b57fe5b60200260200101516001600160a01b031614156114ab5760408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b50611381565b5050919050565b600054600160a01b900460ff161561150e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b60606106b3611c89565b6004546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146115cf5760405162461bcd60e51b815260040161079a9190612df4565b506000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561160b57600080fd5b505afa15801561161f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116479190810190612a40565b9050600060038260405161165b9190612c02565b90815260405190819003602001902054905080156116e7576000190161168081611f74565b60006002828154811061168f57fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790556040516003906116ce908490612c02565b9081526020016040518091039020600090555050611720565b60408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b50565b60008060006106c784612003565b611739610a15565b6001600160a01b0316336001600160a01b031614611795576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6117ce6117c983836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506122a9565b6123d6565b6117d882826123fa565b5050565b60008061099d83611ec3565b6117f0612655565b60025482108015611831575060006001600160a01b03166002838154811061181457fe5b60009182526020822060059091020101546001600160a01b031614155b604051806040016040528060188152602001600080516020612f4b833981519152815250906118735760405162461bcd60e51b815260040161079a9190612df4565b506002828154811061188157fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116118a55750505050509050919050565b606060006118da611c89565b80519092509050806001600160401b03811180156118f757600080fd5b5060405190808252806020026020018201604052801561192b57816020015b60608152602001906001900390816119165790505b5092505b80156119e0578060019003905081818151811061194857fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561198857600080fd5b505afa15801561199c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119c49190810190612a40565b8382815181106119d057fe5b602002602001018190525061192f565b505090565b60006106b382611ec3565b600054600160a81b900460ff1681565b6060806060611a0d611c89565b81519194509150806001600160401b0381118015611a2a57600080fd5b50604051908082528060200260200182016040528015611a5e57816020015b6060815260200190600190039081611a495790505b5092505b8015611b135780600190039050818181518110611a7b57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611af79190810190612a40565b838281518110611b0357fe5b6020026020010181905250611a62565b50509091565b60006106b382612234565b611b2c6121d3565b600054600160a81b900460ff1615611b8b576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600054600160b01b900460ff1680611c0d5750600054600160a81b900460ff16155b15611c7e57611c1a61244c565b6000611c24610a15565b6001600160a01b031614611c4a5760405162461bcd60e51b815260040161079a90612e07565b6001600160a01b038116611c705760405162461bcd60e51b815260040161079a90612e34565b611c79816123d6565b611720565b611720600036612481565b60025460609081906000816001600160401b0381118015611ca957600080fd5b50604051908082528060200260200182016040528015611cd3578160200160208202803683370190505b5090506000826001600160401b0381118015611cee57600080fd5b50604051908082528060200260200182016040528015611d18578160200160208202803683370190505b50905060008060005b85811015611db457600060028281548110611d3857fe5b60009182526020822060059091020101546001600160a01b03908116915084168114611dab5781868481518110611d6b57fe5b60200260200101818152505080858481518110611d8457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b50600101611d21565b50806001600160401b0381118015611dcb57600080fd5b50604051908082528060200260200182016040528015611df5578160200160208202803683370190505b509650806001600160401b0381118015611e0e57600080fd5b50604051908082528060200260200182016040528015611e38578160200160208202803683370190505b5095505b8015611eba5780600190039050838181518110611e5557fe5b6020026020010151878281518110611e6957fe5b602002602001018181525050828181518110611e8157fe5b6020026020010151868281518110611e9557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611e3c565b50505050509091565b6002546040805180820190915260188152600080516020612f4b83398151915260208201526000918310611f0a5760405162461bcd60e51b815260040161079a9190612df4565b50600060028381548110611f1a57fe5b60009182526020822060059091020101546001600160a01b03169050806106b35760408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b60045b80156117d85760028281548110611f8a57fe5b90600052602060002090600502016001820360058110611fa657fe5b0154600280546001600160a01b039092169184908110611fc257fe5b90600052602060002090600502018260058110611fdb57fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611f77565b60008061200f83612234565b90506002818154811061201e57fe5b60009182526020822060059091020101546001600160a01b03169392505050565b8051606090806001600160401b038111801561205a57600080fd5b5060405190808252806020026020018201604052801561209457816020015b612081612673565b8152602001906001900390816120795790505b50915060005b818110156121ae578481815181106120ae57fe5b60200260200101518382815181106120c257fe5b602002602001015160000181815250508381815181106120de57fe5b60200260200101516001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561211e57600080fd5b505afa158015612132573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121569190612ae4565b85848151811061216257fe5b602002602001015160200186858151811061217957fe5b602002602001015160600187868151811061219057fe5b6020908102919091010151604001929092529190525260010161209a565b505092915050565b3d604051818101604052816000823e82156121cf578181f35b8181fd5b6121db610a5c565b6001600160a01b0316336001600160a01b031614612232576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b6000806003836040516122479190612c02565b908152602001604051809103902054905060008111604051806040016040528060188152602001600080516020612f4b8339815191528152509061229e5760405162461bcd60e51b815260040161079a9190612df4565b506000190192915050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156122ed5781810151838201526020016122d5565b50505050905090810190601f16801561231a5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156123825786818151811061235057fe5b602002602001015183141561237a5785818151811061236b57fe5b60200260200101519150612382565b60010161233b565b506001600160a01b0381166123cd576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61242882826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506122a9565b600480546001600160a01b0319166001600160a01b03929092169190911790555050565b600054600160b01b900460ff16156124795733301461246757fe5b6000805460ff60b01b19169055612232565b6122326121d3565b6124896121d3565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124de57600080fd5b505afa1580156124f2573d6000803e3d6000fd5b505050506040513d602081101561250857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061258c9392850192019061269b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b50805460018160011615610100020316600290046000825580601f106126375750611720565b601f0160209004906000526020600020908101906117209190612727565b6040518060a001604052806005906020820280368337509192915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826126d15760008555612717565b82601f106126ea57805160ff1916838001178555612717565b82800160010185558215612717579182015b828111156127175782518255916020019190600101906126fc565b50612723929150612727565b5090565b5b808211156127235760008155600101612728565b600082601f83011261274c578081fd5b8135602061276161275c83612ecb565b612ea8565b828152818101908583018385028701840188101561277d578586fd5b855b858110156127a457813561279281612f35565b8452928401929084019060010161277f565b5090979650505050505050565b600082601f8301126127c1578081fd5b81356127cf61275c82612ee8565b8181528460208386010111156127e3578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121561280e578081fd5b813561100781612f35565b6000806040838503121561282b578081fd5b82356001600160401b0380821115612841578283fd5b818501915085601f830112612854578283fd5b8135602061286461275c83612ecb565b82815281810190858301838502870184018b1015612880578788fd5b8796505b848710156128a2578035835260019690960195918301918301612884565b50965050860135925050808211156128b8578283fd5b506128c58582860161273c565b9150509250929050565b600060208083850312156128e1578182fd5b82356001600160401b038111156128f6578283fd5b8301601f81018513612906578283fd5b803561291461275c82612ecb565b81815283810190838501865b84811015612949576129378a8884358901016127b1565b84529286019290860190600101612920565b509098975050505050505050565b60006020808385031215612969578182fd5b82356001600160401b0381111561297e578283fd5b8301601f8101851361298e578283fd5b803561299c61275c82612ecb565b81815283810190838501858402850186018910156129b8578687fd5b8694505b838510156129da5780358352600194909401939185019185016129bc565b50979650505050505050565b6000602082840312156129f7578081fd5b81356001600160e01b031981168114611007578182fd5b600060208284031215612a1f578081fd5b81356001600160401b03811115612a34578182fd5b611321848285016127b1565b600060208284031215612a51578081fd5b81516001600160401b03811115612a66578182fd5b8201601f81018413612a76578182fd5b8051612a8461275c82612ee8565b818152856020838501011115612a98578384fd5b6123cd826020830160208601612f09565b600060208284031215612aba578081fd5b5035919050565b60008060408385031215612ad3578182fd5b505080516020909101519092909150565b600080600060608486031215612af8578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612b495781516001600160a01b031687529582019590820190600101612b24565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015612b9a578284038952612b88848351612bd6565b98850198935090840190600101612b70565b5091979650505050505050565b6000815180845260208085019450808401835b83811015612b4957815187529582019590820190600101612bba565b60008151808452612bee816020860160208601612f09565b601f01601f19169290920160200192915050565b60008251612c14818460208701612f09565b9190910192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015612c735783516001600160a01b031683529284019291840191600101612c4e565b50909695505050505050565b60a08101818360005b6005811015612cb05781516001600160a01b0316835260209283019290910190600101612c88565b50505092915050565b6000602082526110076020830184612b11565b6000602082526110076020830184612b54565b600060408252612cf26040830185612b54565b82810360208401526123cd8185612b11565b602080825282518282018190526000919060409081850190868401855b82811015612b9a57815180518552868101518786015285810151868601526060908101519085015260809093019290850190600101612d21565b6000602082526110076020830184612ba7565b600060408252612cf26040830185612ba7565b600060408252612d946040830185612ba7565b82810360208401526123cd8185612b54565b600060608252612db96060830186612ba7565b8281036020840152612dcb8186612b54565b90508281036040840152612ddf8185612b11565b9695505050505050565b901515815260200190565b6000602082526110076020830184612bd6565b602080825260139082015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604082015260600190565b6020808252601490820152735f6164647265737355706461746572207a65726f60601b604082015260600190565b90815260200190565b6000838252604060208301526113216040830184612bd6565b918252602082015260400190565b9283526020830191909152604082015260600190565b6040518181016001600160401b0381118282101715612ec357fe5b604052919050565b60006001600160401b03821115612ede57fe5b5060209081020190565b60006001600160401b03821115612efb57fe5b50601f01601f191660200190565b60005b83811015612f24578181015183820152602001612f0c565b83811115610e5a5750506000910152565b6001600160a01b038116811461172057600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a2646970667358221220140380afd31dde92f914f43b02db8f63077049666f36582cd758871e1f8646f264736f6c63430007060033",
766
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063798aac5b11610125578063c55d0f56116100ad578063e17f212e1161007c578063e17f212e146104a2578063e68f283b146104b7578063e848da30146104cd578063f5a98383146104e0578063ffc880fd146104e857610211565b8063c55d0f5614610447578063c71a1b201461045a578063ce1c0e4d1461047a578063d75f6d811461048f57610211565b80639d6a890f116100f45780639d6a890f146103f3578063a40060ba14610406578063a670ff871461040e578063a69afdc614610421578063b00c0b761461043457610211565b8063798aac5b1461039857806379d5ea4b146103ad57806397da6af4146103c05780639cb47538146103d357610211565b80635267a15d116101a857806362354e031161017757806362354e031461033257806367fc40291461033a5780636ba31fa11461034d57806374e6310e146103605780637687542c1461038157610211565b80635267a15d146102f857806358f9296f146103005780635aa6e675146103155780635ff270791461031d57610211565b8063257cbd3a116101e4578063257cbd3a146102805780632663f1b4146102a25780632bcdd6ab146102c257806342a0f243146102d757610211565b806306a2ba29146102165780630cf484971461023557806311a7aaaa1461024b578063136d3f6414610260575b600080fd5b61021e6104fb565b60405161022c929190612d6e565b60405180910390f35b61023d61050f565b60405161022c929190612cdf565b610253610625565b60405161022c9190612c1e565b61027361026e366004612aa9565b610634565b60405161022c9190612df4565b61029361028e366004612aa9565b6106b9565b60405161022c93929190612e92565b6102b56102b03660046127fd565b610744565b60405161022c9190612e62565b6102ca6108d5565b60405161022c9190612cb9565b6102ea6102e5366004612a0e565b610991565b60405161022c929190612e84565b610253610a15565b610308610a3a565b60405161022c9190612d04565b610253610a5c565b61033061032b3660046129e6565b610afe565b005b610253610e60565b6103306103483660046129e6565b610e78565b61030861035b366004612957565b610f60565b61037361036e3660046129e6565b61100e565b60405161022c929190612e6b565b6103896110b4565b60405161022c93929190612da6565b6103a06111cd565b60405161022c9190612d5b565b6103086103bb3660046128cf565b6111dd565b6102536103ce366004612a0e565b611329565b6103e66103e1366004612957565b611334565b60405161022c9190612c32565b6103306104013660046127fd565b6114b8565b6102ca611571565b61033061041c3660046127fd565b61157b565b61029361042f366004612a0e565b611723565b610330610442366004612819565b611731565b6102ea610455366004612aa9565b6117dc565b61046d610468366004612aa9565b6117e8565b60405161022c9190612c7f565b6104826118ce565b60405161022c9190612ccc565b61025361049d366004612aa9565b6119e5565b6104aa6119f0565b60405161022c9190612de9565b6104bf611a00565b60405161022c929190612d81565b6102b56104db366004612a0e565b611b19565b610330611b24565b6103306104f63660046127fd565b611beb565b606080610506611c89565b90939092509050565b60608061051a611c89565b80519092509050806001600160401b038111801561053757600080fd5b5060405190808252806020026020018201604052801561056b57816020015b60608152602001906001900390816105565790505b5092505b8015610620578060019003905081818151811061058857fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105c857600080fd5b505afa1580156105dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106049190810190612a40565b83828151811061061057fe5b602002602001018190525061056f565b509091565b6004546001600160a01b031681565b606061063f82611ec3565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561067757600080fd5b505afa15801561068b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b39190810190612a40565b92915050565b60008060006106c784611ec3565b6001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107379190612ae4565b9250925092509193909250565b6004546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b60208201526000916001600160a01b031633146107a35760405162461bcd60e51b815260040161079a9190612df4565b60405180910390fd5b506000826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107df57600080fd5b505afa1580156107f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261081b9190810190612a40565b905060038160405161082d9190612c02565b90815260200160405180910390205491508160001415610884576002805490509150816001016003826040516108639190612c02565b90815260405190819003602001902055600280546001018155600052610893565b60018203915061089382611f74565b82600283815481106108a157fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550919050565b6002546060906000816001600160401b03811180156108f357600080fd5b5060405190808252806020026020018201604052801561091d578160200160208202803683370190505b5090505b811561098b57816001900391506002828154811061093b57fe5b600091825260208220600590910201015481516001600160a01b039091169082908490811061096657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610921565b91505090565b60008061099d83612003565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190612ac1565b91509150915091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6060600080610a47611c89565b91509150610a55828261203f565b9250505090565b60008054600160a81b900460ff16610a7f576000546001600160a01b0316610af9565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d6020811015610af657600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d6020811015610b7957600080fd5b5051610bbc576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610c28576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610c7e576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d185780601f10610ced57610100808354040283529160200191610d18565b820191906000526020600020905b815481529060010190602001808311610cfb57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610d4c9150830182612611565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610d945780518252601f199092019160209182019101610d75565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610df6576040519150601f19603f3d011682016040523d82523d6000602084013e610dfb565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610e5a816121b6565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610e806121d3565b6001600160e01b03198116600090815260016020526040902054610eeb576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610f5b90830182612611565b505050565b6060600082516001600160401b0381118015610f7b57600080fd5b50604051908082528060200260200182016040528015610fa5578160200160208202803683370190505b50905060005b8351811015610ffc57610fd0848281518110610fc357fe5b6020026020010151611ec3565b828281518110610fdc57fe5b6001600160a01b0390921660209283029190910190910152600101610fab565b50611007838261203f565b9392505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156110aa5780601f1061107f576101008083540402835291602001916110aa565b820191906000526020600020905b81548152906001019060200180831161108d57829003601f168201915b5050505050905082565b60608060606110c1611c89565b81519194509150806001600160401b03811180156110de57600080fd5b5060405190808252806020026020018201604052801561111257816020015b60608152602001906001900390816110fd5790505b5092505b80156111c7578060019003905081818151811061112f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ab9190810190612a40565b8382815181106111b757fe5b6020026020010181905250611116565b50909192565b60606111d7611c89565b50919050565b6060600082516001600160401b03811180156111f857600080fd5b50604051908082528060200260200182016040528015611222578160200160208202803683370190505b509050600083516001600160401b038111801561123e57600080fd5b50604051908082528060200260200182016040528015611268578160200160208202803683370190505b50905060005b84518110156113165761129385828151811061128657fe5b6020026020010151612234565b83828151811061129f57fe5b60200260200101818152505060028382815181106112b957fe5b6020026020010151815481106112cb57fe5b600091825260208220600590910201015482516001600160a01b03909116908390839081106112f657fe5b6001600160a01b039092166020928302919091019091015260010161126e565b50611321828261203f565b949350505050565b60006106b382612003565b600254815160609190806001600160401b038111801561135357600080fd5b5060405190808252806020026020018201604052801561137d578160200160208202803683370190505b5092505b80156114b15780600190039050600084828151811061139c57fe5b60200260200101519050828110604051806040016040528060188152602001600080516020612f4b833981519152815250906113eb5760405162461bcd60e51b815260040161079a9190612df4565b50600281815481106113f957fe5b600091825260208220600590910201015484516001600160a01b039091169085908490811061142457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031684838151811061145b57fe5b60200260200101516001600160a01b031614156114ab5760408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b50611381565b5050919050565b600054600160a01b900460ff161561150e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b60606106b3611c89565b6004546040805180820190915260118152704654534f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146115cf5760405162461bcd60e51b815260040161079a9190612df4565b506000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561160b57600080fd5b505afa15801561161f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116479190810190612a40565b9050600060038260405161165b9190612c02565b90815260405190819003602001902054905080156116e7576000190161168081611f74565b60006002828154811061168f57fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790556040516003906116ce908490612c02565b9081526020016040518091039020600090555050611720565b60408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b50565b60008060006106c784612003565b611739610a15565b6001600160a01b0316336001600160a01b031614611795576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6117ce6117c983836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506122a9565b6123d6565b6117d882826123fa565b5050565b60008061099d83611ec3565b6117f0612655565b60025482108015611831575060006001600160a01b03166002838154811061181457fe5b60009182526020822060059091020101546001600160a01b031614155b604051806040016040528060188152602001600080516020612f4b833981519152815250906118735760405162461bcd60e51b815260040161079a9190612df4565b506002828154811061188157fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116118a55750505050509050919050565b606060006118da611c89565b80519092509050806001600160401b03811180156118f757600080fd5b5060405190808252806020026020018201604052801561192b57816020015b60608152602001906001900390816119165790505b5092505b80156119e0578060019003905081818151811061194857fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561198857600080fd5b505afa15801561199c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119c49190810190612a40565b8382815181106119d057fe5b602002602001018190525061192f565b505090565b60006106b382611ec3565b600054600160a81b900460ff1681565b6060806060611a0d611c89565b81519194509150806001600160401b0381118015611a2a57600080fd5b50604051908082528060200260200182016040528015611a5e57816020015b6060815260200190600190039081611a495790505b5092505b8015611b135780600190039050818181518110611a7b57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611af79190810190612a40565b838281518110611b0357fe5b6020026020010181905250611a62565b50509091565b60006106b382612234565b611b2c6121d3565b600054600160a81b900460ff1615611b8b576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600054600160b01b900460ff1680611c0d5750600054600160a81b900460ff16155b15611c7e57611c1a61244c565b6000611c24610a15565b6001600160a01b031614611c4a5760405162461bcd60e51b815260040161079a90612e07565b6001600160a01b038116611c705760405162461bcd60e51b815260040161079a90612e34565b611c79816123d6565b611720565b611720600036612481565b60025460609081906000816001600160401b0381118015611ca957600080fd5b50604051908082528060200260200182016040528015611cd3578160200160208202803683370190505b5090506000826001600160401b0381118015611cee57600080fd5b50604051908082528060200260200182016040528015611d18578160200160208202803683370190505b50905060008060005b85811015611db457600060028281548110611d3857fe5b60009182526020822060059091020101546001600160a01b03908116915084168114611dab5781868481518110611d6b57fe5b60200260200101818152505080858481518110611d8457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b50600101611d21565b50806001600160401b0381118015611dcb57600080fd5b50604051908082528060200260200182016040528015611df5578160200160208202803683370190505b509650806001600160401b0381118015611e0e57600080fd5b50604051908082528060200260200182016040528015611e38578160200160208202803683370190505b5095505b8015611eba5780600190039050838181518110611e5557fe5b6020026020010151878281518110611e6957fe5b602002602001018181525050828181518110611e8157fe5b6020026020010151868281518110611e9557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611e3c565b50505050509091565b6002546040805180820190915260188152600080516020612f4b83398151915260208201526000918310611f0a5760405162461bcd60e51b815260040161079a9190612df4565b50600060028381548110611f1a57fe5b60009182526020822060059091020101546001600160a01b03169050806106b35760408051808201825260188152600080516020612f4b8339815191526020820152905162461bcd60e51b815261079a9190600401612df4565b60045b80156117d85760028281548110611f8a57fe5b90600052602060002090600502016001820360058110611fa657fe5b0154600280546001600160a01b039092169184908110611fc257fe5b90600052602060002090600502018260058110611fdb57fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611f77565b60008061200f83612234565b90506002818154811061201e57fe5b60009182526020822060059091020101546001600160a01b03169392505050565b8051606090806001600160401b038111801561205a57600080fd5b5060405190808252806020026020018201604052801561209457816020015b612081612673565b8152602001906001900390816120795790505b50915060005b818110156121ae578481815181106120ae57fe5b60200260200101518382815181106120c257fe5b602002602001015160000181815250508381815181106120de57fe5b60200260200101516001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561211e57600080fd5b505afa158015612132573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121569190612ae4565b85848151811061216257fe5b602002602001015160200186858151811061217957fe5b602002602001015160600187868151811061219057fe5b6020908102919091010151604001929092529190525260010161209a565b505092915050565b3d604051818101604052816000823e82156121cf578181f35b8181fd5b6121db610a5c565b6001600160a01b0316336001600160a01b031614612232576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b6000806003836040516122479190612c02565b908152602001604051809103902054905060008111604051806040016040528060188152602001600080516020612f4b8339815191528152509061229e5760405162461bcd60e51b815260040161079a9190612df4565b506000190192915050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156122ed5781810151838201526020016122d5565b50505050905090810190601f16801561231a5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156123825786818151811061235057fe5b602002602001015183141561237a5785818151811061236b57fe5b60200260200101519150612382565b60010161233b565b506001600160a01b0381166123cd576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61242882826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506122a9565b600480546001600160a01b0319166001600160a01b03929092169190911790555050565b600054600160b01b900460ff16156124795733301461246757fe5b6000805460ff60b01b19169055612232565b6122326121d3565b6124896121d3565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124de57600080fd5b505afa1580156124f2573d6000803e3d6000fd5b505050506040513d602081101561250857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061258c9392850192019061269b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b50805460018160011615610100020316600290046000825580601f106126375750611720565b601f0160209004906000526020600020908101906117209190612727565b6040518060a001604052806005906020820280368337509192915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826126d15760008555612717565b82601f106126ea57805160ff1916838001178555612717565b82800160010185558215612717579182015b828111156127175782518255916020019190600101906126fc565b50612723929150612727565b5090565b5b808211156127235760008155600101612728565b600082601f83011261274c578081fd5b8135602061276161275c83612ecb565b612ea8565b828152818101908583018385028701840188101561277d578586fd5b855b858110156127a457813561279281612f35565b8452928401929084019060010161277f565b5090979650505050505050565b600082601f8301126127c1578081fd5b81356127cf61275c82612ee8565b8181528460208386010111156127e3578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121561280e578081fd5b813561100781612f35565b6000806040838503121561282b578081fd5b82356001600160401b0380821115612841578283fd5b818501915085601f830112612854578283fd5b8135602061286461275c83612ecb565b82815281810190858301838502870184018b1015612880578788fd5b8796505b848710156128a2578035835260019690960195918301918301612884565b50965050860135925050808211156128b8578283fd5b506128c58582860161273c565b9150509250929050565b600060208083850312156128e1578182fd5b82356001600160401b038111156128f6578283fd5b8301601f81018513612906578283fd5b803561291461275c82612ecb565b81815283810190838501865b84811015612949576129378a8884358901016127b1565b84529286019290860190600101612920565b509098975050505050505050565b60006020808385031215612969578182fd5b82356001600160401b0381111561297e578283fd5b8301601f8101851361298e578283fd5b803561299c61275c82612ecb565b81815283810190838501858402850186018910156129b8578687fd5b8694505b838510156129da5780358352600194909401939185019185016129bc565b50979650505050505050565b6000602082840312156129f7578081fd5b81356001600160e01b031981168114611007578182fd5b600060208284031215612a1f578081fd5b81356001600160401b03811115612a34578182fd5b611321848285016127b1565b600060208284031215612a51578081fd5b81516001600160401b03811115612a66578182fd5b8201601f81018413612a76578182fd5b8051612a8461275c82612ee8565b818152856020838501011115612a98578384fd5b6123cd826020830160208601612f09565b600060208284031215612aba578081fd5b5035919050565b60008060408385031215612ad3578182fd5b505080516020909101519092909150565b600080600060608486031215612af8578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612b495781516001600160a01b031687529582019590820190600101612b24565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015612b9a578284038952612b88848351612bd6565b98850198935090840190600101612b70565b5091979650505050505050565b6000815180845260208085019450808401835b83811015612b4957815187529582019590820190600101612bba565b60008151808452612bee816020860160208601612f09565b601f01601f19169290920160200192915050565b60008251612c14818460208701612f09565b9190910192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015612c735783516001600160a01b031683529284019291840191600101612c4e565b50909695505050505050565b60a08101818360005b6005811015612cb05781516001600160a01b0316835260209283019290910190600101612c88565b50505092915050565b6000602082526110076020830184612b11565b6000602082526110076020830184612b54565b600060408252612cf26040830185612b54565b82810360208401526123cd8185612b11565b602080825282518282018190526000919060409081850190868401855b82811015612b9a57815180518552868101518786015285810151868601526060908101519085015260809093019290850190600101612d21565b6000602082526110076020830184612ba7565b600060408252612cf26040830185612ba7565b600060408252612d946040830185612ba7565b82810360208401526123cd8185612b54565b600060608252612db96060830186612ba7565b8281036020840152612dcb8186612b54565b90508281036040840152612ddf8185612b11565b9695505050505050565b901515815260200190565b6000602082526110076020830184612bd6565b602080825260139082015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604082015260600190565b6020808252601490820152735f6164647265737355706461746572207a65726f60601b604082015260600190565b90815260200190565b6000838252604060208301526113216040830184612bd6565b918252602082015260400190565b9283526020830191909152604082015260600190565b6040518181016001600160401b0381118282101715612ec357fe5b604052919050565b60006001600160401b03821115612ede57fe5b5060209081020190565b60006001600160401b03821115612efb57fe5b50601f01601f191660200190565b60005b83811015612f24578181015183820152602001612f0c565b83811115610e5a5750506000910152565b6001600160a01b038116811461172057600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a2646970667358221220140380afd31dde92f914f43b02db8f63077049666f36582cd758871e1f8646f264736f6c63430007060033",
473
767
  "linkReferences": {},
474
768
  "deployedLinkReferences": {}
475
769
  }