hap-nodejs 1.1.1-beta.2 → 1.1.1-beta.4
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.
- package/@types/bonjour-hap.d.ts +50 -53
- package/README.md +16 -19
- package/dist/accessories/AirConditioner_accessory.js +28 -30
- package/dist/accessories/AirConditioner_accessory.js.map +1 -1
- package/dist/accessories/AppleTVRemote_accessory.js +69 -81
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
- package/dist/accessories/Camera_accessory.js +141 -136
- package/dist/accessories/Camera_accessory.js.map +1 -1
- package/dist/accessories/Fan_accessory.js +18 -22
- package/dist/accessories/Fan_accessory.js.map +1 -1
- package/dist/accessories/GarageDoorOpener_accessory.js +33 -35
- package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
- package/dist/accessories/Light-AdaptiveLighting_accessory.js +42 -44
- package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
- package/dist/accessories/Light_accessory.js +32 -34
- package/dist/accessories/Light_accessory.js.map +1 -1
- package/dist/accessories/Lock_accessory.js +25 -26
- package/dist/accessories/Lock_accessory.js.map +1 -1
- package/dist/accessories/MotionSensor_accessory.js +13 -16
- package/dist/accessories/MotionSensor_accessory.js.map +1 -1
- package/dist/accessories/Outlet_accessory.js +20 -22
- package/dist/accessories/Outlet_accessory.js.map +1 -1
- package/dist/accessories/SmartSpeaker_accessory.js +18 -20
- package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
- package/dist/accessories/Sprinkler_accessory.js +34 -37
- package/dist/accessories/Sprinkler_accessory.js.map +1 -1
- package/dist/accessories/TV_accessory.js +43 -45
- package/dist/accessories/TV_accessory.js.map +1 -1
- package/dist/accessories/TemperatureSensor_accessory.js +12 -15
- package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.js +9 -12
- package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.js +11 -14
- package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.d.ts +3 -3
- package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.js +37 -38
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
- package/dist/accessories/types.d.ts +63 -63
- package/dist/accessories/types.d.ts.map +1 -1
- package/dist/accessories/types.js +83 -87
- package/dist/accessories/types.js.map +1 -1
- package/dist/index.d.ts +26 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -34
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +1 -1
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js +19 -21
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +38 -37
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +286 -291
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +7 -7
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +128 -136
- package/dist/lib/Advertiser.js.map +1 -1
- package/dist/lib/Bridge.d.ts +1 -1
- package/dist/lib/Bridge.d.ts.map +1 -1
- package/dist/lib/Bridge.js +2 -6
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +40 -41
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +204 -208
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +31 -30
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +220 -229
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +22 -22
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +63 -67
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/RTPProxy.d.ts +2 -1
- package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
- package/dist/lib/camera/RTPProxy.js +28 -44
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +34 -33
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +179 -151
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts +19 -17
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -1
- package/dist/lib/camera/RecordingManagement.js +160 -151
- package/dist/lib/camera/RecordingManagement.js.map +1 -1
- package/dist/lib/camera/index.d.ts +3 -3
- package/dist/lib/camera/index.d.ts.map +1 -1
- package/dist/lib/camera/index.js +3 -6
- package/dist/lib/camera/index.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts +33 -33
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +152 -144
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +22 -20
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +74 -78
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/Controller.d.ts +4 -4
- package/dist/lib/controller/Controller.d.ts.map +1 -1
- package/dist/lib/controller/Controller.js +5 -8
- package/dist/lib/controller/Controller.js.map +1 -1
- package/dist/lib/controller/DoorbellController.d.ts +5 -4
- package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
- package/dist/lib/controller/DoorbellController.js +9 -13
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +39 -37
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +208 -197
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +5 -5
- package/dist/lib/controller/index.d.ts.map +1 -1
- package/dist/lib/controller/index.js +5 -8
- package/dist/lib/controller/index.js.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.d.ts +2 -2
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +39 -39
- package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
- package/dist/lib/datastream/DataStreamParser.d.ts +1 -0
- package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamParser.js +57 -77
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +23 -22
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +154 -164
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/datastream/index.d.ts.map +1 -1
- package/dist/lib/datastream/index.js +3 -6
- package/dist/lib/datastream/index.js.map +1 -1
- package/dist/lib/dbus/align.d.ts +2 -0
- package/dist/lib/dbus/align.d.ts.map +1 -0
- package/dist/lib/dbus/align.js +12 -0
- package/dist/lib/dbus/align.js.map +1 -0
- package/dist/lib/dbus/bus.d.ts +38 -0
- package/dist/lib/dbus/bus.d.ts.map +1 -0
- package/dist/lib/dbus/bus.js +222 -0
- package/dist/lib/dbus/bus.js.map +1 -0
- package/dist/lib/dbus/constants.d.ts +43 -0
- package/dist/lib/dbus/constants.d.ts.map +1 -0
- package/dist/lib/dbus/constants.js +53 -0
- package/dist/lib/dbus/constants.js.map +1 -0
- package/dist/lib/dbus/dbus-buffer.d.ts +30 -0
- package/dist/lib/dbus/dbus-buffer.d.ts.map +1 -0
- package/dist/lib/dbus/dbus-buffer.js +175 -0
- package/dist/lib/dbus/dbus-buffer.js.map +1 -0
- package/dist/lib/dbus/handshake.d.ts +2 -0
- package/dist/lib/dbus/handshake.d.ts.map +1 -0
- package/dist/lib/dbus/handshake.js +130 -0
- package/dist/lib/dbus/handshake.js.map +1 -0
- package/dist/lib/dbus/index.d.ts +3 -0
- package/dist/lib/dbus/index.d.ts.map +1 -0
- package/dist/lib/dbus/index.js +123 -0
- package/dist/lib/dbus/index.js.map +1 -0
- package/dist/lib/dbus/introspect.d.ts +30 -0
- package/dist/lib/dbus/introspect.d.ts.map +1 -0
- package/dist/lib/dbus/introspect.js +208 -0
- package/dist/lib/dbus/introspect.js.map +1 -0
- package/dist/lib/dbus/marshall.d.ts +2 -0
- package/dist/lib/dbus/marshall.d.ts.map +1 -0
- package/dist/lib/dbus/marshall.js +97 -0
- package/dist/lib/dbus/marshall.js.map +1 -0
- package/dist/lib/dbus/marshallers.d.ts +10 -0
- package/dist/lib/dbus/marshallers.d.ts.map +1 -0
- package/dist/lib/dbus/marshallers.js +329 -0
- package/dist/lib/dbus/marshallers.js.map +1 -0
- package/dist/lib/dbus/message.d.ts +4 -0
- package/dist/lib/dbus/message.d.ts.map +1 -0
- package/dist/lib/dbus/message.js +116 -0
- package/dist/lib/dbus/message.js.map +1 -0
- package/dist/lib/dbus/put.d.ts +21 -0
- package/dist/lib/dbus/put.d.ts.map +1 -0
- package/dist/lib/dbus/put.js +120 -0
- package/dist/lib/dbus/put.js.map +1 -0
- package/dist/lib/dbus/readline.d.ts +2 -0
- package/dist/lib/dbus/readline.d.ts.map +1 -0
- package/dist/lib/dbus/readline.js +27 -0
- package/dist/lib/dbus/readline.js.map +1 -0
- package/dist/lib/dbus/signature.d.ts +2 -0
- package/dist/lib/dbus/signature.d.ts.map +1 -0
- package/dist/lib/dbus/signature.js +59 -0
- package/dist/lib/dbus/signature.js.map +1 -0
- package/dist/lib/dbus/stdifaces.d.ts +3 -0
- package/dist/lib/dbus/stdifaces.d.ts.map +1 -0
- package/dist/lib/dbus/stdifaces.js +206 -0
- package/dist/lib/dbus/stdifaces.js.map +1 -0
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.js +958 -1204
- package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.d.ts +1 -1
- package/dist/lib/definitions/ServiceDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.js +620 -695
- package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
- package/dist/lib/definitions/generate-definitions.d.ts +3 -3
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +246 -253
- package/dist/lib/definitions/generate-definitions.js.map +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
- package/dist/lib/definitions/generator-configuration.js +160 -165
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/definitions/index.d.ts +2 -2
- package/dist/lib/definitions/index.d.ts.map +1 -1
- package/dist/lib/definitions/index.js +2 -5
- package/dist/lib/definitions/index.js.map +1 -1
- package/dist/lib/model/AccessoryInfo.d.ts +4 -3
- package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
- package/dist/lib/model/AccessoryInfo.js +50 -53
- package/dist/lib/model/AccessoryInfo.js.map +1 -1
- package/dist/lib/model/ControllerStorage.d.ts +3 -3
- package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
- package/dist/lib/model/ControllerStorage.js +17 -22
- package/dist/lib/model/ControllerStorage.js.map +1 -1
- package/dist/lib/model/HAPStorage.d.ts +2 -2
- package/dist/lib/model/HAPStorage.d.ts.map +1 -1
- package/dist/lib/model/HAPStorage.js +4 -11
- package/dist/lib/model/HAPStorage.js.map +1 -1
- package/dist/lib/model/IdentifierCache.d.ts +1 -1
- package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
- package/dist/lib/model/IdentifierCache.js +19 -27
- package/dist/lib/model/IdentifierCache.js.map +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts +9 -9
- package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
- package/dist/lib/tv/AccessControlManagement.js +27 -29
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/checkName.d.ts +2 -2
- package/dist/lib/util/checkName.d.ts.map +1 -1
- package/dist/lib/util/checkName.js +6 -9
- package/dist/lib/util/checkName.js.map +1 -1
- package/dist/lib/util/clone.d.ts.map +1 -1
- package/dist/lib/util/clone.js +1 -5
- package/dist/lib/util/clone.js.map +1 -1
- package/dist/lib/util/color-utils.d.ts +1 -1
- package/dist/lib/util/color-utils.d.ts.map +1 -1
- package/dist/lib/util/color-utils.js +4 -9
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +23 -22
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +109 -116
- package/dist/lib/util/eventedhttp.js.map +1 -1
- package/dist/lib/util/hapCrypto.d.ts +3 -2
- package/dist/lib/util/hapCrypto.d.ts.map +1 -1
- package/dist/lib/util/hapCrypto.js +31 -40
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.d.ts +1 -1
- package/dist/lib/util/hapStatusError.d.ts.map +1 -1
- package/dist/lib/util/hapStatusError.js +4 -8
- package/dist/lib/util/hapStatusError.js.map +1 -1
- package/dist/lib/util/net-utils.d.ts +1 -1
- package/dist/lib/util/net-utils.js +17 -23
- package/dist/lib/util/net-utils.js.map +1 -1
- package/dist/lib/util/once.d.ts.map +1 -1
- package/dist/lib/util/once.js +2 -6
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +1 -1
- package/dist/lib/util/promise-utils.d.ts.map +1 -1
- package/dist/lib/util/promise-utils.js +3 -9
- package/dist/lib/util/promise-utils.js.map +1 -1
- package/dist/lib/util/request-util.d.ts +3 -2
- package/dist/lib/util/request-util.d.ts.map +1 -1
- package/dist/lib/util/request-util.js +11 -19
- package/dist/lib/util/request-util.js.map +1 -1
- package/dist/lib/util/time.d.ts +1 -0
- package/dist/lib/util/time.d.ts.map +1 -1
- package/dist/lib/util/time.js +6 -11
- package/dist/lib/util/time.js.map +1 -1
- package/dist/lib/util/tlv.d.ts +1 -0
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +28 -43
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/uuid.d.ts +1 -0
- package/dist/lib/util/uuid.d.ts.map +1 -1
- package/dist/lib/util/uuid.js +26 -38
- package/dist/lib/util/uuid.js.map +1 -1
- package/dist/types.d.ts +24 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -5
- package/dist/types.js.map +1 -1
- package/package.json +48 -45
- package/@types/simple-plist.d.ts +0 -4
- package/dist/lib/gen/HomeKit.d.ts +0 -7
- package/dist/lib/gen/HomeKit.d.ts.map +0 -1
- package/dist/lib/gen/HomeKit.js +0 -8
- package/dist/lib/gen/HomeKit.js.map +0 -1
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const hapCrypto = tslib_1.__importStar(require("../util/hapCrypto"));
|
|
7
|
-
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
8
|
-
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { Buffer } from 'node:buffer';
|
|
3
|
+
import createDebug from 'debug';
|
|
4
|
+
import { writeUInt64LE } from '../util/hapCrypto.js';
|
|
5
|
+
import { isValid, unparse, write } from '../util/uuid.js';
|
|
9
6
|
// welcome to hell :)
|
|
10
7
|
// in this file lies madness and frustration. and It's not only about HDS. Also, JavaScript is hell
|
|
11
|
-
const debug = (
|
|
8
|
+
const debug = createDebug('HAP-NodeJS:DataStream:Parser');
|
|
12
9
|
class Magics {
|
|
13
|
-
static TERMINATOR = { type:
|
|
10
|
+
static TERMINATOR = { type: 'terminator' };
|
|
14
11
|
}
|
|
15
12
|
/**
|
|
16
13
|
* @group HomeKit Data Streams (HDS)
|
|
17
14
|
*/
|
|
18
|
-
class ValueWrapper {
|
|
15
|
+
export class ValueWrapper {
|
|
19
16
|
value;
|
|
20
17
|
constructor(value) {
|
|
21
18
|
this.value = value;
|
|
@@ -24,63 +21,55 @@ class ValueWrapper {
|
|
|
24
21
|
return this.constructor.name === obj.constructor.name && obj.value === this.value;
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
|
-
exports.ValueWrapper = ValueWrapper;
|
|
28
24
|
/**
|
|
29
25
|
* @group HomeKit Data Streams (HDS)
|
|
30
26
|
*/
|
|
31
|
-
class Int8 extends ValueWrapper {
|
|
27
|
+
export class Int8 extends ValueWrapper {
|
|
32
28
|
}
|
|
33
|
-
exports.Int8 = Int8;
|
|
34
29
|
/**
|
|
35
30
|
* @group HomeKit Data Streams (HDS)
|
|
36
31
|
*/
|
|
37
|
-
class Int16 extends ValueWrapper {
|
|
32
|
+
export class Int16 extends ValueWrapper {
|
|
38
33
|
}
|
|
39
|
-
exports.Int16 = Int16;
|
|
40
34
|
/**
|
|
41
35
|
* @group HomeKit Data Streams (HDS)
|
|
42
36
|
*/
|
|
43
|
-
class Int32 extends ValueWrapper {
|
|
37
|
+
export class Int32 extends ValueWrapper {
|
|
44
38
|
}
|
|
45
|
-
exports.Int32 = Int32;
|
|
46
39
|
/**
|
|
47
40
|
* @group HomeKit Data Streams (HDS)
|
|
48
41
|
*/
|
|
49
|
-
class Int64 extends ValueWrapper {
|
|
42
|
+
export class Int64 extends ValueWrapper {
|
|
50
43
|
}
|
|
51
|
-
exports.Int64 = Int64;
|
|
52
44
|
/**
|
|
53
45
|
* @group HomeKit Data Streams (HDS)
|
|
54
46
|
*/
|
|
55
|
-
class Float32 extends ValueWrapper {
|
|
47
|
+
export class Float32 extends ValueWrapper {
|
|
56
48
|
}
|
|
57
|
-
exports.Float32 = Float32;
|
|
58
49
|
/**
|
|
59
50
|
* @group HomeKit Data Streams (HDS)
|
|
60
51
|
*/
|
|
61
|
-
class Float64 extends ValueWrapper {
|
|
52
|
+
export class Float64 extends ValueWrapper {
|
|
62
53
|
}
|
|
63
|
-
exports.Float64 = Float64;
|
|
64
54
|
/**
|
|
65
55
|
* @group HomeKit Data Streams (HDS)
|
|
66
56
|
*/
|
|
67
|
-
class SecondsSince2001 extends ValueWrapper {
|
|
57
|
+
export class SecondsSince2001 extends ValueWrapper {
|
|
68
58
|
}
|
|
69
|
-
exports.SecondsSince2001 = SecondsSince2001;
|
|
70
59
|
/**
|
|
71
60
|
* @group HomeKit Data Streams (HDS)
|
|
72
61
|
*/
|
|
73
|
-
class UUID extends ValueWrapper {
|
|
62
|
+
export class UUID extends ValueWrapper {
|
|
74
63
|
constructor(value) {
|
|
75
|
-
(
|
|
64
|
+
assert(isValid(value), 'invalid uuid format');
|
|
76
65
|
super(value);
|
|
77
66
|
}
|
|
78
67
|
}
|
|
79
|
-
exports.UUID = UUID;
|
|
80
68
|
/**
|
|
81
69
|
* @group HomeKit Data Streams (HDS)
|
|
82
70
|
*/
|
|
83
|
-
|
|
71
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
72
|
+
export var DataFormatTags;
|
|
84
73
|
(function (DataFormatTags) {
|
|
85
74
|
DataFormatTags[DataFormatTags["INVALID"] = 0] = "INVALID";
|
|
86
75
|
DataFormatTags[DataFormatTags["TRUE"] = 1] = "TRUE";
|
|
@@ -120,16 +109,15 @@ var DataFormatTags;
|
|
|
120
109
|
DataFormatTags[DataFormatTags["DICTIONARY_LENGTH_START"] = 224] = "DICTIONARY_LENGTH_START";
|
|
121
110
|
DataFormatTags[DataFormatTags["DICTIONARY_LENGTH_STOP"] = 238] = "DICTIONARY_LENGTH_STOP";
|
|
122
111
|
DataFormatTags[DataFormatTags["DICTIONARY_TERMINATED"] = 239] = "DICTIONARY_TERMINATED";
|
|
123
|
-
})(DataFormatTags || (
|
|
112
|
+
})(DataFormatTags || (DataFormatTags = {}));
|
|
124
113
|
/**
|
|
125
114
|
* @group HomeKit Data Streams (HDS)
|
|
126
115
|
*/
|
|
127
|
-
class DataStreamParser {
|
|
128
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
116
|
+
export class DataStreamParser {
|
|
129
117
|
static decode(buffer) {
|
|
130
118
|
const tag = buffer.readTag();
|
|
131
119
|
if (tag === 0 /* DataFormatTags.INVALID */) {
|
|
132
|
-
throw new Error(
|
|
120
|
+
throw new Error(`HDSDecoder: zero tag detected on index ${buffer.readerIndex}`);
|
|
133
121
|
}
|
|
134
122
|
else if (tag === 1 /* DataFormatTags.TRUE */) {
|
|
135
123
|
return buffer.readTrue();
|
|
@@ -225,15 +213,15 @@ class DataStreamParser {
|
|
|
225
213
|
}
|
|
226
214
|
else if (tag === 223 /* DataFormatTags.ARRAY_TERMINATED */) {
|
|
227
215
|
const array = [];
|
|
228
|
-
let element;
|
|
229
|
-
while (
|
|
216
|
+
let element = this.decode(buffer);
|
|
217
|
+
while (element !== Magics.TERMINATOR) {
|
|
230
218
|
array.push(element);
|
|
219
|
+
element = this.decode(buffer);
|
|
231
220
|
}
|
|
232
221
|
return array;
|
|
233
222
|
}
|
|
234
223
|
else if (tag >= 224 /* DataFormatTags.DICTIONARY_LENGTH_START */ && tag <= 238 /* DataFormatTags.DICTIONARY_LENGTH_STOP */) {
|
|
235
224
|
const length = tag - 224 /* DataFormatTags.DICTIONARY_LENGTH_START */;
|
|
236
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
237
225
|
const dictionary = {};
|
|
238
226
|
for (let i = 0; i < length; i++) {
|
|
239
227
|
const key = this.decode(buffer);
|
|
@@ -242,29 +230,28 @@ class DataStreamParser {
|
|
|
242
230
|
return dictionary;
|
|
243
231
|
}
|
|
244
232
|
else if (tag === 239 /* DataFormatTags.DICTIONARY_TERMINATED */) {
|
|
245
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
246
233
|
const dictionary = {};
|
|
247
|
-
let key;
|
|
248
|
-
while (
|
|
234
|
+
let key = this.decode(buffer);
|
|
235
|
+
while (key !== Magics.TERMINATOR) {
|
|
249
236
|
dictionary[key] = this.decode(buffer); // decode value
|
|
237
|
+
key = this.decode(buffer);
|
|
250
238
|
}
|
|
251
239
|
return dictionary;
|
|
252
240
|
}
|
|
253
241
|
else {
|
|
254
|
-
throw new Error(
|
|
242
|
+
throw new Error(`HDSDecoder: encountered unknown tag on index ${buffer.readerIndex}: ${tag.toString(16)}`);
|
|
255
243
|
}
|
|
256
244
|
}
|
|
257
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any
|
|
258
245
|
static encode(data, buffer) {
|
|
259
246
|
if (data === undefined) {
|
|
260
|
-
throw new Error(
|
|
247
|
+
throw new Error('HDSEncoder: cannot encode undefined');
|
|
261
248
|
}
|
|
262
249
|
if (data === null) {
|
|
263
250
|
buffer.writeTag(4 /* DataFormatTags.NULL */);
|
|
264
251
|
return;
|
|
265
252
|
}
|
|
266
253
|
switch (typeof data) {
|
|
267
|
-
case
|
|
254
|
+
case 'boolean':
|
|
268
255
|
if (data) {
|
|
269
256
|
buffer.writeTrue();
|
|
270
257
|
}
|
|
@@ -272,7 +259,7 @@ class DataStreamParser {
|
|
|
272
259
|
buffer.writeFalse();
|
|
273
260
|
}
|
|
274
261
|
break;
|
|
275
|
-
case
|
|
262
|
+
case 'number':
|
|
276
263
|
if (Number.isInteger(data)) {
|
|
277
264
|
buffer.writeNumber(data);
|
|
278
265
|
}
|
|
@@ -280,10 +267,10 @@ class DataStreamParser {
|
|
|
280
267
|
buffer.writeFloat64LE(new Float64(data));
|
|
281
268
|
}
|
|
282
269
|
break;
|
|
283
|
-
case
|
|
270
|
+
case 'string':
|
|
284
271
|
buffer.writeUTF8(data);
|
|
285
272
|
break;
|
|
286
|
-
case
|
|
273
|
+
case 'object':
|
|
287
274
|
if (Array.isArray(data)) {
|
|
288
275
|
const length = data.length;
|
|
289
276
|
if (length <= 12) {
|
|
@@ -292,7 +279,7 @@ class DataStreamParser {
|
|
|
292
279
|
else {
|
|
293
280
|
buffer.writeTag(223 /* DataFormatTags.ARRAY_TERMINATED */);
|
|
294
281
|
}
|
|
295
|
-
data.forEach(element => {
|
|
282
|
+
data.forEach((element) => {
|
|
296
283
|
this.encode(element, buffer);
|
|
297
284
|
});
|
|
298
285
|
if (length > 12) {
|
|
@@ -325,7 +312,7 @@ class DataStreamParser {
|
|
|
325
312
|
buffer.writeUUID(data.value);
|
|
326
313
|
}
|
|
327
314
|
else {
|
|
328
|
-
throw new
|
|
315
|
+
throw new TypeError(`Unknown wrapped object 'ValueWrapper' of class ${data.constructor.name}`);
|
|
329
316
|
}
|
|
330
317
|
}
|
|
331
318
|
else if (data instanceof Buffer) {
|
|
@@ -340,7 +327,7 @@ class DataStreamParser {
|
|
|
340
327
|
else {
|
|
341
328
|
buffer.writeTag(239 /* DataFormatTags.DICTIONARY_TERMINATED */);
|
|
342
329
|
}
|
|
343
|
-
entries.forEach(entry => {
|
|
330
|
+
entries.forEach((entry) => {
|
|
344
331
|
this.encode(entry[0], buffer); // encode key
|
|
345
332
|
this.encode(entry[1], buffer); // encode value
|
|
346
333
|
});
|
|
@@ -350,18 +337,16 @@ class DataStreamParser {
|
|
|
350
337
|
}
|
|
351
338
|
break;
|
|
352
339
|
default:
|
|
353
|
-
throw new Error(
|
|
340
|
+
throw new Error(`HDSEncoder: no idea how to encode value of type '${typeof data}': ${data}`);
|
|
354
341
|
}
|
|
355
342
|
}
|
|
356
343
|
}
|
|
357
|
-
exports.DataStreamParser = DataStreamParser;
|
|
358
344
|
/**
|
|
359
345
|
* @group HomeKit Data Streams (HDS)
|
|
360
346
|
*/
|
|
361
|
-
class DataStreamReader {
|
|
347
|
+
export class DataStreamReader {
|
|
362
348
|
data;
|
|
363
349
|
readerIndex;
|
|
364
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
365
350
|
trackedCompressedData = [];
|
|
366
351
|
constructor(data) {
|
|
367
352
|
this.data = data;
|
|
@@ -369,15 +354,13 @@ class DataStreamReader {
|
|
|
369
354
|
}
|
|
370
355
|
finished() {
|
|
371
356
|
if (this.readerIndex < this.data.length) {
|
|
372
|
-
const remainingHex = this.data.
|
|
373
|
-
debug(
|
|
357
|
+
const remainingHex = this.data.subarray(this.readerIndex, this.data.length).toString('hex');
|
|
358
|
+
debug('WARNING Finished reading HDS stream, but there are still %d bytes remaining () %s', this.data.length - this.readerIndex, remainingHex);
|
|
374
359
|
}
|
|
375
360
|
}
|
|
376
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
377
361
|
decompressData(index) {
|
|
378
362
|
if (index >= this.trackedCompressedData.length) {
|
|
379
|
-
throw new Error(
|
|
380
|
-
" and got " + this.trackedCompressedData.length + " elements)");
|
|
363
|
+
throw new Error(`HDSDecoder: Tried decompression of data for an index out of range (index ${index} and got ${this.trackedCompressedData.length} elements)`);
|
|
381
364
|
}
|
|
382
365
|
return this.trackedCompressedData[index];
|
|
383
366
|
}
|
|
@@ -388,7 +371,7 @@ class DataStreamReader {
|
|
|
388
371
|
ensureLength(bytes) {
|
|
389
372
|
if (this.readerIndex + bytes > this.data.length) {
|
|
390
373
|
const remaining = this.data.length - this.readerIndex;
|
|
391
|
-
throw new Error(
|
|
374
|
+
throw new Error(`HDSDecoder: End of data stream. Tried reading ${bytes} bytes however got only ${remaining} remaining!`);
|
|
392
375
|
}
|
|
393
376
|
}
|
|
394
377
|
readTag() {
|
|
@@ -469,7 +452,7 @@ class DataStreamReader {
|
|
|
469
452
|
}
|
|
470
453
|
readUTF8(length) {
|
|
471
454
|
this.ensureLength(length);
|
|
472
|
-
const value = this.data.toString(
|
|
455
|
+
const value = this.data.toString('utf8', this.readerIndex, this.readerIndex + length);
|
|
473
456
|
this.readerIndex += length;
|
|
474
457
|
return this.trackData(value);
|
|
475
458
|
}
|
|
@@ -495,7 +478,7 @@ class DataStreamReader {
|
|
|
495
478
|
for (;;) {
|
|
496
479
|
nextByte = this.data[offset];
|
|
497
480
|
if (nextByte === undefined) {
|
|
498
|
-
throw new Error(
|
|
481
|
+
throw new Error('HDSDecoder: Reached end of data stream while reading NUL terminated string!');
|
|
499
482
|
}
|
|
500
483
|
else if (nextByte === 0) {
|
|
501
484
|
break;
|
|
@@ -504,13 +487,13 @@ class DataStreamReader {
|
|
|
504
487
|
offset++;
|
|
505
488
|
}
|
|
506
489
|
}
|
|
507
|
-
const value = this.data.toString(
|
|
490
|
+
const value = this.data.toString('utf8', this.readerIndex, offset);
|
|
508
491
|
this.readerIndex = offset + 1;
|
|
509
492
|
return this.trackData(value);
|
|
510
493
|
}
|
|
511
494
|
readData(length) {
|
|
512
495
|
this.ensureLength(length);
|
|
513
|
-
const value = this.data.
|
|
496
|
+
const value = this.data.subarray(this.readerIndex, this.readerIndex + length);
|
|
514
497
|
this.readerIndex += length;
|
|
515
498
|
return this.trackData(value);
|
|
516
499
|
}
|
|
@@ -536,7 +519,7 @@ class DataStreamReader {
|
|
|
536
519
|
for (;;) {
|
|
537
520
|
nextByte = this.data[offset];
|
|
538
521
|
if (nextByte === undefined) {
|
|
539
|
-
throw new Error(
|
|
522
|
+
throw new Error('HDSDecoder: Reached end of data stream while reading terminated data!');
|
|
540
523
|
}
|
|
541
524
|
else if (nextByte === 3 /* DataFormatTags.TERMINATOR */) {
|
|
542
525
|
break;
|
|
@@ -545,7 +528,7 @@ class DataStreamReader {
|
|
|
545
528
|
offset++;
|
|
546
529
|
}
|
|
547
530
|
}
|
|
548
|
-
const value = this.data.
|
|
531
|
+
const value = this.data.subarray(this.readerIndex, offset);
|
|
549
532
|
this.readerIndex = offset + 1;
|
|
550
533
|
return this.trackData(value);
|
|
551
534
|
}
|
|
@@ -555,14 +538,12 @@ class DataStreamReader {
|
|
|
555
538
|
}
|
|
556
539
|
readUUID() {
|
|
557
540
|
this.ensureLength(16);
|
|
558
|
-
const value =
|
|
541
|
+
const value = unparse(this.data, this.readerIndex);
|
|
559
542
|
this.readerIndex += 16;
|
|
560
543
|
return this.trackData(value);
|
|
561
544
|
}
|
|
562
545
|
}
|
|
563
|
-
exports.DataStreamReader = DataStreamReader;
|
|
564
546
|
class WrittenDataList {
|
|
565
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
566
547
|
writtenData = [];
|
|
567
548
|
push(data) {
|
|
568
549
|
this.writtenData.push(data);
|
|
@@ -585,7 +566,7 @@ class WrittenDataList {
|
|
|
585
566
|
/**
|
|
586
567
|
* @group HomeKit Data Streams (HDS)
|
|
587
568
|
*/
|
|
588
|
-
class DataStreamWriter {
|
|
569
|
+
export class DataStreamWriter {
|
|
589
570
|
static chunkSize = 128; // seems to be a good default
|
|
590
571
|
data;
|
|
591
572
|
writerIndex;
|
|
@@ -598,7 +579,7 @@ class DataStreamWriter {
|
|
|
598
579
|
return this.writerIndex; // since writerIndex points to the next FREE index it also represents the length
|
|
599
580
|
}
|
|
600
581
|
getData() {
|
|
601
|
-
return this.data.
|
|
582
|
+
return this.data.subarray(0, this.writerIndex);
|
|
602
583
|
}
|
|
603
584
|
ensureLength(bytes) {
|
|
604
585
|
const neededBytes = (this.writerIndex + bytes) - this.data.length;
|
|
@@ -653,7 +634,7 @@ class DataStreamWriter {
|
|
|
653
634
|
this.writeInt64LE(new Int64(number));
|
|
654
635
|
}
|
|
655
636
|
else {
|
|
656
|
-
throw new Error(
|
|
637
|
+
throw new Error(`Tried writing unrepresentable number (${number})`);
|
|
657
638
|
}
|
|
658
639
|
}
|
|
659
640
|
writeInt8(int8) {
|
|
@@ -726,7 +707,7 @@ class DataStreamWriter {
|
|
|
726
707
|
}
|
|
727
708
|
writeLength64LE(length) {
|
|
728
709
|
this.ensureLength(8);
|
|
729
|
-
|
|
710
|
+
writeUInt64LE(length, this.data, this.writerIndex);
|
|
730
711
|
this.writerIndex += 8;
|
|
731
712
|
}
|
|
732
713
|
writeUTF8(utf8) {
|
|
@@ -758,7 +739,7 @@ class DataStreamWriter {
|
|
|
758
739
|
_writeUTF8(utf8) {
|
|
759
740
|
const byteLength = Buffer.byteLength(utf8);
|
|
760
741
|
this.ensureLength(byteLength);
|
|
761
|
-
this.data.write(utf8, this.writerIndex, byteLength,
|
|
742
|
+
this.data.write(utf8, this.writerIndex, byteLength, 'utf8');
|
|
762
743
|
this.writerIndex += byteLength;
|
|
763
744
|
}
|
|
764
745
|
writeUTF8_Length8(utf8) {
|
|
@@ -865,15 +846,14 @@ class DataStreamWriter {
|
|
|
865
846
|
this.writerIndex += 8;
|
|
866
847
|
}
|
|
867
848
|
writeUUID(uuid_string) {
|
|
868
|
-
(
|
|
849
|
+
assert(isValid(uuid_string), 'supplied uuid is invalid');
|
|
869
850
|
if (this.compressDataIfPossible(new UUID(uuid_string))) {
|
|
870
851
|
return;
|
|
871
852
|
}
|
|
872
853
|
this.ensureLength(17);
|
|
873
854
|
this.writeTag(5 /* DataFormatTags.UUID */);
|
|
874
|
-
|
|
855
|
+
write(uuid_string, this.data, this.writerIndex);
|
|
875
856
|
this.writerIndex += 16;
|
|
876
857
|
}
|
|
877
858
|
}
|
|
878
|
-
exports.DataStreamWriter = DataStreamWriter;
|
|
879
859
|
//# sourceMappingURL=DataStreamParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStreamParser.js","sourceRoot":"","sources":["../../../src/lib/datastream/DataStreamParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataStreamParser.js","sourceRoot":"","sources":["../../../src/lib/datastream/DataStreamParser.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,WAAW,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEzD,qBAAqB;AACrB,mGAAmG;AAEnG,MAAM,KAAK,GAAG,WAAW,CAAC,8BAA8B,CAAC,CAAA;AAEzD,MAAM,MAAM;IACV,MAAM,CAAU,UAAU,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;;AAGrD;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,KAAK,CAAG;IAER,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,MAAM,CAAC,GAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;IACnF,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,YAAoB;CAAG;AAEjD;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,YAAoB;CAAG;AAElD;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,YAAoB;CAAG;AAElD;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,YAAoB;CAAG;AAElD;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,YAAoB;CAAG;AACpD;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,YAAoB;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAoB;CAAG;AAE7D;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,YAAoB;IAC5C,YAAY,KAAa;QACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAA;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;CACF;AAED;;GAEG;AACH,gDAAgD;AAChD,MAAM,CAAN,IAAkB,cAgDjB;AAhDD,WAAkB,cAAc;IAC9B,yDAAc,CAAA;IAEd,mDAAW,CAAA;IACX,qDAAY,CAAA;IAEZ,+DAAiB,CAAA;IACjB,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,mDAAW,CAAA;IAEX,6EAAwB,CAAA;IACxB,qFAA4B,CAAA;IAC5B,sFAA4B,CAAA;IAC5B,oDAAW,CAAA;IACX,0DAAc,CAAA;IACd,0DAAc,CAAA;IACd,0DAAc,CAAA;IAEd,8DAAgB,CAAA;IAChB,8DAAgB,CAAA;IAEhB,8EAAwB,CAAA;IACxB,4EAAuB,CAAA;IACvB,oEAAmB,CAAA;IACnB,0EAAsB,CAAA;IACtB,0EAAsB,CAAA;IACtB,2EAAsB,CAAA;IACtB,qFAA2B,CAAA;IAE3B,+EAAwB,CAAA;IACxB,6EAAuB,CAAA;IACvB,qEAAmB,CAAA;IACnB,2EAAsB,CAAA;IACtB,2EAAsB,CAAA;IACtB,2EAAsB,CAAA;IACtB,2EAAsB,CAAA;IAEtB,+EAAwB,CAAA;IACxB,6EAAuB,CAAA;IAEvB,iFAAyB,CAAA;IACzB,+EAAwB,CAAA;IACxB,6EAAuB,CAAA;IAEvB,2FAA8B,CAAA;IAC9B,yFAA6B,CAAA;IAC7B,uFAA4B,CAAA;AAC9B,CAAC,EAhDiB,cAAc,KAAd,cAAc,QAgD/B;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,MAAM,CAAC,MAAwB;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAE5B,IAAI,GAAG,mCAA2B,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QACjF,CAAC;aAAM,IAAI,GAAG,gCAAwB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,iCAAyB,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;QAC3B,CAAC;aAAM,IAAI,GAAG,sCAA8B,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC,UAAU,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,gCAAwB,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,GAAG,gCAAwB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,gCAAwB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,0BAA0B,EAAE,CAAA;QAC5C,CAAC;aAAM,IAAI,GAAG,6CAAqC,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;QAC5B,CAAC;aAAM,IAAI,GAAG,gDAAwC,IAAI,GAAG,iDAAwC,EAAE,CAAC;YACtG,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA,CAAC,2BAA2B;QAC7D,CAAC;aAAM,IAAI,GAAG,iCAAwB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,oCAA2B,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAA;QAC7B,CAAC;aAAM,IAAI,GAAG,oCAA2B,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAA;QAC7B,CAAC;aAAM,IAAI,GAAG,oCAA2B,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAA;QAC7B,CAAC;aAAM,IAAI,GAAG,sCAA6B,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,aAAa,EAAE,CAAA;QAC/B,CAAC;aAAM,IAAI,GAAG,sCAA6B,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,aAAa,EAAE,CAAA;QAC/B,CAAC;aAAM,IAAI,GAAG,6CAAoC,IAAI,GAAG,4CAAmC,EAAE,CAAC;YAC7F,MAAM,MAAM,GAAG,GAAG,4CAAmC,CAAA;YACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,GAAG,yCAAgC,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAClC,CAAC;aAAM,IAAI,GAAG,4CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,4CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,kDAAwC,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,wBAAwB,EAAE,CAAA;QAC1C,CAAC;aAAM,IAAI,GAAG,8CAAoC,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAC7F,MAAM,MAAM,GAAG,GAAG,6CAAmC,CAAA;YACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;aAAM,IAAI,GAAG,0CAAgC,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAClC,CAAC;aAAM,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,8CAAoC,IAAI,GAAG,6CAAmC,EAAE,CAAC;YAC7F,MAAM,KAAK,GAAG,GAAG,6CAAmC,CAAA;YACpD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;aAAM,IAAI,GAAG,+CAAqC,IAAI,GAAG,8CAAoC,EAAE,CAAC;YAC/F,MAAM,MAAM,GAAG,GAAG,8CAAoC,CAAA;YACtD,MAAM,KAAK,GAAG,EAAE,CAAA;YAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YACjC,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,GAAG,8CAAoC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,EAAE,CAAA;YAEhB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACjC,OAAO,OAAO,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACnB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,GAAG,oDAA0C,IAAI,GAAG,mDAAyC,EAAE,CAAC;YACzG,MAAM,MAAM,GAAG,GAAG,mDAAyC,CAAA;YAC3D,MAAM,UAAU,GAAqB,EAAE,CAAA;YAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC/B,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACvC,CAAC;YAED,OAAO,UAAU,CAAA;QACnB,CAAC;aAAM,IAAI,GAAG,mDAAyC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAqB,EAAE,CAAA;YAEvC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,GAAG,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,eAAe;gBACrD,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC3B,CAAC;YAED,OAAO,UAAU,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,WAAW,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAS,EAAE,MAAwB;QACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,QAAQ,6BAAqB,CAAA;YACpC,OAAM;QACR,CAAC;QAED,QAAQ,OAAO,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS;gBACZ,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,SAAS,EAAE,CAAA;gBACpB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,UAAU,EAAE,CAAA;gBACrB,CAAC;gBACD,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1C,CAAC;gBACD,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACtB,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;oBAE1B,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;wBACjB,MAAM,CAAC,QAAQ,CAAC,8CAAoC,MAAM,CAAC,CAAA;oBAC7D,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,QAAQ,2CAAiC,CAAA;oBAClD,CAAC;oBAED,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBACvB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;oBAC9B,CAAC,CAAC,CAAA;oBAEF,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;wBAChB,MAAM,CAAC,QAAQ,mCAA2B,CAAA;oBAC5C,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;oBACxC,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;wBACzB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;oBACxB,CAAC;yBAAM,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;wBACjC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;oBAC3B,CAAC;yBAAM,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;wBACjC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;oBAC3B,CAAC;yBAAM,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;wBACjC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;oBAC3B,CAAC;yBAAM,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;wBACnC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;oBAC7B,CAAC;yBAAM,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;wBACnC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;oBAC7B,CAAC;yBAAM,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;wBAC5C,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAA;oBAC1C,CAAC;yBAAM,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;wBAChC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC9B,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,SAAS,CAAC,kDAAkD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;oBAChG,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;oBAClC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACxB,CAAC;qBAAM,CAAC,CAAC,kCAAkC;oBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;yBACjC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA,CAAC,4DAA4D;oBAEvG,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBACzB,MAAM,CAAC,QAAQ,CAAC,mDAAyC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC1E,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,QAAQ,gDAAsC,CAAA;oBACvD,CAAC;oBAED,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA,CAAC,aAAa;wBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA,CAAC,eAAe;oBAC/C,CAAC,CAAC,CAAA;oBAEF,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACxB,MAAM,CAAC,QAAQ,mCAA2B,CAAA;oBAC5C,CAAC;gBACH,CAAC;gBACD,MAAK;YACP;gBACE,MAAM,IAAI,KAAK,CAAC,oDAAoD,OAAO,IAAI,MAAM,IAAI,EAAE,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAQ;IAC7B,WAAW,CAAQ;IAEX,qBAAqB,GAAU,EAAE,CAAA;IAEzC,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC3F,KAAK,CAAC,mFAAmF,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAC/I,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,4EAA4E,KAC5F,YAAY,IAAI,CAAC,qBAAqB,CAAC,MAAM,YAAY,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAEO,SAAS,CAAI,IAAO;QAC1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;YACrD,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,2BAA2B,SAAS,aAAa,CAAC,CAAA;QAC1H,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAC,0CAA0C;IACxE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,+CAAuC,CAAC,CAAA,CAAC,2BAA2B;IAC/F,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnD,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAA;QAC3E,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,WAAW,CAAA;QACtB,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAA;QAE9E,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAA;QACrF,IAAI,CAAC,WAAW,IAAI,MAAM,CAAA;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,wBAAwB;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;QAC7B,IAAI,QAAQ,CAAA;QAEZ,SAAS,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;YAChG,CAAC;iBAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAK;YACP,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAA;YACV,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAClE,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAA;QAC7E,IAAI,CAAC,WAAW,IAAI,MAAM,CAAA;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;QAC7B,IAAI,QAAQ,CAAA;QAEZ,SAAS,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;YAC1F,CAAC;iBAAM,IAAI,QAAQ,sCAA8B,EAAE,CAAC;gBAClD,MAAK;YACP,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAA;YACV,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC1D,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,0BAA0B;QACxB,mCAAmC;QACnC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,eAAe;IACX,WAAW,GAAU,EAAE,CAAA;IAE/B,IAAI,CAAI,IAAO;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,CAAI,IAAO;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YAEjC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,CAAA;YACV,CAAC;YAED,IAAI,IAAI,YAAY,YAAY,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,CAAA;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAU,SAAS,GAAG,GAAG,CAAA,CAAC,6BAA6B;IAE7D,IAAI,CAAQ;IACZ,WAAW,CAAQ;IAEnB,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;IAE3C;QACE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,gFAAgF;IAC1G,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QACjE,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAElE,gGAAgG;YAChG,4CAA4C;YAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC3F,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAI,IAAO;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,0BAA0B;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,KAAK,IAAI,sFAAkE,EAAE,CAAC;YACvF,2FAA2F;YAC3F,IAAI,CAAC,QAAQ,CAAC,6CAAmC,KAAK,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,CAAC,GAAmB;QAC1B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS;QACP,IAAI,CAAC,QAAQ,6BAAqB,CAAA;IACpC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,8BAAsB,CAAA;IACrC,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,0CAAkC,CAAA;QACjD,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,+CAAuC,MAAM,CAAC,CAAA;QAC9D,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAClC,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,0DAA0D;YAC7I,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,GAAG,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAU;QAClB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,8BAAqB,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,iCAAwB,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,iCAAwB,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,iCAAwB,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA,CAAA,oEAAoE;QAC1H,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,cAAc,CAAC,OAAgB;QAC7B,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,mCAA0B,CAAA;QACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACvD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,cAAc,CAAC,OAAgB;QAC7B,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,mCAA0B,CAAA;QACvC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACxD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAClD,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YAC7B,IAAI,CAAC,QAAQ,CAAC,4CAAmC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,0DAA0D;YACxG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QAE7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;QAC3D,IAAI,CAAC,WAAW,IAAI,UAAU,CAAA;IAChC,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QAE7B,IAAI,CAAC,QAAQ,sCAA6B,CAAA;QAC1C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QAE7B,IAAI,CAAC,QAAQ,yCAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QAE7B,IAAI,CAAC,QAAQ,yCAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QAE7B,IAAI,CAAC,QAAQ,0CAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,yBAAyB,CAAC,IAAY;QAC5C,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC,QAAQ,+CAAqC,CAAA;QAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,6CAAmC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,QAAQ,uCAA6B,CAAA;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,QAAQ,0CAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,QAAQ,0CAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,QAAQ,0CAAgC,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAEtC,IAAI,CAAC,QAAQ,0CAAgC,CAAA;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,QAAQ,mCAA2B,CAAA;IAC1C,CAAC;IAED,2BAA2B,CAAC,OAAyB;QACnD,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,6BAAqB,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACxD,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,SAAS,CAAC,WAAmB;QAC3B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACvD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrB,IAAI,CAAC,QAAQ,6BAAqB,CAAA;QAClC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;IACxB,CAAC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { Socket } from 'node:net';
|
|
2
|
+
import type { HAPConnection } from '../util/eventedhttp';
|
|
3
|
+
import { Buffer } from 'node:buffer';
|
|
4
|
+
import { EventEmitter } from 'node:events';
|
|
4
5
|
/**
|
|
5
6
|
* @group HomeKit Data Streams (HDS)
|
|
6
7
|
*/
|
|
7
|
-
export
|
|
8
|
+
export interface PreparedDataStreamSession {
|
|
8
9
|
connection: HAPConnection;
|
|
9
10
|
accessoryToControllerEncryptionKey: Buffer;
|
|
10
11
|
controllerToAccessoryEncryptionKey: Buffer;
|
|
11
12
|
accessoryKeySalt: Buffer;
|
|
12
13
|
port?: number;
|
|
13
14
|
connectTimeout?: NodeJS.Timeout;
|
|
14
|
-
}
|
|
15
|
+
}
|
|
15
16
|
/**
|
|
16
17
|
* @group HomeKit Data Streams (HDS)
|
|
17
18
|
*/
|
|
@@ -99,19 +100,19 @@ export declare class HDSProtocolError extends Error {
|
|
|
99
100
|
/**
|
|
100
101
|
* Initializes a new `HDSProtocolError`
|
|
101
102
|
* @param reason - The {@link HDSProtocolSpecificErrorReason}.
|
|
102
|
-
*
|
|
103
|
+
* Values MUST NOT be {@link HDSProtocolSpecificErrorReason.NORMAL}.
|
|
103
104
|
*/
|
|
104
105
|
constructor(reason: HDSProtocolSpecificErrorReason);
|
|
105
106
|
}
|
|
106
107
|
/**
|
|
107
108
|
* @group HomeKit Data Streams (HDS)
|
|
108
109
|
*/
|
|
109
|
-
export
|
|
110
|
+
export interface HDSFrame {
|
|
110
111
|
header: Buffer;
|
|
111
112
|
cipheredPayload: Buffer;
|
|
112
113
|
authTag: Buffer;
|
|
113
114
|
plaintextPayload?: Buffer;
|
|
114
|
-
}
|
|
115
|
+
}
|
|
115
116
|
/**
|
|
116
117
|
* @group HomeKit Data Streams (HDS)
|
|
117
118
|
*/
|
|
@@ -123,14 +124,14 @@ export declare const enum MessageType {
|
|
|
123
124
|
/**
|
|
124
125
|
* @group HomeKit Data Streams (HDS)
|
|
125
126
|
*/
|
|
126
|
-
export
|
|
127
|
+
export interface DataStreamMessage {
|
|
127
128
|
type: MessageType;
|
|
128
129
|
protocol: string;
|
|
129
130
|
topic: string;
|
|
130
131
|
id?: number;
|
|
131
132
|
status?: HDSStatus;
|
|
132
133
|
message: Record<any, any>;
|
|
133
|
-
}
|
|
134
|
+
}
|
|
134
135
|
/**
|
|
135
136
|
* @group HomeKit Data Streams (HDS)
|
|
136
137
|
*/
|
|
@@ -149,10 +150,10 @@ export declare const enum DataStreamServerEvent {
|
|
|
149
150
|
* @group HomeKit Data Streams (HDS)
|
|
150
151
|
*/
|
|
151
152
|
export declare interface DataStreamServer {
|
|
152
|
-
on(event:
|
|
153
|
-
on(event:
|
|
154
|
-
emit(event:
|
|
155
|
-
emit(event:
|
|
153
|
+
on(event: 'connection-opened', listener: (connection: DataStreamConnection) => void): this;
|
|
154
|
+
on(event: 'connection-closed', listener: (connection: DataStreamConnection) => void): this;
|
|
155
|
+
emit(event: 'connection-opened', connection: DataStreamConnection): boolean;
|
|
156
|
+
emit(event: 'connection-closed', connection: DataStreamConnection): boolean;
|
|
156
157
|
}
|
|
157
158
|
/**
|
|
158
159
|
* DataStreamServer which listens for incoming tcp connections and handles identification of new connections
|
|
@@ -249,12 +250,12 @@ export declare const enum DataStreamConnectionEvent {
|
|
|
249
250
|
* @group HomeKit Data Streams (HDS)
|
|
250
251
|
*/
|
|
251
252
|
export declare interface DataStreamConnection {
|
|
252
|
-
on(event:
|
|
253
|
-
on(event:
|
|
254
|
-
on(event:
|
|
255
|
-
emit(event:
|
|
256
|
-
emit(event:
|
|
257
|
-
emit(event:
|
|
253
|
+
on(event: 'identification', listener: (frame: HDSFrame, callback: IdentificationCallback) => void): this;
|
|
254
|
+
on(event: 'handle-message-globally', listener: (message: DataStreamMessage) => void): this;
|
|
255
|
+
on(event: 'closed', listener: () => void): this;
|
|
256
|
+
emit(event: 'identification', frame: HDSFrame, callback: IdentificationCallback): boolean;
|
|
257
|
+
emit(event: 'handle-message-globally', message: DataStreamMessage): boolean;
|
|
258
|
+
emit(event: 'closed'): boolean;
|
|
258
259
|
}
|
|
259
260
|
/**
|
|
260
261
|
* @group HomeKit Data Streams (HDS)
|
|
@@ -327,7 +328,7 @@ export declare class DataStreamConnection extends EventEmitter {
|
|
|
327
328
|
* @param request - name of the request (also referred to as topic. See {@link Topics} for some known ones)
|
|
328
329
|
* @param message - message dictionary which gets sent along the request
|
|
329
330
|
* @param callback - handler which gets supplied with an error object if the response didn't
|
|
330
|
-
*
|
|
331
|
+
* arrive in time or the status and the message dictionary from the response
|
|
331
332
|
*/
|
|
332
333
|
sendRequest(protocol: string | Protocols, request: string | Topics, message: Record<any, any> | undefined, callback: ResponseHandler): void;
|
|
333
334
|
/**
|
|
@@ -343,7 +344,7 @@ export declare class DataStreamConnection extends EventEmitter {
|
|
|
343
344
|
private onSocketData;
|
|
344
345
|
private decodeHDSFrames;
|
|
345
346
|
/**
|
|
346
|
-
* @private
|
|
347
|
+
* @private
|
|
347
348
|
*/
|
|
348
349
|
decryptHDSFrame(frame: HDSFrame, keyOverwrite?: Buffer): boolean;
|
|
349
350
|
private decodePayloads;
|