@whisk/steakhouse 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/index.d.ts +1 -6
  2. package/dist/metadata/generated/vaults.d.ts +7 -0
  3. package/dist/metadata/generated/vaults.js +468 -0
  4. package/dist/metadata/generated/vaults.js.map +1 -0
  5. package/dist/metadata/index.d.ts +3 -3
  6. package/dist/metadata/index.js +4 -8
  7. package/dist/metadata/index.js.map +1 -1
  8. package/dist/metadata/types.d.ts +9 -10
  9. package/dist/metadata/types.js +4 -0
  10. package/dist/metadata/types.js.map +1 -1
  11. package/dist/queries/getTvl.d.ts +33 -0
  12. package/dist/queries/getTvl.js +33 -0
  13. package/dist/queries/getTvl.js.map +1 -0
  14. package/dist/queries/index.d.ts +1 -6
  15. package/dist/queries/index.js +1 -8
  16. package/dist/queries/index.js.map +1 -1
  17. package/dist/react/hooks/index.d.ts +3 -10
  18. package/dist/react/hooks/index.js +2 -6
  19. package/dist/react/hooks/index.js.map +1 -1
  20. package/dist/react/hooks/useTvl.d.ts +9 -0
  21. package/dist/react/hooks/useTvl.js +15 -0
  22. package/dist/react/hooks/useTvl.js.map +1 -0
  23. package/dist/react/index.d.ts +3 -10
  24. package/package.json +16 -8
  25. package/src/metadata/README.md +93 -0
  26. package/src/metadata/generated/vaults.ts +470 -0
  27. package/src/metadata/index.ts +5 -3
  28. package/src/metadata/types.ts +8 -11
  29. package/src/metadata/vaults/arbitrum/high-yield-turbo-usdc.md +6 -0
  30. package/src/metadata/vaults/arbitrum/high-yield-usdc-v1.md +6 -0
  31. package/src/metadata/vaults/arbitrum/high-yield-usdc-v2.md +6 -0
  32. package/src/metadata/vaults/arbitrum/high-yield-usdt-v2.md +6 -0
  33. package/src/metadata/vaults/base/deblock-eurc.md +6 -0
  34. package/src/metadata/vaults/base/eth-v1.md +6 -0
  35. package/src/metadata/vaults/base/eura.md +6 -0
  36. package/src/metadata/vaults/base/eurc-v1.md +6 -0
  37. package/src/metadata/vaults/base/high-yield-instant-usdc.md +6 -0
  38. package/src/metadata/vaults/base/high-yield-turbo-eth.md +6 -0
  39. package/src/metadata/vaults/base/high-yield-usdc-v1-1.md +6 -0
  40. package/src/metadata/vaults/base/high-yield-usdc.md +6 -0
  41. package/src/metadata/vaults/base/prime-instant-usdc.md +6 -0
  42. package/src/metadata/vaults/base/safe-x-eth-2.md +6 -0
  43. package/src/metadata/vaults/base/safe-x-eth.md +6 -0
  44. package/src/metadata/vaults/base/safe-x-usdc.md +6 -0
  45. package/src/metadata/vaults/base/smokehouse-usdc.md +6 -0
  46. package/src/metadata/vaults/base/susds.md +6 -0
  47. package/src/metadata/vaults/base/usda.md +6 -0
  48. package/src/metadata/vaults/base/usdc-rwa.md +6 -0
  49. package/src/metadata/vaults/base/usdc-v1.md +6 -0
  50. package/src/metadata/vaults/katana/high-yield-ausd.md +6 -0
  51. package/src/metadata/vaults/katana/high-yield-usdc.md +6 -0
  52. package/src/metadata/vaults/katana/prime-ausd.md +6 -0
  53. package/src/metadata/vaults/katana/prime-usdc.md +6 -0
  54. package/src/metadata/vaults/mainnet/3f-x-steakhouse.md +6 -0
  55. package/src/metadata/vaults/mainnet/coinshift-usdc.md +6 -0
  56. package/src/metadata/vaults/mainnet/coinshift-usdl.md +6 -0
  57. package/src/metadata/vaults/mainnet/eth-v1.md +6 -0
  58. package/src/metadata/vaults/mainnet/ethena-usdt.md +6 -0
  59. package/src/metadata/vaults/mainnet/ethena-usdtb.md +6 -0
  60. package/src/metadata/vaults/mainnet/eurcv-v1.md +6 -0
  61. package/src/metadata/vaults/mainnet/high-yield-instant-ausd-v2.md +6 -0
  62. package/src/metadata/vaults/mainnet/high-yield-instant-usdc-v2.md +6 -0
  63. package/src/metadata/vaults/mainnet/high-yield-instant-usdt-v2.md +6 -0
  64. package/src/metadata/vaults/mainnet/high-yield-term-usdc.md +6 -0
  65. package/src/metadata/vaults/mainnet/high-yield-turbo-cbbtc-v2.md +6 -0
  66. package/src/metadata/vaults/mainnet/high-yield-turbo-eth-v2.md +6 -0
  67. package/src/metadata/vaults/mainnet/high-yield-turbo-usdt-v2.md +6 -0
  68. package/src/metadata/vaults/mainnet/infinifi-usdc.md +6 -0
  69. package/src/metadata/vaults/mainnet/level-usdc.md +6 -0
  70. package/src/metadata/vaults/mainnet/m-v1.md +6 -0
  71. package/src/metadata/vaults/mainnet/paxg-v1.md +6 -0
  72. package/src/metadata/vaults/mainnet/peaty-usdc.md +6 -0
  73. package/src/metadata/vaults/mainnet/prime-instant-eth-v2.md +6 -0
  74. package/src/metadata/vaults/mainnet/prime-instant-eurcv-v2.md +6 -0
  75. package/src/metadata/vaults/mainnet/prime-instant-pyusd-v2.md +6 -0
  76. package/src/metadata/vaults/mainnet/prime-instant-usdc-v2.md +6 -0
  77. package/src/metadata/vaults/mainnet/prime-instant-usdt-v2.md +6 -0
  78. package/src/metadata/vaults/mainnet/pyusd-high-yield-instant.md +6 -0
  79. package/src/metadata/vaults/mainnet/pyusd-v1.md +6 -0
  80. package/src/metadata/vaults/mainnet/rusd-v1.md +6 -0
  81. package/src/metadata/vaults/mainnet/safe-x-eth.md +6 -0
  82. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdc.md +6 -0
  83. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdt.md +6 -0
  84. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wbtc.md +6 -0
  85. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wsteth.md +6 -0
  86. package/src/metadata/vaults/mainnet/safe-x-usdc.md +6 -0
  87. package/src/metadata/vaults/mainnet/safe-x-usdt.md +6 -0
  88. package/src/metadata/vaults/mainnet/smokehouse-cbbtc.md +6 -0
  89. package/src/metadata/vaults/mainnet/smokehouse-dai.md +6 -0
  90. package/src/metadata/vaults/mainnet/smokehouse-eth.md +6 -0
  91. package/src/metadata/vaults/mainnet/smokehouse-usdc.md +6 -0
  92. package/src/metadata/vaults/mainnet/smokehouse-usdt.md +6 -0
  93. package/src/metadata/vaults/mainnet/smokehouse-wsteth.md +6 -0
  94. package/src/metadata/vaults/mainnet/usdc-rwa.md +6 -0
  95. package/src/metadata/vaults/mainnet/usdc-v1.md +6 -0
  96. package/src/metadata/vaults/mainnet/usdq.md +6 -0
  97. package/src/metadata/vaults/mainnet/usdr.md +6 -0
  98. package/src/metadata/vaults/mainnet/usdt-lite.md +6 -0
  99. package/src/metadata/vaults/mainnet/usdt-v1.md +6 -0
  100. package/src/metadata/vaults/mainnet/vault-bridge-usdc.md +6 -0
  101. package/src/metadata/vaults/mainnet/wbtc-v1.md +6 -0
  102. package/src/metadata/vaults/monad/ausd-v2.md +6 -0
  103. package/src/metadata/vaults/monad/usdc-v2.md +6 -0
  104. package/src/metadata/vaults/unichain/eth.md +6 -0
  105. package/src/metadata/vaults/unichain/wsteth.md +6 -0
  106. package/src/queries/getTvl.ts +37 -0
  107. package/src/queries/index.ts +1 -10
  108. package/src/react/hooks/index.ts +1 -3
  109. package/src/react/hooks/useTvl.ts +14 -0
  110. package/dist/metadata/chains.d.ts +0 -7
  111. package/dist/metadata/chains.js +0 -15
  112. package/dist/metadata/chains.js.map +0 -1
  113. package/dist/metadata/vaults.d.ts +0 -7
  114. package/dist/metadata/vaults.js +0 -26
  115. package/dist/metadata/vaults.js.map +0 -1
  116. package/dist/queries/fragments/vaultDetail.d.ts +0 -265
  117. package/dist/queries/fragments/vaultDetail.js +0 -148
  118. package/dist/queries/fragments/vaultDetail.js.map +0 -1
  119. package/dist/queries/getDetailedVault.d.ts +0 -591
  120. package/dist/queries/getDetailedVault.js +0 -92
  121. package/dist/queries/getDetailedVault.js.map +0 -1
  122. package/dist/queries/getVaults.d.ts +0 -288
  123. package/dist/queries/getVaults.js +0 -49
  124. package/dist/queries/getVaults.js.map +0 -1
  125. package/dist/queries/steakhouseMetadata.d.ts +0 -13
  126. package/dist/queries/steakhouseMetadata.js +0 -12
  127. package/dist/queries/steakhouseMetadata.js.map +0 -1
  128. package/dist/queries/types.d.ts +0 -5
  129. package/dist/queries/types.js +0 -1
  130. package/dist/queries/types.js.map +0 -1
  131. package/dist/react/hooks/useDetailedVault.d.ts +0 -12
  132. package/dist/react/hooks/useDetailedVault.js +0 -16
  133. package/dist/react/hooks/useDetailedVault.js.map +0 -1
  134. package/dist/react/hooks/useSteakhouseQuery.d.ts +0 -11
  135. package/dist/react/hooks/useSteakhouseQuery.js +0 -14
  136. package/dist/react/hooks/useSteakhouseQuery.js.map +0 -1
  137. package/dist/react/hooks/useVaults.d.ts +0 -12
  138. package/dist/react/hooks/useVaults.js +0 -16
  139. package/dist/react/hooks/useVaults.js.map +0 -1
  140. package/src/metadata/chains.ts +0 -13
  141. package/src/metadata/vaults.ts +0 -27
  142. package/src/queries/fragments/vaultDetail.ts +0 -151
  143. package/src/queries/getDetailedVault.test.ts +0 -212
  144. package/src/queries/getDetailedVault.ts +0 -132
  145. package/src/queries/getVaults.test.ts +0 -186
  146. package/src/queries/getVaults.ts +0 -77
  147. package/src/queries/steakhouseMetadata.ts +0 -19
  148. package/src/queries/types.ts +0 -6
  149. package/src/react/hooks/useDetailedVault.ts +0 -19
  150. package/src/react/hooks/useSteakhouseQuery.ts +0 -17
  151. package/src/react/hooks/useVaults.ts +0 -17
