homebridge-rainpoint 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +143 -0
  3. package/config.schema.json +148 -0
  4. package/dist/IrrigationSystemAccessory.d.ts +26 -0
  5. package/dist/IrrigationSystemAccessory.d.ts.map +1 -0
  6. package/dist/IrrigationSystemAccessory.js +168 -0
  7. package/dist/IrrigationSystemAccessory.js.map +1 -0
  8. package/dist/SensorAccessory.d.ts +22 -0
  9. package/dist/SensorAccessory.d.ts.map +1 -0
  10. package/dist/SensorAccessory.js +74 -0
  11. package/dist/SensorAccessory.js.map +1 -0
  12. package/dist/ValveAccessory.d.ts +25 -0
  13. package/dist/ValveAccessory.d.ts.map +1 -0
  14. package/dist/ValveAccessory.js +119 -0
  15. package/dist/ValveAccessory.js.map +1 -0
  16. package/dist/api/RainPointClientInterface.d.ts +65 -0
  17. package/dist/api/RainPointClientInterface.d.ts.map +1 -0
  18. package/dist/api/RainPointClientInterface.js +3 -0
  19. package/dist/api/RainPointClientInterface.js.map +1 -0
  20. package/dist/api/RainPointHomeClient.d.ts +36 -0
  21. package/dist/api/RainPointHomeClient.d.ts.map +1 -0
  22. package/dist/api/RainPointHomeClient.js +359 -0
  23. package/dist/api/RainPointHomeClient.js.map +1 -0
  24. package/dist/api/RainPointTyClient.d.ts +113 -0
  25. package/dist/api/RainPointTyClient.d.ts.map +1 -0
  26. package/dist/api/RainPointTyClient.js +947 -0
  27. package/dist/api/RainPointTyClient.js.map +1 -0
  28. package/dist/api/constants.d.ts +53 -0
  29. package/dist/api/constants.d.ts.map +1 -0
  30. package/dist/api/constants.js +105 -0
  31. package/dist/api/constants.js.map +1 -0
  32. package/dist/api/dp-parser.d.ts +14 -0
  33. package/dist/api/dp-parser.d.ts.map +1 -0
  34. package/dist/api/dp-parser.js +100 -0
  35. package/dist/api/dp-parser.js.map +1 -0
  36. package/dist/api/index.d.ts +7 -0
  37. package/dist/api/index.d.ts.map +1 -0
  38. package/dist/api/index.js +23 -0
  39. package/dist/api/index.js.map +1 -0
  40. package/dist/api/types.d.ts +330 -0
  41. package/dist/api/types.d.ts.map +1 -0
  42. package/dist/api/types.js +3 -0
  43. package/dist/api/types.js.map +1 -0
  44. package/dist/index.d.ts +4 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +7 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/naming.d.ts +14 -0
  49. package/dist/naming.d.ts.map +1 -0
  50. package/dist/naming.js +22 -0
  51. package/dist/naming.js.map +1 -0
  52. package/dist/platform.d.ts +52 -0
  53. package/dist/platform.d.ts.map +1 -0
  54. package/dist/platform.js +277 -0
  55. package/dist/platform.js.map +1 -0
  56. package/dist/settings.d.ts +3 -0
  57. package/dist/settings.d.ts.map +1 -0
  58. package/dist/settings.js +6 -0
  59. package/dist/settings.js.map +1 -0
  60. package/package.json +59 -0
