@opentabs-dev/opentabs-plugin-coinbase 0.0.74

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 (85) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15111 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/coinbase-api.d.ts +14 -0
  5. package/dist/coinbase-api.d.ts.map +1 -0
  6. package/dist/coinbase-api.js +74 -0
  7. package/dist/coinbase-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +64 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-watchlist-item.d.ts +8 -0
  13. package/dist/tools/add-watchlist-item.d.ts.map +1 -0
  14. package/dist/tools/add-watchlist-item.js +33 -0
  15. package/dist/tools/add-watchlist-item.js.map +1 -0
  16. package/dist/tools/compare-asset-prices.d.ts +17 -0
  17. package/dist/tools/compare-asset-prices.d.ts.map +1 -0
  18. package/dist/tools/compare-asset-prices.js +47 -0
  19. package/dist/tools/compare-asset-prices.js.map +1 -0
  20. package/dist/tools/create-price-alert.d.ts +12 -0
  21. package/dist/tools/create-price-alert.d.ts.map +1 -0
  22. package/dist/tools/create-price-alert.js +37 -0
  23. package/dist/tools/create-price-alert.js.map +1 -0
  24. package/dist/tools/create-watchlist.d.ts +7 -0
  25. package/dist/tools/create-watchlist.d.ts.map +1 -0
  26. package/dist/tools/create-watchlist.js +27 -0
  27. package/dist/tools/create-watchlist.js.map +1 -0
  28. package/dist/tools/delete-price-alert.d.ts +7 -0
  29. package/dist/tools/delete-price-alert.d.ts.map +1 -0
  30. package/dist/tools/delete-price-alert.js +29 -0
  31. package/dist/tools/delete-price-alert.js.map +1 -0
  32. package/dist/tools/delete-watchlist.d.ts +7 -0
  33. package/dist/tools/delete-watchlist.d.ts.map +1 -0
  34. package/dist/tools/delete-watchlist.js +27 -0
  35. package/dist/tools/delete-watchlist.js.map +1 -0
  36. package/dist/tools/get-asset-by-slug.d.ts +27 -0
  37. package/dist/tools/get-asset-by-slug.d.ts.map +1 -0
  38. package/dist/tools/get-asset-by-slug.js +39 -0
  39. package/dist/tools/get-asset-by-slug.js.map +1 -0
  40. package/dist/tools/get-asset-by-symbol.d.ts +27 -0
  41. package/dist/tools/get-asset-by-symbol.d.ts.map +1 -0
  42. package/dist/tools/get-asset-by-symbol.js +39 -0
  43. package/dist/tools/get-asset-by-symbol.js.map +1 -0
  44. package/dist/tools/get-asset-by-uuid.d.ts +38 -0
  45. package/dist/tools/get-asset-by-uuid.d.ts.map +1 -0
  46. package/dist/tools/get-asset-by-uuid.js +45 -0
  47. package/dist/tools/get-asset-by-uuid.js.map +1 -0
  48. package/dist/tools/get-asset-categories.d.ts +12 -0
  49. package/dist/tools/get-asset-categories.d.ts.map +1 -0
  50. package/dist/tools/get-asset-categories.js +30 -0
  51. package/dist/tools/get-asset-categories.js.map +1 -0
  52. package/dist/tools/get-asset-networks.d.ts +13 -0
  53. package/dist/tools/get-asset-networks.d.ts.map +1 -0
  54. package/dist/tools/get-asset-networks.js +36 -0
  55. package/dist/tools/get-asset-networks.js.map +1 -0
  56. package/dist/tools/get-asset-price.d.ts +14 -0
  57. package/dist/tools/get-asset-price.d.ts.map +1 -0
  58. package/dist/tools/get-asset-price.js +40 -0
  59. package/dist/tools/get-asset-price.js.map +1 -0
  60. package/dist/tools/get-current-user.d.ts +14 -0
  61. package/dist/tools/get-current-user.d.ts.map +1 -0
  62. package/dist/tools/get-current-user.js +27 -0
  63. package/dist/tools/get-current-user.js.map +1 -0
  64. package/dist/tools/list-portfolios.d.ts +9 -0
  65. package/dist/tools/list-portfolios.d.ts.map +1 -0
  66. package/dist/tools/list-portfolios.js +26 -0
  67. package/dist/tools/list-portfolios.js.map +1 -0
  68. package/dist/tools/list-price-alerts.d.ts +14 -0
  69. package/dist/tools/list-price-alerts.d.ts.map +1 -0
  70. package/dist/tools/list-price-alerts.js +42 -0
  71. package/dist/tools/list-price-alerts.js.map +1 -0
  72. package/dist/tools/list-watchlists.d.ts +14 -0
  73. package/dist/tools/list-watchlists.d.ts.map +1 -0
  74. package/dist/tools/list-watchlists.js +34 -0
  75. package/dist/tools/list-watchlists.js.map +1 -0
  76. package/dist/tools/remove-watchlist-item.d.ts +8 -0
  77. package/dist/tools/remove-watchlist-item.d.ts.map +1 -0
  78. package/dist/tools/remove-watchlist-item.js +33 -0
  79. package/dist/tools/remove-watchlist-item.js.map +1 -0
  80. package/dist/tools/schemas.d.ts +220 -0
  81. package/dist/tools/schemas.d.ts.map +1 -0
  82. package/dist/tools/schemas.js +171 -0
  83. package/dist/tools/schemas.js.map +1 -0
  84. package/dist/tools.json +1272 -0
  85. package/package.json +55 -0