@@ -1,265 +0,0 @@
1
- import * as gql_tada from 'gql.tada';
2
- import { FragmentOf } from '@whisk/graphql';
3
-
4
- /**
5
- * Full fragment for vault detail view.
6
- * Uses inline fragments to handle both MorphoVault (v1) and MorphoVaultV2.
7
- */
8
- declare const vaultDetailFragment: gql_tada.TadaDocumentNode<{
9
- __typename?: "MorphoVault";
10
- chain: {
11
- id: number;
12
- name: string;
13
- icon: string;
14
- };
15
- vaultAddress: `0x${string}`;
16
- name: string;
17
- symbol: string;
18
- decimals: number;
19
- asset: {
20
- address: `0x${string}`;
21
- symbol: string;
22
- name: string;
23
- icon: string | null;
24
- priceUsd: number | null;
25
- decimals: number;
26
- };
27
- totalAssets: {
28
- raw: bigint;
29
- formatted: string;
30
- usd: number | null;
31
- };
32
- apy: {
33
- base: number;
34
- total: number;
35
- rewards: {
36
- asset: {
37
- symbol: string;
38
- icon: string | null;
39
- };
40
- apr: number;
41
- }[];
42
- fee: number;
43
- };
44
- totalLiquidity: {
45
- formatted: string;
46
- usd: number | null;
47
- };
48
- v1PerformanceFee: number;
49
- feeRecipientAddress: `0x${string}` | null;
50
- ownerAddress: `0x${string}`;
51
- curatorAddress: `0x${string}`;
52
- guardianAddress: `0x${string}`;
53
- metadata: {
54
- description: string | null;
55
- image: string | null;
56
- forumLink: string | null;
57
- curator: {
58
- name: string;
59
- image: string;
60
- url: string;
61
- } | null;
62
- curators: {
63
- name: string;
64
- image: string;
65
- url: string;
66
- }[];
67
- } | null;
68
- marketAllocations: {
69
- market: {
70
- marketId: `0x${string}`;
71
- name: string;
72
- loanAsset: {
73
- symbol: string;
74
- icon: string | null;
75
- };
76
- collateralAsset: {
77
- symbol: string;
78
- icon: string | null;
79
- } | null;
80
- isIdle: boolean;
81
- };
82
- enabled: boolean;
83
- supplyCap: {
84
- formatted: string;
85
- usd: number | null;
86
- };
87
- vaultSupplyShare: number;
88
- marketSupplyShare: number;
89
- position: {
90
- supplyAmount: {
91
- formatted: string;
92
- usd: number | null;
93
- };
94
- };
95
- }[];
96
- riskAssessment: {
97
- steakhouse: {
98
- score: number;
99
- rating: string;
100
- } | null;
101
- };
102
- } | {
103
- __typename?: "MorphoVaultV2";
104
- chain: {
105
- id: number;
106
- name: string;
107
- icon: string;
108
- };
109
- vaultAddress: `0x${string}`;
110
- name: string;
111
- symbol: string;
112
- decimals: number;
113
- asset: {
114
- address: `0x${string}`;
115
- symbol: string;
116
- name: string;
117
- icon: string | null;
118
- priceUsd: number | null;
119
- decimals: number;
120
- };
121
- totalAssets: {
122
- raw: bigint;
123
- formatted: string;
124
- usd: number | null;
125
- };
126
- apy: {
127
- base: number;
128
- total: number;
129
- rewards: {
130
- asset: {
131
- symbol: string;
132
- icon: string | null;
133
- };
134
- apr: number;
135
- }[];
136
- fee: number;
137
- };
138
- curatorAddress: `0x${string}`;
139
- ownerAddress: `0x${string}`;
140
- metadata: {
141
- description: string | null;
142
- image: string | null;
143
- forumLink: string | null;
144
- curator: {
145
- name: string;
146
- image: string;
147
- url: string;
148
- } | null;
149
- curators: {
150
- name: string;
151
- image: string;
152
- url: string;
153
- }[];
154
- } | null;
155
- liquidityAssets: {
156
- formatted: string;
157
- usd: number | null;
158
- };
159
- idleAssets: {
160
- formatted: string;
161
- usd: number | null;
162
- };
163
- v2PerformanceFee: {
164
- formatted: string;
165
- };
166
- managementFee: {
167
- formatted: string;
168
- };
169
- adapters: ({
170
- __typename?: "MarketV1Adapter";
171
- adapterAddress: `0x${string}`;
172
- name: string | null;
173
- } | {
174
- __typename?: "BoxVaultAdapter";
175
- } | {
176
- __typename?: "UnknownAdapter";
177
- } | {
178
- __typename?: "VaultV1Adapter";
179
- })[];
180
- riskAssessment: {
181
- steakhouse: {
182
- score: number;
183
- rating: string;
184
- } | null;
185
- };
186
- } | {
187
- __typename?: "BoxVault";
188
- chain: {
189
- id: number;
190
- name: string;
191
- icon: string;
192
- };
193
- vaultAddress: `0x${string}`;
194
- name: string;
195
- symbol: string;
196
- decimals: number;
197
- asset: {
198
- address: `0x${string}`;
199
- symbol: string;
200
- name: string;
201
- icon: string | null;
202
- priceUsd: number | null;
203
- decimals: number;
204
- };
205
- totalAssets: {
206
- raw: bigint;
207
- formatted: string;
208
- usd: number | null;
209
- };
210
- apy: {
211
- base: number;
212
- total: number;
213
- rewards: {
214
- asset: {
215
- symbol: string;
216
- icon: string | null;
217
- };
218
- apr: number;
219
- }[];
220
- fee: number;
221
- };
222
- } | {
223
- __typename?: "GenericErc4626Vault";
224
- chain: {
225
- id: number;
226
- name: string;
227
- icon: string;
228
- };
229
- vaultAddress: `0x${string}`;
230
- name: string;
231
- symbol: string;
232
- decimals: number;
233
- asset: {
234
- address: `0x${string}`;
235
- symbol: string;
236
- name: string;
237
- icon: string | null;
238
- priceUsd: number | null;
239
- decimals: number;
240
- };
241
- totalAssets: {
242
- raw: bigint;
243
- formatted: string;
244
- usd: number | null;
245
- };
246
- apy: {
247
- base: number;
248
- total: number;
249
- rewards: {
250
- asset: {
251
- symbol: string;
252
- icon: string | null;
253
- };
254
- apr: number;
255
- }[];
256
- fee: number;
257
- };
258
- }, {}, {
259
- fragment: "VaultDetailFragment";
260
- on: "Erc4626Vault";
261
- masked: false;
262
- }>;
263
- type VaultDetail = FragmentOf<typeof vaultDetailFragment>;
264
-
265
- export { type VaultDetail, vaultDetailFragment };
@@ -1,148 +0,0 @@
1
- import { graphql } from "@whisk/graphql";
2
- const vaultDetailFragment = graphql(`
3
- fragment VaultDetailFragment on Erc4626Vault {
4
- chain {
5
- id
6
- name
7
- icon
8
- }
9
- vaultAddress
10
- name
11
- symbol
12
- decimals
13
- asset {
14
- address
15
- symbol
16
- name
17
- icon
18
- priceUsd
19
- decimals
20
- }
21
- totalAssets {
22
- raw
23
- formatted
24
- usd
25
- }
26
- apy(timeframe: seven_days) {
27
- base
28
- total
29
- rewards {
30
- asset {
31
- symbol
32
- icon
33
- }
34
- apr
35
- }
36
- fee
37
- }
38
- ... on MorphoVault {
39
- totalLiquidity {
40
- formatted
41
- usd
42
- }
43
- v1PerformanceFee: performanceFee
44
- feeRecipientAddress
45
- ownerAddress
46
- curatorAddress
47
- guardianAddress
48
- metadata {
49
- description
50
- image
51
- forumLink
52
- curator {
53
- name
54
- image
55
- url
56
- }
57
- curators {
58
- name
59
- image
60
- url
61
- }
62
- }
63
- marketAllocations {
64
- market {
65
- marketId
66
- name
67
- loanAsset {
68
- symbol
69
- icon
70
- }
71
- collateralAsset {
72
- symbol
73
- icon
74
- }
75
- isIdle
76
- }
77
- enabled
78
- supplyCap {
79
- formatted
80
- usd
81
- }
82
- vaultSupplyShare
83
- marketSupplyShare
84
- position {
85
- supplyAmount {
86
- formatted
87
- usd
88
- }
89
- }
90
- }
91
- riskAssessment {
92
- steakhouse {
93
- score
94
- rating
95
- }
96
- }
97
- }
98
- ... on MorphoVaultV2 {
99
- curatorAddress
100
- ownerAddress
101
- metadata {
102
- description
103
- image
104
- forumLink
105
- curator {
106
- name
107
- image
108
- url
109
- }
110
- curators {
111
- name
112
- image
113
- url
114
- }
115
- }
116
- liquidityAssets {
117
- formatted
118
- usd
119
- }
120
- idleAssets {
121
- formatted
122
- usd
123
- }
124
- v2PerformanceFee: performanceFee {
125
- formatted
126
- }
127
- managementFee {
128
- formatted
129
- }
130
- adapters {
131
- ... on MarketV1Adapter {
132
- adapterAddress
133
- name
134
- }
135
- }
136
- riskAssessment {
137
- steakhouse {
138
- score
139
- rating
140
- }
141
- }
142
- }
143
- }
144
- `);
145
- export {
146
- vaultDetailFragment
147
- };
148
- //# sourceMappingURL=vaultDetail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/queries/fragments/vaultDetail.ts"],"sourcesContent":["import { type FragmentOf, graphql } from \"@whisk/graphql\"\n\n/**\n * Full fragment for vault detail view.\n * Uses inline fragments to handle both MorphoVault (v1) and MorphoVaultV2.\n */\nexport const vaultDetailFragment = graphql(`\n fragment VaultDetailFragment on Erc4626Vault {\n chain {\n id\n name\n icon\n }\n vaultAddress\n name\n symbol\n decimals\n asset {\n address\n symbol\n name\n icon\n priceUsd\n decimals\n }\n totalAssets {\n raw\n formatted\n usd\n }\n apy(timeframe: seven_days) {\n base\n total\n rewards {\n asset {\n symbol\n icon\n }\n apr\n }\n fee\n }\n ... on MorphoVault {\n totalLiquidity {\n formatted\n usd\n }\n v1PerformanceFee: performanceFee\n feeRecipientAddress\n ownerAddress\n curatorAddress\n guardianAddress\n metadata {\n description\n image\n forumLink\n curator {\n name\n image\n url\n }\n curators {\n name\n image\n url\n }\n }\n marketAllocations {\n market {\n marketId\n name\n loanAsset {\n symbol\n icon\n }\n collateralAsset {\n symbol\n icon\n }\n isIdle\n }\n enabled\n supplyCap {\n formatted\n usd\n }\n vaultSupplyShare\n marketSupplyShare\n position {\n supplyAmount {\n formatted\n usd\n }\n }\n }\n riskAssessment {\n steakhouse {\n score\n rating\n }\n }\n }\n ... on MorphoVaultV2 {\n curatorAddress\n ownerAddress\n metadata {\n description\n image\n forumLink\n curator {\n name\n image\n url\n }\n curators {\n name\n image\n url\n }\n }\n liquidityAssets {\n formatted\n usd\n }\n idleAssets {\n formatted\n usd\n }\n v2PerformanceFee: performanceFee {\n formatted\n }\n managementFee {\n formatted\n }\n adapters {\n ... on MarketV1Adapter {\n adapterAddress\n name\n }\n }\n riskAssessment {\n steakhouse {\n score\n rating\n }\n }\n }\n }\n`)\n\nexport type VaultDetail = FragmentOf<typeof vaultDetailFragment>\n"],"mappings":"AAAA,SAA0B,eAAe;AAMlC,MAAM,sBAAsB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA8I1C;","names":[]}