@@ -0,0 +1,330 @@
1
+ export interface RainPointConfig {
2
+ name?: string;
3
+ email: string;
4
+ password: string;
5
+ /** Region for RainPoint Home provider (US or CN). */
6
+ regionHome?: string;
7
+ /** Region for RainPoint TY (Tuya) provider (AZ, EU, IN, or CN). */
8
+ regionTy?: string;
9
+ /** @deprecated use regionHome/regionTy. Kept for backward compat only. */
10
+ region?: string;
11
+ homeIndex?: number;
12
+ pollInterval?: number;
13
+ flatValves?: boolean;
14
+ debugmode?: boolean;
15
+ }
16
+ export interface BaseResponse<T> {
17
+ code: number;
18
+ msg: string;
19
+ data: T;
20
+ ts: number;
21
+ }
22
+ export interface LoginInfo {
23
+ token: string;
24
+ refreshToken: string;
25
+ tokenExpired: number;
26
+ user: User;
27
+ }
28
+ export interface User {
29
+ uid: string;
30
+ areaCode: string;
31
+ phone: string;
32
+ email: string;
33
+ nickname: string;
34
+ photo: string;
35
+ iotId: string;
36
+ productKey: string;
37
+ deviceName: string;
38
+ deviceSecret: string;
39
+ isocode: string;
40
+ lang: string;
41
+ agreementVer: string;
42
+ log: number;
43
+ notice: number;
44
+ config: string;
45
+ tmpEmail: string;
46
+ }
47
+ export interface TokenResponse {
48
+ token: string;
49
+ refreshToken: string;
50
+ tokenExpired: number;
51
+ }
52
+ export interface Home {
53
+ hid: string;
54
+ homeName: string;
55
+ homeVersion: number;
56
+ address: string;
57
+ config: string;
58
+ currency: number;
59
+ tempUnit: number;
60
+ lengthUnit: number;
61
+ timeUnit: number;
62
+ volumeUnit: number;
63
+ }
64
+ export interface MainDevice {
65
+ hid: string;
66
+ mid: string;
67
+ did: string;
68
+ iotId: string;
69
+ productKey: string;
70
+ deviceName: string;
71
+ model: string;
72
+ modelCode: number;
73
+ pcode: number;
74
+ portNumber: number;
75
+ name: string;
76
+ displayModel: string;
77
+ style: string;
78
+ function: string;
79
+ param: string;
80
+ paramVersion: number;
81
+ mac: string;
82
+ mac1: string;
83
+ softVer: string;
84
+ soft1Ver: string;
85
+ enabled: number;
86
+ createTime: number;
87
+ planJson: string;
88
+ portDescribe: string;
89
+ recich: number;
90
+ attributeKv: DeviceAttribute[];
91
+ subDevices: SubDevice[];
92
+ alerts: unknown[];
93
+ }
94
+ export interface SubDevice {
95
+ sid: string;
96
+ mid: string;
97
+ addr: number;
98
+ did: string;
99
+ iotId: string;
100
+ productKey: string;
101
+ deviceName: string;
102
+ pcode: number;
103
+ modelCode: number;
104
+ name: string;
105
+ model: string;
106
+ displayModel: string;
107
+ softVer: string;
108
+ portDescribe: string;
109
+ param: string;
110
+ style: string;
111
+ function: string;
112
+ portNumber: number;
113
+ alerts: unknown[];
114
+ mac: string;
115
+ paramVersion: number;
116
+ attributeKv: DeviceAttribute[];
117
+ planJson: string;
118
+ enabled: number;
119
+ }
120
+ export interface DeviceAttribute {
121
+ dpId: number;
122
+ dpCode: number;
123
+ dpType: number;
124
+ dpPort: number;
125
+ identity: string;
126
+ value: string;
127
+ }
128
+ export interface DeviceStatus {
129
+ MID: string;
130
+ iotId: string;
131
+ state: string;
132
+ propVer: string;
133
+ connected: string;
134
+ D01: string;
135
+ D02: string;
136
+ D03: string;
137
+ D04: string;
138
+ D05: string;
139
+ D06: string;
140
+ D07: string;
141
+ D08: string;
142
+ D09: string;
143
+ D10: string;
144
+ D11: string;
145
+ D12: string;
146
+ D13: string;
147
+ D14: string;
148
+ D15: string;
149
+ D16: string;
150
+ D17: string;
151
+ D18: string;
152
+ D19: string;
153
+ D20: string;
154
+ D21: string;
155
+ D22: string;
156
+ D23: string;
157
+ D24: string;
158
+ D25: string;
159
+ D26: string;
160
+ D27: string;
161
+ D28: string;
162
+ D29: string;
163
+ D30: string;
164
+ D31: string;
165
+ D32: string;
166
+ D33: string;
167
+ D34: string;
168
+ D35: string;
169
+ D36: string;
170
+ D37: string;
171
+ D38: string;
172
+ D39: string;
173
+ D40: string;
174
+ D41: string;
175
+ softVer: string;
176
+ recich: number;
177
+ updateTime: Record<string, number>;
178
+ timeDiff: number;
179
+ onlineTimeStamp: number;
180
+ [key: string]: string | number | Record<string, number>;
181
+ }
182
+ export interface MultipleDeviceStatus {
183
+ mid: string;
184
+ iotId: string;
185
+ propVer: string;
186
+ status: QueryDParam[];
187
+ }
188
+ export interface QueryDParam {
189
+ id: string;
190
+ time: number;
191
+ value: string;
192
+ }
193
+ export interface DParam {
194
+ time: number;
195
+ value: string;
196
+ }
197
+ export interface ControlResponse {
198
+ state: string;
199
+ timestamp: number;
200
+ }
201
+ export interface RealtimeStateResponse {
202
+ timestamp: number;
203
+ state: string;
204
+ expire: number;
205
+ }
206
+ export interface SubscribeRequest {
207
+ hid: string;
208
+ hidList: string[];
209
+ subscribe: SubscribeDevice[];
210
+ unsubscribe: SubscribeDevice[];
211
+ userInfo: SubUserInfo;
212
+ }
213
+ export interface SubscribeDevice {
214
+ mid: string;
215
+ productKey: string;
216
+ deviceName: string;
217
+ }
218
+ export interface SubUserInfo {
219
+ deviceName: string;
220
+ productKey: string;
221
+ pushId: string;
222
+ deviceType: number;
223
+ notice: number;
224
+ }
225
+ export interface ControlWorkModeParams {
226
+ mid: string;
227
+ productKey: string;
228
+ deviceName: string;
229
+ mode: number;
230
+ addr: number;
231
+ port: number;
232
+ param: string;
233
+ duration: number;
234
+ }
235
+ export interface ControlWorkModeDPParams {
236
+ mid: string;
237
+ productKey: string;
238
+ deviceName: string;
239
+ mode: number;
240
+ addr: number;
241
+ port: number;
242
+ param: string;
243
+ dpCode: number;
244
+ }
245
+ export interface RecDeviceModel {
246
+ model: string;
247
+ modelCode: number;
248
+ productCode: number;
249
+ portNumber: number;
250
+ displayModel: string;
251
+ panelId: string;
252
+ productCategory: string;
253
+ productBrand: string;
254
+ productColumn: number;
255
+ sceneType: number;
256
+ subDeviceType: number;
257
+ accessoryFlag: boolean;
258
+ hasDistribution: boolean;
259
+ isMainDevice: boolean;
260
+ infoEnabled: number;
261
+ sort: number;
262
+ supportSmart: number;
263
+ distributionName: string;
264
+ defaultSubDevice: DefaultSubDevice[];
265
+ supportedSubDevice: number[];
266
+ productImage: unknown[];
267
+ dp: RecDeviceDpModel[];
268
+ }
269
+ export interface DefaultSubDevice {
270
+ modelCode: number;
271
+ name: string;
272
+ addr: number;
273
+ pcode: number;
274
+ portNumber: number;
275
+ isDefault: boolean;
276
+ }
277
+ export interface RecDeviceDpModel {
278
+ dpId: number;
279
+ dpCode: number;
280
+ dpPort: number;
281
+ dpType: number;
282
+ dpFlags: number;
283
+ identity: string;
284
+ endpoint: number;
285
+ require: number;
286
+ specs: RecDeviceDpSpec;
287
+ }
288
+ export interface RecDeviceDpSpec {
289
+ identity: string;
290
+ dataType: number;
291
+ dataTypeSub: number;
292
+ length: number;
293
+ mask: number;
294
+ min: number;
295
+ max: number;
296
+ step: number;
297
+ decimal: number;
298
+ defaultValue: string;
299
+ unit: number;
300
+ require: number;
301
+ langField: string;
302
+ enums: RecDeviceDpSpecEnum[];
303
+ bit: RecDeviceDpSpec[];
304
+ child: RecDeviceDpSpec[];
305
+ input: RecDeviceDpSpec[];
306
+ output: RecDeviceDpSpec[];
307
+ item: RecDeviceDpSpec[];
308
+ }
309
+ export interface RecDeviceDpSpecEnum {
310
+ lang: string;
311
+ param: string;
312
+ value: number;
313
+ }
314
+ export interface ParsedDpStatus {
315
+ dpId: number;
316
+ typeCode: number;
317
+ typeLen: number;
318
+ typeValue: number[];
319
+ }
320
+ export interface DeviceZoneInfo {
321
+ port: number;
322
+ name: string;
323
+ isOn: boolean;
324
+ workMode: number;
325
+ remainingDuration: number;
326
+ moisture: number | null;
327
+ temperature: number | null;
328
+ battery: number | null;
329
+ }
330
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { API } from 'homebridge';
2
+ declare const _default: (api: API) => void;
3
+ export = _default;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;yBAKvB,KAAK,GAAG;AAAlB,kBAEE"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ const settings_1 = require("./settings");
3
+ const platform_1 = require("./platform");
4
+ module.exports = (api) => {
5
+ api.registerPlatform(settings_1.PLATFORM_NAME, platform_1.RainPointPlatform);
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,yCAA2C;AAC3C,yCAA+C;AAE/C,iBAAS,CAAC,GAAQ,EAAE,EAAE;IACpB,GAAG,CAAC,gBAAgB,CAAC,wBAAa,EAAE,4BAAiB,CAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { NormalizedDevice } from './api/RainPointClientInterface';
2
+ /**
3
+ * Per-zone display name for a device.
4
+ *
5
+ * Naming convention:
6
+ * - 1-valve device -> "{deviceName}" (flat) / "{deviceName}: Valve" (irrigation-system)
7
+ * - 2+ valve device -> "{deviceName}: {zoneLabel}" where zoneLabel is the user's
8
+ * portDescribe (e.g. "Left Valve") or falls back to "Valve N".
9
+ *
10
+ * `device.name` is always used as the prefix so multi-valve accessories sort
11
+ * together and the source device is obvious from the name.
12
+ */
13
+ export declare function zoneDisplayName(device: NormalizedDevice, port: number, flat: boolean): string;
14
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAM7F"}
package/dist/naming.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zoneDisplayName = zoneDisplayName;
4
+ /**
5
+ * Per-zone display name for a device.
6
+ *
7
+ * Naming convention:
8
+ * - 1-valve device -> "{deviceName}" (flat) / "{deviceName}: Valve" (irrigation-system)
9
+ * - 2+ valve device -> "{deviceName}: {zoneLabel}" where zoneLabel is the user's
10
+ * portDescribe (e.g. "Left Valve") or falls back to "Valve N".
11
+ *
12
+ * `device.name` is always used as the prefix so multi-valve accessories sort
13
+ * together and the source device is obvious from the name.
14
+ */
15
+ function zoneDisplayName(device, port, flat) {
16
+ const label = device.portDescribe[port - 1] || `Valve ${port}`;
17
+ if (device.portNumber <= 1) {
18
+ return flat ? device.name : `${device.name}: Valve`;
19
+ }
20
+ return `${device.name}: ${label}`;
21
+ }
22
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":";;AAaA,0CAMC;AAjBD;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,MAAwB,EAAE,IAAY,EAAE,IAAa;IACnF,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC;IAC/D,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,SAAS,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic, UnknownContext } from 'homebridge';
2
+ import { RainPointClient, NormalizedDeviceStatus } from './api/RainPointClientInterface';
3
+ export interface DeviceAccessoryContext {
4
+ deviceId: string;
5
+ port: number;
6
+ name: string;
7
+ model: string;
8
+ productId: string;
9
+ deviceType: string;
10
+ isSubDevice: boolean;
11
+ parentId?: string;
12
+ addr: number;
13
+ portName: string;
14
+ zoneNames: string[];
15
+ }
16
+ export declare class RainPointPlatform implements DynamicPlatformPlugin {
17
+ readonly log: Logger;
18
+ readonly platformConfig: PlatformConfig;
19
+ readonly api: API;
20
+ readonly Service: typeof Service;
21
+ readonly Characteristic: typeof Characteristic;
22
+ readonly accessories: PlatformAccessory<UnknownContext>[];
23
+ client: RainPointClient;
24
+ private readonly provider;
25
+ private readonly email;
26
+ private readonly password;
27
+ private readonly region;
28
+ private readonly countryCode;
29
+ private readonly homeIndex;
30
+ private readonly pollInterval;
31
+ private readonly flatValves;
32
+ private readonly debugmode;
33
+ private pollTimer;
34
+ private accessoryHandlers;
35
+ private deviceStatusMap;
36
+ private discoveredDeviceIds;
37
+ constructor(log: Logger, platformConfig: PlatformConfig, api: API);
38
+ private createClient;
39
+ configureAccessory(accessory: PlatformAccessory<UnknownContext>): void;
40
+ discoverDevices(): Promise<void>;
41
+ private registerDevice;
42
+ private registerFlatValves;
43
+ private registerValveAccessory;
44
+ private registerSensorAccessory;
45
+ private registerIrrigationSystem;
46
+ private startPolling;
47
+ private pollStatus;
48
+ private updateAccessories;
49
+ getDeviceStatus(deviceId: string): NormalizedDeviceStatus | undefined;
50
+ private cleanupStaleAccessories;
51
+ }
52
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EAGf,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AAcxC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,iBAAkB,YAAW,qBAAqB;aAuB3C,GAAG,EAAE,MAAM;aACX,cAAc,EAAE,cAAc;aAC9B,GAAG,EAAE,GAAG;IAxB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAEpF,SAAgB,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAM;IAC/D,MAAM,EAAE,eAAe,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IAEpC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,iBAAiB,CAAwF;IACjH,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,mBAAmB,CAA0B;gBAGnC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG;IAsC1B,OAAO,CAAC,YAAY;IAkBpB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAAG,IAAI;IAKhE,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCtC,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,YAAY;YAeN,UAAU;IAiBxB,OAAO,CAAC,iBAAiB;IAUzB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAIrE,OAAO,CAAC,uBAAuB;CAahC"}