@@ -0,0 +1,220 @@
1
+ import { z } from 'zod';
2
+ export declare const userPropertiesSchema: z.ZodObject<{
3
+ uuid: z.ZodString;
4
+ name: z.ZodString;
5
+ email: z.ZodString;
6
+ native_currency: z.ZodString;
7
+ avatar_url: z.ZodString;
8
+ created_at: z.ZodString;
9
+ country_code: z.ZodString;
10
+ country_name: z.ZodString;
11
+ }, z.core.$strip>;
12
+ export interface RawUserProperties {
13
+ uuid?: string;
14
+ name?: string;
15
+ email?: string;
16
+ nativeCurrency?: string;
17
+ avatarUrl?: string;
18
+ createdAt?: string;
19
+ country?: {
20
+ code?: string;
21
+ name?: string;
22
+ };
23
+ }
24
+ export declare const mapUserProperties: (u: RawUserProperties) => {
25
+ uuid: string;
26
+ name: string;
27
+ email: string;
28
+ native_currency: string;
29
+ avatar_url: string;
30
+ created_at: string;
31
+ country_code: string;
32
+ country_name: string;
33
+ };
34
+ export declare const portfolioSchema: z.ZodObject<{
35
+ uuid: z.ZodString;
36
+ name: z.ZodString;
37
+ type: z.ZodString;
38
+ }, z.core.$strip>;
39
+ export interface RawPortfolio {
40
+ uuid?: string;
41
+ name?: string;
42
+ type?: string;
43
+ }
44
+ export declare const mapPortfolio: (p: RawPortfolio) => {
45
+ uuid: string;
46
+ name: string;
47
+ type: string;
48
+ };
49
+ export declare const assetSchema: z.ZodObject<{
50
+ uuid: z.ZodString;
51
+ name: z.ZodString;
52
+ symbol: z.ZodString;
53
+ slug: z.ZodString;
54
+ description: z.ZodString;
55
+ color: z.ZodString;
56
+ image_url: z.ZodString;
57
+ circulating_supply: z.ZodString;
58
+ max_supply: z.ZodString;
59
+ market_cap: z.ZodString;
60
+ volume_24h: z.ZodString;
61
+ all_time_high: z.ZodString;
62
+ unit_price_scale: z.ZodNumber;
63
+ }, z.core.$strip>;
64
+ export interface RawAsset {
65
+ uuid?: string;
66
+ name?: string;
67
+ symbol?: string;
68
+ slug?: string;
69
+ description?: string;
70
+ color?: string;
71
+ imageUrl?: string;
72
+ circulatingSupply?: string;
73
+ maxSupply?: string;
74
+ marketCap?: string;
75
+ volume24h?: string;
76
+ allTimeHigh?: string;
77
+ unitPriceScale?: number;
78
+ }
79
+ export declare const mapAsset: (a: RawAsset) => {
80
+ uuid: string;
81
+ name: string;
82
+ symbol: string;
83
+ slug: string;
84
+ description: string;
85
+ color: string;
86
+ image_url: string;
87
+ circulating_supply: string;
88
+ max_supply: string;
89
+ market_cap: string;
90
+ volume_24h: string;
91
+ all_time_high: string;
92
+ unit_price_scale: number;
93
+ };
94
+ export declare const assetSummarySchema: z.ZodObject<{
95
+ uuid: z.ZodString;
96
+ name: z.ZodString;
97
+ symbol: z.ZodString;
98
+ slug: z.ZodString;
99
+ image_url: z.ZodString;
100
+ }, z.core.$strip>;
101
+ export declare const mapAssetSummary: (a: RawAsset) => {
102
+ uuid: string;
103
+ name: string;
104
+ symbol: string;
105
+ slug: string;
106
+ image_url: string;
107
+ };
108
+ export declare const latestPriceSchema: z.ZodObject<{
109
+ price: z.ZodString;
110
+ timestamp: z.ZodString;
111
+ quote_currency: z.ZodString;
112
+ }, z.core.$strip>;
113
+ export interface RawLatestPrice {
114
+ price?: string;
115
+ timestamp?: string;
116
+ quoteCurrency?: string;
117
+ }
118
+ export declare const mapLatestPrice: (p: RawLatestPrice) => {
119
+ price: string;
120
+ timestamp: string;
121
+ quote_currency: string;
122
+ };
123
+ export declare const assetCategorySchema: z.ZodObject<{
124
+ uuid: z.ZodString;
125
+ name: z.ZodString;
126
+ slug: z.ZodString;
127
+ description: z.ZodString;
128
+ }, z.core.$strip>;
129
+ export interface RawAssetCategory {
130
+ uuid?: string;
131
+ name?: string;
132
+ slug?: string;
133
+ description?: string;
134
+ }
135
+ export declare const mapAssetCategory: (c: RawAssetCategory) => {
136
+ uuid: string;
137
+ name: string;
138
+ slug: string;
139
+ description: string;
140
+ };
141
+ export declare const assetNetworkSchema: z.ZodObject<{
142
+ display_name: z.ZodString;
143
+ chain_id: z.ZodNullable<z.ZodNumber>;
144
+ contract_address: z.ZodNullable<z.ZodString>;
145
+ }, z.core.$strip>;
146
+ export interface RawAssetNetwork {
147
+ displayName?: string;
148
+ chainId?: number | null;
149
+ contractAddress?: string | null;
150
+ }
151
+ export declare const mapAssetNetwork: (n: RawAssetNetwork) => {
152
+ display_name: string;
153
+ chain_id: number | null;
154
+ contract_address: string | null;
155
+ };
156
+ export declare const watchlistItemSchema: z.ZodObject<{
157
+ uuid: z.ZodString;
158
+ type: z.ZodString;
159
+ created_at: z.ZodString;
160
+ }, z.core.$strip>;
161
+ export interface RawWatchlistItem {
162
+ uuid?: string;
163
+ type?: string;
164
+ createdAt?: string;
165
+ }
166
+ export declare const mapWatchlistItem: (i: RawWatchlistItem) => {
167
+ uuid: string;
168
+ type: string;
169
+ created_at: string;
170
+ };
171
+ export declare const watchlistSchema: z.ZodObject<{
172
+ uuid: z.ZodString;
173
+ name: z.ZodString;
174
+ description: z.ZodString;
175
+ items: z.ZodArray<z.ZodObject<{
176
+ uuid: z.ZodString;
177
+ type: z.ZodString;
178
+ created_at: z.ZodString;
179
+ }, z.core.$strip>>;
180
+ }, z.core.$strip>;
181
+ export interface RawWatchlist {
182
+ uuid?: string;
183
+ name?: string;
184
+ description?: string;
185
+ items?: RawWatchlistItem[];
186
+ }
187
+ export declare const mapWatchlist: (w: RawWatchlist) => {
188
+ uuid: string;
189
+ name: string;
190
+ description: string;
191
+ items: {
192
+ uuid: string;
193
+ type: string;
194
+ created_at: string;
195
+ }[];
196
+ };
197
+ export declare const priceAlertSchema: z.ZodObject<{
198
+ uuid: z.ZodString;
199
+ target_price: z.ZodString;
200
+ direction: z.ZodString;
201
+ asset_name: z.ZodString;
202
+ asset_symbol: z.ZodString;
203
+ }, z.core.$strip>;
204
+ export interface RawPriceAlert {
205
+ uuid?: string;
206
+ targetPrice?: string;
207
+ direction?: string;
208
+ asset?: {
209
+ name?: string;
210
+ symbol?: string;
211
+ };
212
+ }
213
+ export declare const mapPriceAlert: (a: RawPriceAlert) => {
214
+ uuid: string;
215
+ target_price: string;
216
+ direction: string;
217
+ asset_name: string;
218
+ asset_symbol: string;
219
+ };
220
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ import { z } from 'zod';
2
+ // ---------------------------------------------------------------------------
3
+ // UserProperties
4
+ // ---------------------------------------------------------------------------
5
+ export const userPropertiesSchema = z.object({
6
+ uuid: z.string().describe('User UUID'),
7
+ name: z.string().describe('Full display name'),
8
+ email: z.string().describe('Email address'),
9
+ native_currency: z.string().describe('Native fiat currency code (e.g. USD)'),
10
+ avatar_url: z.string().describe('Avatar image URL'),
11
+ created_at: z.string().describe('Account creation date (ISO 8601)'),
12
+ country_code: z.string().describe('Two-letter country code'),
13
+ country_name: z.string().describe('Country name'),
14
+ });
15
+ export const mapUserProperties = (u) => ({
16
+ uuid: u.uuid ?? '',
17
+ name: u.name ?? '',
18
+ email: u.email ?? '',
19
+ native_currency: u.nativeCurrency ?? '',
20
+ avatar_url: u.avatarUrl ?? '',
21
+ created_at: u.createdAt ?? '',
22
+ country_code: u.country?.code ?? '',
23
+ country_name: u.country?.name ?? '',
24
+ });
25
+ // ---------------------------------------------------------------------------
26
+ // Portfolio
27
+ // ---------------------------------------------------------------------------
28
+ export const portfolioSchema = z.object({
29
+ uuid: z.string().describe('Portfolio UUID'),
30
+ name: z.string().describe('Portfolio name (e.g. "Primary")'),
31
+ type: z.string().describe('Portfolio type (e.g. DEFAULT)'),
32
+ });
33
+ export const mapPortfolio = (p) => ({
34
+ uuid: p.uuid ?? '',
35
+ name: p.name ?? '',
36
+ type: p.type ?? '',
37
+ });
38
+ // ---------------------------------------------------------------------------
39
+ // Asset
40
+ // ---------------------------------------------------------------------------
41
+ export const assetSchema = z.object({
42
+ uuid: z.string().describe('Asset UUID'),
43
+ name: z.string().describe('Asset full name (e.g. "Bitcoin")'),
44
+ symbol: z.string().describe('Ticker symbol (e.g. "BTC")'),
45
+ slug: z.string().describe('URL slug (e.g. "bitcoin")'),
46
+ description: z.string().describe('Asset description'),
47
+ color: z.string().describe('Brand color hex code'),
48
+ image_url: z.string().describe('Asset icon image URL'),
49
+ circulating_supply: z.string().describe('Circulating supply as numeric string'),
50
+ max_supply: z.string().describe('Maximum supply as numeric string (empty if uncapped)'),
51
+ market_cap: z.string().describe('Market capitalization in USD as numeric string'),
52
+ volume_24h: z.string().describe('24-hour trading volume in USD as numeric string'),
53
+ all_time_high: z.string().describe('All-time high price in USD as numeric string'),
54
+ unit_price_scale: z.number().describe('Decimal places for price display'),
55
+ });
56
+ export const mapAsset = (a) => ({
57
+ uuid: a.uuid ?? '',
58
+ name: a.name ?? '',
59
+ symbol: a.symbol ?? '',
60
+ slug: a.slug ?? '',
61
+ description: a.description ?? '',
62
+ color: a.color ?? '',
63
+ image_url: a.imageUrl ?? '',
64
+ circulating_supply: a.circulatingSupply ?? '',
65
+ max_supply: a.maxSupply ?? '',
66
+ market_cap: a.marketCap ?? '',
67
+ volume_24h: a.volume24h ?? '',
68
+ all_time_high: a.allTimeHigh ?? '',
69
+ unit_price_scale: a.unitPriceScale ?? 2,
70
+ });
71
+ // ---------------------------------------------------------------------------
72
+ // Asset (summary — lighter version for lists)
73
+ // ---------------------------------------------------------------------------
74
+ export const assetSummarySchema = z.object({
75
+ uuid: z.string().describe('Asset UUID'),
76
+ name: z.string().describe('Asset full name'),
77
+ symbol: z.string().describe('Ticker symbol'),
78
+ slug: z.string().describe('URL slug'),
79
+ image_url: z.string().describe('Asset icon image URL'),
80
+ });
81
+ export const mapAssetSummary = (a) => ({
82
+ uuid: a.uuid ?? '',
83
+ name: a.name ?? '',
84
+ symbol: a.symbol ?? '',
85
+ slug: a.slug ?? '',
86
+ image_url: a.imageUrl ?? '',
87
+ });
88
+ // ---------------------------------------------------------------------------
89
+ // Latest Price
90
+ // ---------------------------------------------------------------------------
91
+ export const latestPriceSchema = z.object({
92
+ price: z.string().describe('Current price as decimal string'),
93
+ timestamp: z.string().describe('Price timestamp (ISO 8601)'),
94
+ quote_currency: z.string().describe('Quote currency (e.g. USD)'),
95
+ });
96
+ export const mapLatestPrice = (p) => ({
97
+ price: p.price ?? '0',
98
+ timestamp: p.timestamp ?? '',
99
+ quote_currency: p.quoteCurrency ?? 'USD',
100
+ });
101
+ // ---------------------------------------------------------------------------
102
+ // Asset Category
103
+ // ---------------------------------------------------------------------------
104
+ export const assetCategorySchema = z.object({
105
+ uuid: z.string().describe('Category UUID'),
106
+ name: z.string().describe('Category name'),
107
+ slug: z.string().describe('Category slug'),
108
+ description: z.string().describe('Category description'),
109
+ });
110
+ export const mapAssetCategory = (c) => ({
111
+ uuid: c.uuid ?? '',
112
+ name: c.name ?? '',
113
+ slug: c.slug ?? '',
114
+ description: c.description ?? '',
115
+ });
116
+ // ---------------------------------------------------------------------------
117
+ // Asset Network
118
+ // ---------------------------------------------------------------------------
119
+ export const assetNetworkSchema = z.object({
120
+ display_name: z.string().describe('Network display name (e.g. "Ethereum", "Solana")'),
121
+ chain_id: z.number().nullable().describe('EVM chain ID (null for non-EVM networks)'),
122
+ contract_address: z.string().nullable().describe('Token contract address (null for native assets)'),
123
+ });
124
+ export const mapAssetNetwork = (n) => ({
125
+ display_name: n.displayName ?? '',
126
+ chain_id: n.chainId ?? null,
127
+ contract_address: n.contractAddress ?? null,
128
+ });
129
+ // ---------------------------------------------------------------------------
130
+ // Watchlist
131
+ // ---------------------------------------------------------------------------
132
+ export const watchlistItemSchema = z.object({
133
+ uuid: z.string().describe('Watchlist item UUID'),
134
+ type: z.string().describe('Item type (e.g. WATCHLIST_ITEM_TYPE_ASSET)'),
135
+ created_at: z.string().describe('When the item was added (ISO 8601)'),
136
+ });
137
+ export const mapWatchlistItem = (i) => ({
138
+ uuid: i.uuid ?? '',
139
+ type: i.type ?? '',
140
+ created_at: i.createdAt ?? '',
141
+ });
142
+ export const watchlistSchema = z.object({
143
+ uuid: z.string().describe('Watchlist UUID'),
144
+ name: z.string().describe('Watchlist name'),
145
+ description: z.string().describe('Watchlist description'),
146
+ items: z.array(watchlistItemSchema).describe('Items in the watchlist'),
147
+ });
148
+ export const mapWatchlist = (w) => ({
149
+ uuid: w.uuid ?? '',
150
+ name: w.name ?? '',
151
+ description: w.description ?? '',
152
+ items: (w.items ?? []).map(mapWatchlistItem),
153
+ });
154
+ // ---------------------------------------------------------------------------
155
+ // Price Alert
156
+ // ---------------------------------------------------------------------------
157
+ export const priceAlertSchema = z.object({
158
+ uuid: z.string().describe('Alert UUID'),
159
+ target_price: z.string().describe('Target price as decimal string'),
160
+ direction: z.string().describe('Alert direction (e.g. ABOVE, BELOW)'),
161
+ asset_name: z.string().describe('Asset name'),
162
+ asset_symbol: z.string().describe('Asset ticker symbol'),
163
+ });
164
+ export const mapPriceAlert = (a) => ({
165
+ uuid: a.uuid ?? '',
166
+ target_price: a.targetPrice ?? '',
167
+ direction: a.direction ?? '',
168
+ asset_name: a.asset?.name ?? '',
169
+ asset_symbol: a.asset?.symbol ?? '',
170
+ });
171
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC3C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC5E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC5D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAClD,CAAC,CAAC;AAYH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;IACpB,eAAe,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;IACvC,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE;CACpC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC3D,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;CACnB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACtD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACvF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACjF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAClF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAClF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CAC1E,CAAC,CAAC;AAkBH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;IAC3B,kBAAkB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;IAC7C,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC7B,aAAa,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC;CACxC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;CAC5B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACjE,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG;IACrB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC5B,cAAc,EAAE,CAAC,CAAC,aAAa,IAAI,KAAK;CACzC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACzD,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;CACjC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACrF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACpF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CACpG,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;IAC3B,gBAAgB,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI;CAC5C,CAAC,CAAC;AAEH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CACtE,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACzD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACvE,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAC7C,CAAC,CAAC;AAEH,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACrE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACzD,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;IAClB,YAAY,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE;CACpC,CAAC,CAAC"}