hap-nodejs 0.11.0-beta.10 → 0.11.0-beta.12

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 (66) hide show
  1. package/README.md +1 -0
  2. package/dist/accessories/Light_accessory.js +1 -1
  3. package/dist/accessories/Light_accessory.js.map +1 -1
  4. package/dist/internal-types.d.ts +47 -3
  5. package/dist/internal-types.d.ts.map +1 -1
  6. package/dist/internal-types.js +52 -1
  7. package/dist/internal-types.js.map +1 -1
  8. package/dist/lib/Accessory.d.ts +28 -11
  9. package/dist/lib/Accessory.d.ts.map +1 -1
  10. package/dist/lib/Accessory.js +159 -191
  11. package/dist/lib/Accessory.js.map +1 -1
  12. package/dist/lib/Advertiser.d.ts +6 -0
  13. package/dist/lib/Advertiser.d.ts.map +1 -1
  14. package/dist/lib/Advertiser.js +78 -20
  15. package/dist/lib/Advertiser.js.map +1 -1
  16. package/dist/lib/Characteristic.d.ts +2 -1
  17. package/dist/lib/Characteristic.d.ts.map +1 -1
  18. package/dist/lib/Characteristic.js +5 -2
  19. package/dist/lib/Characteristic.js.map +1 -1
  20. package/dist/lib/HAPServer.d.ts +43 -4
  21. package/dist/lib/HAPServer.d.ts.map +1 -1
  22. package/dist/lib/HAPServer.js +78 -101
  23. package/dist/lib/HAPServer.js.map +1 -1
  24. package/dist/lib/Service.d.ts +2 -1
  25. package/dist/lib/Service.d.ts.map +1 -1
  26. package/dist/lib/Service.js +4 -0
  27. package/dist/lib/Service.js.map +1 -1
  28. package/dist/lib/camera/RTPStreamManagement.d.ts +2 -2
  29. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  30. package/dist/lib/camera/RTPStreamManagement.js +14 -11
  31. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  32. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  33. package/dist/lib/controller/AdaptiveLightingController.js +9 -7
  34. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  35. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  36. package/dist/lib/controller/CameraController.js +1 -0
  37. package/dist/lib/controller/CameraController.js.map +1 -1
  38. package/dist/lib/controller/RemoteController.js +2 -2
  39. package/dist/lib/controller/RemoteController.js.map +1 -1
  40. package/dist/lib/util/HAPHTTPError.d.ts +16 -0
  41. package/dist/lib/util/HAPHTTPError.d.ts.map +1 -0
  42. package/dist/lib/util/HAPHTTPError.js +26 -0
  43. package/dist/lib/util/HAPHTTPError.js.map +1 -0
  44. package/dist/lib/util/color-utils.d.ts +1 -1
  45. package/dist/lib/util/color-utils.js +1 -1
  46. package/dist/lib/util/eventedhttp.d.ts +18 -4
  47. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  48. package/dist/lib/util/eventedhttp.js +83 -88
  49. package/dist/lib/util/eventedhttp.js.map +1 -1
  50. package/dist/lib/util/hapCrypto.d.ts +3 -2
  51. package/dist/lib/util/hapCrypto.d.ts.map +1 -1
  52. package/dist/lib/util/hapCrypto.js.map +1 -1
  53. package/dist/lib/util/promise-utils.d.ts +4 -0
  54. package/dist/lib/util/promise-utils.d.ts.map +1 -1
  55. package/dist/lib/util/promise-utils.js +24 -1
  56. package/dist/lib/util/promise-utils.js.map +1 -1
  57. package/dist/lib/util/time.js +1 -1
  58. package/dist/lib/util/tlv.d.ts +63 -4
  59. package/dist/lib/util/tlv.d.ts.map +1 -1
  60. package/dist/lib/util/tlv.js +61 -16
  61. package/dist/lib/util/tlv.js.map +1 -1
  62. package/dist/lib/util/tlvError.d.ts +14 -0
  63. package/dist/lib/util/tlvError.d.ts.map +1 -0
  64. package/dist/lib/util/tlvError.js +24 -0
  65. package/dist/lib/util/tlvError.js.map +1 -0
  66. package/package.json +7 -5
@@ -14,51 +14,6 @@ var hapCrypto = (0, tslib_1.__importStar)(require("./util/hapCrypto"));
14
14
  var once_1 = require("./util/once");
15
15
  var tlv = (0, tslib_1.__importStar)(require("./util/tlv"));
16
16
  var debug = (0, debug_1.default)("HAP-NodeJS:HAPServer");
17
- var TLVValues;
18
- (function (TLVValues) {
19
- // noinspection JSUnusedGlobalSymbols
20
- TLVValues[TLVValues["REQUEST_TYPE"] = 0] = "REQUEST_TYPE";
21
- TLVValues[TLVValues["METHOD"] = 0] = "METHOD";
22
- TLVValues[TLVValues["USERNAME"] = 1] = "USERNAME";
23
- TLVValues[TLVValues["IDENTIFIER"] = 1] = "IDENTIFIER";
24
- TLVValues[TLVValues["SALT"] = 2] = "SALT";
25
- TLVValues[TLVValues["PUBLIC_KEY"] = 3] = "PUBLIC_KEY";
26
- TLVValues[TLVValues["PASSWORD_PROOF"] = 4] = "PASSWORD_PROOF";
27
- TLVValues[TLVValues["ENCRYPTED_DATA"] = 5] = "ENCRYPTED_DATA";
28
- TLVValues[TLVValues["SEQUENCE_NUM"] = 6] = "SEQUENCE_NUM";
29
- TLVValues[TLVValues["STATE"] = 6] = "STATE";
30
- TLVValues[TLVValues["ERROR_CODE"] = 7] = "ERROR_CODE";
31
- TLVValues[TLVValues["RETRY_DELAY"] = 8] = "RETRY_DELAY";
32
- TLVValues[TLVValues["CERTIFICATE"] = 9] = "CERTIFICATE";
33
- TLVValues[TLVValues["PROOF"] = 10] = "PROOF";
34
- TLVValues[TLVValues["SIGNATURE"] = 10] = "SIGNATURE";
35
- TLVValues[TLVValues["PERMISSIONS"] = 11] = "PERMISSIONS";
36
- TLVValues[TLVValues["FRAGMENT_DATA"] = 12] = "FRAGMENT_DATA";
37
- TLVValues[TLVValues["FRAGMENT_LAST"] = 13] = "FRAGMENT_LAST";
38
- TLVValues[TLVValues["SEPARATOR"] = 255] = "SEPARATOR"; // Zero-length TLV that separates different TLVs in a list.
39
- })(TLVValues || (TLVValues = {}));
40
- var PairMethods;
41
- (function (PairMethods) {
42
- // noinspection JSUnusedGlobalSymbols
43
- PairMethods[PairMethods["PAIR_SETUP"] = 0] = "PAIR_SETUP";
44
- PairMethods[PairMethods["PAIR_SETUP_WITH_AUTH"] = 1] = "PAIR_SETUP_WITH_AUTH";
45
- PairMethods[PairMethods["PAIR_VERIFY"] = 2] = "PAIR_VERIFY";
46
- PairMethods[PairMethods["ADD_PAIRING"] = 3] = "ADD_PAIRING";
47
- PairMethods[PairMethods["REMOVE_PAIRING"] = 4] = "REMOVE_PAIRING";
48
- PairMethods[PairMethods["LIST_PAIRINGS"] = 5] = "LIST_PAIRINGS";
49
- })(PairMethods || (PairMethods = {}));
50
- /**
51
- * Pairing states (pair-setup or pair-verify). Encoded in {@link TLVValues.SEQUENCE_NUM}.
52
- */
53
- var PairingStates;
54
- (function (PairingStates) {
55
- PairingStates[PairingStates["M1"] = 1] = "M1";
56
- PairingStates[PairingStates["M2"] = 2] = "M2";
57
- PairingStates[PairingStates["M3"] = 3] = "M3";
58
- PairingStates[PairingStates["M4"] = 4] = "M4";
59
- PairingStates[PairingStates["M5"] = 5] = "M5";
60
- PairingStates[PairingStates["M6"] = 6] = "M6";
61
- })(PairingStates || (PairingStates = {}));
62
17
  /**
63
18
  * TLV error codes for the {@link TLVValues.ERROR_CODE} field.
64
19
  */
@@ -77,18 +32,57 @@ var TLVErrorCode;
77
32
  var HAPStatus;
78
33
  (function (HAPStatus) {
79
34
  // noinspection JSUnusedGlobalSymbols
35
+ /**
36
+ * Success of the request.
37
+ */
80
38
  HAPStatus[HAPStatus["SUCCESS"] = 0] = "SUCCESS";
39
+ /**
40
+ * The request was rejected due to insufficient privileges.
41
+ */
81
42
  HAPStatus[HAPStatus["INSUFFICIENT_PRIVILEGES"] = -70401] = "INSUFFICIENT_PRIVILEGES";
43
+ /**
44
+ * Operation failed due to some communication failure with the characteristic.
45
+ */
82
46
  HAPStatus[HAPStatus["SERVICE_COMMUNICATION_FAILURE"] = -70402] = "SERVICE_COMMUNICATION_FAILURE";
47
+ /**
48
+ * The resource is busy. Try again.
49
+ */
83
50
  HAPStatus[HAPStatus["RESOURCE_BUSY"] = -70403] = "RESOURCE_BUSY";
51
+ /**
52
+ * Cannot write a read-only characteristic ({@see Perms.PAIRED_WRITE} not defined).
53
+ */
84
54
  HAPStatus[HAPStatus["READ_ONLY_CHARACTERISTIC"] = -70404] = "READ_ONLY_CHARACTERISTIC";
55
+ /**
56
+ * Cannot read from a write-only characteristic ({@link Perms.PAIRED_READ} not defined).
57
+ */
85
58
  HAPStatus[HAPStatus["WRITE_ONLY_CHARACTERISTIC"] = -70405] = "WRITE_ONLY_CHARACTERISTIC";
59
+ /**
60
+ * Event notifications are not supported for the requested characteristic ({@link Perms.NOTIFY} not defined).
61
+ */
86
62
  HAPStatus[HAPStatus["NOTIFICATION_NOT_SUPPORTED"] = -70406] = "NOTIFICATION_NOT_SUPPORTED";
63
+ /**
64
+ * The device is out of resources to process the request.
65
+ */
87
66
  HAPStatus[HAPStatus["OUT_OF_RESOURCE"] = -70407] = "OUT_OF_RESOURCE";
67
+ /**
68
+ * The operation timed out.
69
+ */
88
70
  HAPStatus[HAPStatus["OPERATION_TIMED_OUT"] = -70408] = "OPERATION_TIMED_OUT";
71
+ /**
72
+ * The given resource does not exist.
73
+ */
89
74
  HAPStatus[HAPStatus["RESOURCE_DOES_NOT_EXIST"] = -70409] = "RESOURCE_DOES_NOT_EXIST";
75
+ /**
76
+ * Received an invalid value in the given request for the given characteristic.
77
+ */
90
78
  HAPStatus[HAPStatus["INVALID_VALUE_IN_REQUEST"] = -70410] = "INVALID_VALUE_IN_REQUEST";
79
+ /**
80
+ * Insufficient authorization.
81
+ */
91
82
  HAPStatus[HAPStatus["INSUFFICIENT_AUTHORIZATION"] = -70411] = "INSUFFICIENT_AUTHORIZATION";
83
+ /**
84
+ * Operation not allowed in the current state.
85
+ */
92
86
  HAPStatus[HAPStatus["NOT_ALLOWED_IN_CURRENT_STATE"] = -70412] = "NOT_ALLOWED_IN_CURRENT_STATE";
93
87
  // when adding new status codes, remember to update bounds in IsKnownHAPStatusError below
94
88
  })(HAPStatus = exports.HAPStatus || (exports.HAPStatus = {}));
@@ -231,7 +225,7 @@ var HAPServer = /** @class */ (function (_super) {
231
225
  HAPServer.prototype.listen = function (port, host) {
232
226
  if (port === void 0) { port = 0; }
233
227
  if (host === "::") {
234
- // this will workaround "EAFNOSUPPORT: address family not supported" errors
228
+ // this will work around "EAFNOSUPPORT: address family not supported" errors
235
229
  // on systems where IPv6 is not supported/enabled, we just use the node default then by supplying undefined
236
230
  host = undefined;
237
231
  }
@@ -245,15 +239,15 @@ var HAPServer = /** @class */ (function (_super) {
245
239
  this.removeAllListeners();
246
240
  };
247
241
  /**
248
- * Send a even notification for given characteristic and changed value to all connected clients.
242
+ * Send an even notification for given characteristic and changed value to all connected clients.
249
243
  * If {@param originator} is specified, the given {@link HAPConnection} will be excluded from the broadcast.
250
244
  *
251
245
  * @param aid - The accessory id of the updated characteristic.
252
246
  * @param iid - The instance id of the updated characteristic.
253
247
  * @param value - The newly set value of the characteristic.
254
- * @param originator - If specified, the connection will not get a event message.
248
+ * @param originator - If specified, the connection will not get an event message.
255
249
  * @param immediateDelivery - The HAP spec requires some characteristics to be delivery immediately.
256
- * Namely for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
250
+ * Namely, for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
257
251
  */
258
252
  HAPServer.prototype.sendEventNotifications = function (aid, iid, value, originator, immediateDelivery) {
259
253
  try {
@@ -274,10 +268,10 @@ var HAPServer = /** @class */ (function (_super) {
274
268
  request.on("data", function (data) { return buffers.push(data); });
275
269
  request.on("end", function () {
276
270
  var url = new url_1.URL(request.url, "http://hap-nodejs.local"); // parse the url (query strings etc)
277
- var handler = _this.getHandler(url); // TODO check that content-type is supported by the handler?
271
+ var handler = _this.getHandler(url);
278
272
  if (!handler) {
279
273
  debug("[%s] WARNING: Handler for %s not implemented", _this.accessoryInfo.username, request.url);
280
- response.writeHead(404 /* NOT_FOUND */, { "Content-Type": "application/hap+json" });
274
+ response.writeHead(404 /* NOT_FOUND */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
281
275
  response.end(JSON.stringify({ status: -70409 /* RESOURCE_DOES_NOT_EXIST */ }));
282
276
  }
283
277
  else {
@@ -287,7 +281,7 @@ var HAPServer = /** @class */ (function (_super) {
287
281
  }
288
282
  catch (error) {
289
283
  debug("[%s] Error executing route handler: %s", _this.accessoryInfo.username, error.stack);
290
- response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" });
284
+ response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
291
285
  response.end(JSON.stringify({ status: -70403 /* RESOURCE_BUSY */ })); // resource busy try again, does somehow fit?
292
286
  }
293
287
  }
@@ -324,8 +318,8 @@ var HAPServer = /** @class */ (function (_super) {
324
318
  HAPServer.prototype.handleIdentifyRequest = function (connection, url, request, data, response) {
325
319
  var _this = this;
326
320
  // POST body is empty
327
- if (!this.allowInsecureRequest && this.accessoryInfo.paired()) {
328
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
321
+ if (this.accessoryInfo.paired() && !this.allowInsecureRequest) {
322
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
329
323
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
330
324
  return;
331
325
  }
@@ -337,7 +331,7 @@ var HAPServer = /** @class */ (function (_super) {
337
331
  }
338
332
  else {
339
333
  debug("[%s] Identification error: %s", _this.accessoryInfo.username, err.message);
340
- response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" });
334
+ response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
341
335
  response.end(JSON.stringify({ status: -70403 /* RESOURCE_BUSY */ }));
342
336
  }
343
337
  }));
@@ -504,7 +498,7 @@ var HAPServer = /** @class */ (function (_super) {
504
498
  this.handlePairVerifyM1(connection, request, response, tlvData);
505
499
  }
506
500
  else if (sequence === 3 /* M3 */ && connection._pairVerifyState === 2 /* M2 */) {
507
- this.handlePairVerifyM2(connection, request, response, tlvData);
501
+ this.handlePairVerifyM3(connection, request, response, tlvData);
508
502
  }
509
503
  else {
510
504
  // Invalid state/sequence number
@@ -536,7 +530,7 @@ var HAPServer = /** @class */ (function (_super) {
536
530
  response.end(tlv.encode(6 /* SEQUENCE_NUM */, 2 /* M2 */, 5 /* ENCRYPTED_DATA */, Buffer.concat([encrypted.ciphertext, encrypted.authTag]), 3 /* PUBLIC_KEY */, publicKey));
537
531
  connection._pairVerifyState = 2 /* M2 */;
538
532
  };
539
- HAPServer.prototype.handlePairVerifyM2 = function (connection, request, response, objects) {
533
+ HAPServer.prototype.handlePairVerifyM3 = function (connection, request, response, objects) {
540
534
  debug("[%s] Pair verify step 2/2", this.accessoryInfo.username);
541
535
  var encryptedData = objects[5 /* ENCRYPTED_DATA */];
542
536
  var messageData = Buffer.alloc(encryptedData.length - 16);
@@ -562,7 +556,7 @@ var HAPServer = /** @class */ (function (_super) {
562
556
  var material = Buffer.concat([enc.clientPublicKey, clientUsername, enc.publicKey]);
563
557
  // since we're paired, we should have the public key stored for this client
564
558
  var clientPublicKey = this.accessoryInfo.getClientPublicKey(clientUsername.toString());
565
- // if we're not actually paired, then there's nothing to verify - this client thinks it's paired with us but we
559
+ // if we're not actually paired, then there's nothing to verify - this client thinks it's paired with us, but we
566
560
  // disagree. Respond with invalid request (seems to match HomeKit Accessory Simulator behavior)
567
561
  if (!clientPublicKey) {
568
562
  debug("[%s] Client %s attempting to verify, but we are not paired; rejecting client", this.accessoryInfo.username, clientUsername);
@@ -597,7 +591,7 @@ var HAPServer = /** @class */ (function (_super) {
597
591
  var _this = this;
598
592
  // Only accept /pairing request if there is a secure session
599
593
  if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
600
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
594
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
601
595
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
602
596
  return;
603
597
  }
@@ -654,7 +648,7 @@ var HAPServer = /** @class */ (function (_super) {
654
648
  tlvList.push(1 /* IDENTIFIER */, value.username, 3 /* PUBLIC_KEY */, value.publicKey, 11 /* PERMISSIONS */, value.permission);
655
649
  });
656
650
  var list = tlv.encode.apply(tlv, (0, tslib_1.__spreadArray)([6 /* STATE */, 2 /* M2 */], (0, tslib_1.__read)(tlvList), false));
657
- response.writeHead(200 /* OK */, { "Content-Type": "application/pairing+tlv8" });
651
+ response.writeHead(200 /* OK */, { "Content-Type": "application/pairing+tlv8" /* PAIRING_TLV8 */ });
658
652
  response.end(list);
659
653
  debug("[%s] Pairings: successfully executed LIST_PAIRINGS", _this.accessoryInfo.username);
660
654
  }));
@@ -662,18 +656,18 @@ var HAPServer = /** @class */ (function (_super) {
662
656
  };
663
657
  HAPServer.prototype.handleAccessories = function (connection, url, request, data, response) {
664
658
  if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
665
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
659
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
666
660
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
667
661
  return;
668
662
  }
669
663
  // call out to listeners to retrieve the latest accessories JSON
670
664
  this.emit("accessories" /* ACCESSORIES */, connection, (0, once_1.once)(function (error, result) {
671
665
  if (error) {
672
- response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
666
+ response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
673
667
  response.end(JSON.stringify({ status: error.status }));
674
668
  }
675
669
  else {
676
- response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" });
670
+ response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
677
671
  response.end(JSON.stringify(result));
678
672
  }
679
673
  }));
@@ -681,7 +675,7 @@ var HAPServer = /** @class */ (function (_super) {
681
675
  HAPServer.prototype.handleCharacteristics = function (connection, url, request, data, response) {
682
676
  var e_1, _a;
683
677
  if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
684
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
678
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
685
679
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
686
680
  return;
687
681
  }
@@ -689,7 +683,7 @@ var HAPServer = /** @class */ (function (_super) {
689
683
  var searchParams = url.searchParams;
690
684
  var idParam = searchParams.get("id");
691
685
  if (!idParam) {
692
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
686
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
693
687
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
694
688
  return;
695
689
  }
@@ -700,7 +694,7 @@ var HAPServer = /** @class */ (function (_super) {
700
694
  var split = entry.split("."); // ["1","9"]
701
695
  ids.push({
702
696
  aid: parseInt(split[0], 10),
703
- iid: parseInt(split[1], 10), // (characteristic) instance Id
697
+ iid: parseInt(split[1], 10), // (characteristic) instance id
704
698
  });
705
699
  }
706
700
  }
@@ -721,11 +715,10 @@ var HAPServer = /** @class */ (function (_super) {
721
715
  this.emit("get-characteristics" /* GET_CHARACTERISTICS */, connection, readRequest, (0, once_1.once)(function (error, readResponse) {
722
716
  var e_2, _a, e_3, _b;
723
717
  if (error) {
724
- response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
718
+ response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
725
719
  response.end(JSON.stringify({ status: error.status }));
726
720
  return;
727
721
  }
728
- // typescript can't type that this exists if error doesnt
729
722
  var characteristics = readResponse.characteristics;
730
723
  var errorOccurred = false; // determine if we send a 207 Multi-Status
731
724
  try {
@@ -762,32 +755,31 @@ var HAPServer = /** @class */ (function (_super) {
762
755
  }
763
756
  }
764
757
  // 207 "multi-status" is returned when an error occurs reading a characteristic. otherwise 200 is returned
765
- response.writeHead(errorOccurred ? 207 /* MULTI_STATUS */ : 200 /* OK */, { "Content-Type": "application/hap+json" });
758
+ response.writeHead(errorOccurred ? 207 /* MULTI_STATUS */ : 200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
766
759
  response.end(JSON.stringify({ characteristics: characteristics }));
767
760
  }));
768
761
  }
769
762
  else if (request.method === "PUT") {
770
763
  if (!connection.isAuthenticated()) {
771
764
  if (!request.headers || (request.headers && request.headers.authorization !== this.accessoryInfo.pincode)) {
772
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
765
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
773
766
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
774
767
  return;
775
768
  }
776
769
  }
777
770
  if (data.length === 0) {
778
- response.writeHead(400, { "Content-Type": "application/hap+json" });
771
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
779
772
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
780
773
  return;
781
774
  }
782
775
  var writeRequest = JSON.parse(data.toString("utf8"));
783
776
  this.emit("set-characteristics" /* SET_CHARACTERISTICS */, connection, writeRequest, (0, once_1.once)(function (error, writeResponse) {
784
- var e_4, _a, e_5, _b;
777
+ var e_4, _a;
785
778
  if (error) {
786
- response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
779
+ response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
787
780
  response.end(JSON.stringify({ status: error.status }));
788
781
  return;
789
782
  }
790
- // typescript can't type that this exists if error doesnt
791
783
  var characteristics = writeResponse.characteristics;
792
784
  var multiStatus = false;
793
785
  try {
@@ -808,23 +800,8 @@ var HAPServer = /** @class */ (function (_super) {
808
800
  finally { if (e_4) throw e_4.error; }
809
801
  }
810
802
  if (multiStatus) {
811
- try {
812
- for (var characteristics_4 = (0, tslib_1.__values)(characteristics), characteristics_4_1 = characteristics_4.next(); !characteristics_4_1.done; characteristics_4_1 = characteristics_4.next()) { // on a 207 Multi-Status EVERY characteristic MUST include a status property
813
- var data_4 = characteristics_4_1.value;
814
- if (data_4.status === undefined) {
815
- data_4.status = 0 /* SUCCESS */;
816
- }
817
- }
818
- }
819
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
820
- finally {
821
- try {
822
- if (characteristics_4_1 && !characteristics_4_1.done && (_b = characteristics_4.return)) _b.call(characteristics_4);
823
- }
824
- finally { if (e_5) throw e_5.error; }
825
- }
826
803
  // 207 is "multi-status" since HomeKit may be setting multiple things and any one can fail independently
827
- response.writeHead(207 /* MULTI_STATUS */, { "Content-Type": "application/hap+json" });
804
+ response.writeHead(207 /* MULTI_STATUS */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
828
805
  response.end(JSON.stringify({ characteristics: characteristics }));
829
806
  }
830
807
  else {
@@ -835,20 +812,20 @@ var HAPServer = /** @class */ (function (_super) {
835
812
  }));
836
813
  }
837
814
  else {
838
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" }); // method not allowed
815
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ }); // method not allowed
839
816
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
840
817
  }
841
818
  };
842
819
  HAPServer.prototype.handlePrepareWrite = function (connection, url, request, data, response) {
843
820
  var _this = this;
844
821
  if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
845
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
822
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
846
823
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
847
824
  return;
848
825
  }
849
826
  if (request.method === "PUT") {
850
827
  if (data.length === 0) {
851
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
828
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
852
829
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
853
830
  return;
854
831
  }
@@ -864,31 +841,31 @@ var HAPServer = /** @class */ (function (_super) {
864
841
  connection.timedWritePid = undefined;
865
842
  connection.timedWriteTimeout = undefined;
866
843
  }, prepareRequest_1.ttl);
867
- response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" });
844
+ response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
868
845
  response.end(JSON.stringify({ status: 0 /* SUCCESS */ }));
869
846
  return;
870
847
  }
871
848
  else {
872
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
849
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
873
850
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
874
851
  }
875
852
  }
876
853
  else {
877
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
854
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
878
855
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
879
856
  }
880
857
  };
881
858
  HAPServer.prototype.handleResource = function (connection, url, request, data, response) {
882
859
  if (!connection.isAuthenticated()) {
883
860
  if (!(this.allowInsecureRequest && request.headers && request.headers.authorization === this.accessoryInfo.pincode)) {
884
- response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
861
+ response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
885
862
  response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
886
863
  return;
887
864
  }
888
865
  }
889
866
  if (request.method === "POST") {
890
867
  if (data.length === 0) {
891
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
868
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
892
869
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
893
870
  return;
894
871
  }
@@ -896,17 +873,17 @@ var HAPServer = /** @class */ (function (_super) {
896
873
  // call out to listeners to retrieve the resource, snapshot only right now
897
874
  this.emit("request-resource" /* REQUEST_RESOURCE */, resourceRequest, (0, once_1.once)(function (error, resource) {
898
875
  if (error) {
899
- response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
876
+ response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
900
877
  response.end(JSON.stringify({ status: error.status }));
901
878
  }
902
879
  else {
903
- response.writeHead(200 /* OK */, { "Content-Type": "image/jpeg" });
880
+ response.writeHead(200 /* OK */, { "Content-Type": "image/jpeg" /* IMAGE_JPEG */ });
904
881
  response.end(resource);
905
882
  }
906
883
  }));
907
884
  }
908
885
  else {
909
- response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" }); // method not allowed
886
+ response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ }); // method not allowed
910
887
  response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
911
888
  }
912
889
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HAPServer.js","sourceRoot":"","sources":["../../src/lib/HAPServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HAPServer.js","sourceRoot":"","sources":["../../src/lib/HAPServer.ts"],"names":[],"mappings":";;;;AAAA,+DAA4B;AAC5B,6DAAgC;AAChC,iCAAsC;AACtC,6CAA8C;AAE9C,qEAAkC;AAClC,2BAA0B;AAC1B,oDAc2B;AAG3B,kDAA0H;AAC1H,uEAA8C;AAC9C,oCAAmC;AACnC,2DAAkC;AAElC,IAAM,KAAK,GAAG,IAAA,eAAW,EAAC,sBAAsB,CAAC,CAAC;AAElD;;GAEG;AACH,IAAkB,YAUjB;AAVD,WAAkB,YAAY;IAC5B,qCAAqC;IACrC,qDAAc,CAAA;IACd,qEAAsB,CAAA;IACtB,mEAAqB,CAAA;IACrB,qDAAc,CAAA;IACd,yDAAgB,CAAA;IAChB,yDAAgB,CAAA;IAChB,6DAAkB,CAAA;IAClB,+CAAW,CAAA,CAAC,6CAA6C;AAC3D,CAAC,EAViB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU7B;AAED,IAAkB,SAyDjB;AAzDD,WAAkB,SAAS;IACzB,qCAAqC;IAErC;;OAEG;IACH,+CAAW,CAAA;IACX;;OAEG;IACH,oFAAgC,CAAA;IAChC;;OAEG;IACH,gGAAsC,CAAA;IACtC;;OAEG;IACH,gEAAsB,CAAA;IACtB;;OAEG;IACH,sFAAiC,CAAA;IACjC;;OAEG;IACH,wFAAkC,CAAA;IAClC;;OAEG;IACH,0FAAmC,CAAA;IACnC;;OAEG;IACH,oEAAwB,CAAA;IACxB;;OAEG;IACH,4EAA4B,CAAA;IAC5B;;OAEG;IACH,oFAAgC,CAAA;IAChC;;OAEG;IACH,sFAAiC,CAAA;IACjC;;OAEG;IACH,0FAAmC,CAAA;IACnC;;OAEG;IACH,8FAAqC,CAAA;IAErC,yFAAyF;AAC3F,CAAC,EAzDiB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAyD1B;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAiB;IACrD,OAAO;IACL,yCAAyC;IACzC,MAAM,6CAA0C;QAChD,oDAAoD;QACpD,MAAM,wCAAqC,CAC5C,CAAC;AACJ,CAAC;AAPD,sDAOC;AAED,qCAAqC;AACrC;;GAEG;AACH,qEAAqE;AACxD,QAAA,KAAK,GAAG,YAAY,CAAC;AAClC,qCAAqC;AACrC;;GAEG;AACH,qEAAqE;AACxD,QAAA,MAAM,GAAG,SAAS,CAAC;AAEhC;;;;;;;GAOG;AACH,IAAkB,WAcjB;AAdD,WAAkB,WAAW;IAC3B,qCAAqC;IACrC,2CAAQ,CAAA;IACR,2DAAgB,CAAA;IAChB,+DAAkB,CAAA;IAElB,eAAe;IACf,6DAAiB,CAAA;IACjB,yDAAe,CAAA;IACf,+EAA0B,CAAA;IAE1B,eAAe;IACf,iFAA2B,CAAA;IAC3B,6EAAyB,CAAA;AAC3B,CAAC,EAdiB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAc5B;AAED;;;GAGG;AACH,IAAkB,kBAUjB;AAVD,WAAkB,kBAAkB;IAClC,qCAAqC;IACrC,yDAAQ,CAAA;IAER,2EAAiB,CAAA;IACjB,yFAAwB,CAAA;IACxB,uFAAuB,CAAA;IACvB,uHAAuC,CAAA;IAEvC,+FAA2B,CAAA;AAC7B,CAAC,EAViB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAUnC;AAkBD,IAAkB,mBA0CjB;AA1CD,WAAkB,mBAAmB;IACnC;;OAEG;IACH,8CAAuB,CAAA;IACvB;;;OAGG;IACH,4CAAqB,CAAA;IACrB,kDAA2B,CAAA;IAC3B,wDAAiC,CAAA;IACjC,sDAA+B,CAAA;IAC/B;;;;OAIG;IACH,oCAAa,CAAA;IACb;;;;;OAKG;IACH,kDAA2B,CAAA;IAC3B;;;;;OAKG;IACH,kEAA2C,CAAA;IAC3C;;;;;OAKG;IACH,kEAA2C,CAAA;IAC3C,4DAAqC,CAAA;IACrC,8DAAuC,CAAA;AACzC,CAAC,EA1CiB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QA0CpC;AAmDD;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAA+B,0CAAY;IAQzC,mBAAY,aAA4B;QAAxC,YACE,iBAAO,SAQR;QAbO,8BAAwB,GAAG,CAAC,CAAC,CAAC,oHAAoH;QAMxJ,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,yDAAyD;QACzD,KAAI,CAAC,UAAU,GAAG,IAAI,+BAAiB,EAAE,CAAC;QAC1C,KAAI,CAAC,UAAU,CAAC,EAAE,8BAAmC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;QAClF,KAAI,CAAC,UAAU,CAAC,EAAE,0BAAiC,KAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;QACjG,KAAI,CAAC,UAAU,CAAC,EAAE,8CAA2C,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;;IACvG,CAAC;IAEM,0BAAM,GAAb,UAAc,IAAQ,EAAE,IAAa;QAAvB,qBAAA,EAAA,QAAQ;QACpB,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,4EAA4E;YAC5E,2GAA2G;YAC3G,IAAI,GAAG,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,wBAAI,GAAX;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEM,2BAAO,GAAd;QACE,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;OAUG;IACI,0CAAsB,GAA7B,UAA8B,GAAW,EAAE,GAAW,EAAE,KAAoC,EAAE,UAA0B,EAAE,iBAA2B;QACnJ,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;SAChF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,4CAA4C,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;SAChH;IACH,CAAC;IAEO,+BAAW,GAAnB,UAAoB,IAAY,EAAE,QAAgB;QAChD,IAAI,CAAC,IAAI,8BAAgC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,4CAA4C;IACpC,gDAA4B,GAApC,UAAqC,UAAyB,EAAE,OAAwB,EAAE,QAAwB;QAAlH,iBAyBC;QAxBC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3F,IAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAlB,CAAkB,CAAC,CAAC;QAE/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;YAChB,IAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC,oCAAoC;YAElG,IAAM,OAAO,GAAG,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,CAAC,OAAO,EAAE;gBACZ,KAAK,CAAC,8CAA8C,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChG,QAAQ,CAAC,SAAS,sBAAwB,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACrF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;aAC7E;iBAAM;gBACL,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI;oBACF,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBACnD;gBAAC,OAAO,KAAK,EAAE;oBACd,KAAK,CAAC,wCAAwC,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1F,QAAQ,CAAC,SAAS,kCAAoC,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBACjG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,4BAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,6CAA6C;iBACjH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,0CAAsB,GAA9B,UAA+B,UAAyB;QACtD,IAAI,CAAC,IAAI,8CAAwC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAEO,8BAAU,GAAlB,UAAmB,GAAQ;QACzB,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;YACpC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC;gBACE,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED;;OAEG;IACK,yCAAqB,GAA7B,UAA8B,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAAnI,iBAmBC;QAlBC,qBAAqB;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7D,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO;SACR;QAED,IAAI,CAAC,IAAI,4BAA+B,IAAA,WAAI,EAAC,UAAA,GAAG;YAC9C,IAAI,CAAC,GAAG,EAAE;gBACR,KAAK,CAAC,6BAA6B,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClE,QAAQ,CAAC,SAAS,sBAAwB,CAAC;gBAC3C,QAAQ,CAAC,GAAG,EAAE,CAAC;aAChB;iBAAM;gBACL,KAAK,CAAC,+BAA+B,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjF,QAAQ,CAAC,SAAS,kCAAoC,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACjG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,4BAAyB,EAAE,CAAC,CAAC,CAAC;aACnE;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,mCAAe,GAAvB,UAAwB,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAC3H,kDAAkD;QAClD,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;YAC7D,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,oEAAmF,CAAC,CAAC;YAC5G,OAAO;SACR;QACD,IAAI,IAAI,CAAC,wBAAwB,GAAG,GAAG,EAAE;YACvC,KAAK,CAAC,4DAA4D,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjG,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,kEAAiF,CAAC,CAAC;YAC1G,OAAO;SACR;QAED,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAM,QAAQ,GAAG,OAAO,sBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;QACjG,IAAI,QAAQ,eAAqB,EAAE;YACjC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SACvD;aAAM,IAAI,QAAQ,eAAqB,IAAI,UAAU,CAAC,eAAe,eAAqB,EAAE;YAC3F,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChE;aAAM,IAAI,QAAQ,eAAqB,IAAI,UAAU,CAAC,eAAe,eAAqB,EAAE;YAC3F,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChE;aAAM;YACL,gCAAgC;YAChC,QAAQ,CAAC,SAAS,wBAAiC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gBAAkB,QAAQ,GAAG,CAAC,sCAA6C,CAAC,CAAC;YACpG,OAAO;SACR;IACH,CAAC;IAEO,qCAAiB,GAAzB,UAA0B,UAAyB,EAAE,OAAwB,EAAE,QAAwB;QAAvG,iBAoBC;QAnBC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAM,IAAI,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;QAErC,IAAM,SAAS,GAAG,kBAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QACjC,kBAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;YACrB,0BAA0B;YAC1B,IAAM,SAAS,GAAG,IAAI,wBAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1H,IAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAClC,uCAAuC;YACvC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACjC,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,iDAA2D,IAAI,sBAAwB,IAAI,CAAC,CAAC,CAAC;YACrH,UAAU,CAAC,eAAe,aAAmB,CAAC;QAChD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK;YACZ,KAAK,CAAC,iDAAiD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrG,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gEAA+E,CAAC,CAAC;YACxG,OAAO;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qCAAiB,GAAzB,UAA0B,UAAyB,EAAE,OAAwB,EAAE,QAAwB,EAAE,OAA+B;QACtI,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAM,CAAC,GAAG,OAAO,oBAAsB,CAAC,CAAC,mEAAmE;QAC5G,IAAM,EAAE,GAAG,OAAO,wBAA0B,CAAC,CAAC,8DAA8D;QAC5G,uEAAuE;QACvE,IAAM,SAAS,GAAG,UAAU,CAAC,SAAU,CAAC;QACxC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI;YACF,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACvB;QAAC,OAAO,GAAG,EAAE;YACZ,wDAAwD;YACxD,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACzF,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,8EAA6F,CAAC,CAAC;YACtH,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC;YACvC,OAAO;SACR;QACD,kEAAkE;QAClE,IAAM,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,2DAAqE,EAAE,CAAC,CAAC,CAAC;QACjG,UAAU,CAAC,eAAe,aAAmB,CAAC;IAChD,CAAC;IAEO,qCAAiB,GAAzB,UAA0B,UAAyB,EAAE,OAAwB,EAAE,QAAwB,EAAE,OAA+B;QACtI,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,uEAAuE;QACvE,IAAM,SAAS,GAAG,UAAU,CAAC,SAAU,CAAC;QACxC,IAAM,aAAa,GAAG,OAAO,wBAA0B,CAAC;QACxD,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACjE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACpF,IAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvD,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvD,IAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,SAAS,CAAC,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SAC9H;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,yDAAyD,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9F,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,8EAA6F,CAAC,CAAC;YACtH,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC;YACvC,OAAO;SACR;QACD,4DAA4D;QAC5D,IAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,IAAM,cAAc,GAAG,QAAQ,kBAAoB,CAAC;QACpD,IAAM,UAAU,GAAG,QAAQ,oBAAsB,CAAC;QAClD,IAAM,WAAW,GAAG,QAAQ,gBAAiB,CAAC;QAC9C,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO;IACC,uCAAmB,GAA3B,UACE,UAAyB,EACzB,OAAwB,EACxB,QAAwB,EACxB,cAAsB,EACtB,UAAkB,EAClB,WAAmB,EACnB,UAAkB;QAElB,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAM,SAAS,GAAG,UAAU,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACtE,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACtE,IAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE;YAC1E,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7D,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,8EAA6F,CAAC,CAAC;YACtH,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC;YACvC,OAAO;SACR;QACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAClG,CAAC;IAED,cAAc;IACN,uCAAmB,GAA3B,UACE,UAAyB,EACzB,OAAwB,EACxB,QAAwB,EACxB,cAAsB,EACtB,UAAkB,EAClB,UAAkB;QANpB,iBAoCC;QA5BC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAM,SAAS,GAAG,UAAU,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACpE,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACpE,IAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACxF,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAM,WAAW,GAAG,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClE,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,mBAAqB,YAAY,sBAAwB,UAAU,kBAAmB,WAAW,CAAC,CAAC;QAE7H,IAAM,SAAS,GAAG,SAAS,CAAC,gCAAgC,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjH,mEAAmE;QACnE,IAAI,CAAC,IAAI,oBAA2B,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAA,WAAI,EAAC,UAAA,GAAG;YACjF,IAAI,GAAG,EAAE;gBACP,KAAK,CAAC,oCAAoC,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtF,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,uEAAsF,CAAC,CAAC;gBAC/G,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC;gBACvC,OAAO;aACR;YACD,wCAAwC;YACxC,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,2DAAqE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACvJ,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,oCAAgB,GAAxB,UAAyB,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAC5H,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAM,QAAQ,GAAG,OAAO,sBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;QAEjG,IAAI,QAAQ,eAAqB,EAAE;YACjC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjE;aAAM,IAAI,QAAQ,eAAqB,IAAI,UAAU,CAAC,gBAAgB,eAAqB,EAAE;YAC5F,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjE;aAAM;YACL,gCAAgC;YAChC,QAAQ,CAAC,SAAS,wBAAiC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gBAAkB,QAAQ,GAAG,CAAC,sCAA6C,CAAC,CAAC;YACpG,OAAO;SACR;IACH,CAAC;IAEO,sCAAkB,GAA1B,UAA2B,UAAyB,EAAE,OAAwB,EAAE,QAAwB,EAAE,OAA+B;QACvI,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAM,eAAe,GAAG,OAAO,oBAAsB,CAAC,CAAC,SAAS;QAChE,gDAAgD;QAChD,IAAM,OAAO,GAAG,SAAS,CAAC,yBAAyB,EAAE,CAAC;QACtD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;QACpG,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3E,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAM,WAAW,GAAG,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClE,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzF,UAAU,CAAC,UAAU,GAAG,IAAI,2BAAa,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEvG,0CAA0C;QAC1C,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,mBAAqB,YAAY,kBAAmB,WAAW,CAAC,CAAC;QAE3F,IAAM,SAAS,GAAG,SAAS,CAAC,gCAAgC,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhH,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,2DAEK,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,sBAC5D,SAAS,CAChC,CAAC,CAAC;QACH,UAAU,CAAC,gBAAgB,aAAmB,CAAC;IACjD,CAAC;IAEO,sCAAkB,GAA1B,UAA2B,UAAyB,EAAE,OAAwB,EAAE,QAAwB,EAAE,OAA+B;QACvI,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAM,aAAa,GAAG,OAAO,wBAA0B,CAAC;QACxD,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACjE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpF,iEAAiE;QACjE,IAAM,GAAG,GAAG,UAAU,CAAC,UAAW,CAAC;QAEnC,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,SAAS,CAAC,kCAAkC,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SAC9I;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/E,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,uEAAsF,CAAC,CAAC;YAC/G,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;YACxC,OAAO;SACR;QAED,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAM,cAAc,GAAG,OAAO,kBAAoB,CAAC;QACnD,IAAM,KAAK,GAAG,OAAO,gBAAiB,CAAC;QACvC,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACrF,2EAA2E;QAC3E,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,gHAAgH;QAChH,+FAA+F;QAC/F,IAAI,CAAC,eAAe,EAAE;YACpB,KAAK,CAAC,8EAA8E,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACnI,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,uEAAsF,CAAC,CAAC;YAC/G,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;YACxC,OAAO;SACR;QACD,IAAI,CAAC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE;YACrE,KAAK,CAAC,8CAA8C,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACnG,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,uEAAsF,CAAC,CAAC;YAC/G,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;YACxC,OAAO;SACR;QACD,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC3F,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,kCAA0C,CAAC,CAAC;QACnE,iGAAiG;QACjG,yGAAyG;QACzG,2CAA2C;QAC3C,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5D,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC9D,GAAG,CAAC,wBAAwB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjG,GAAG,CAAC,wBAAwB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAClG,8FAA8F;QAE9F,UAAU,CAAC,uBAAuB,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAC1C,CAAC;IAEO,kCAAc,GAAtB,UAAuB,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAA5H,iBA6EC;QA5EC,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YAC/D,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO;SACR;QAED,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAM,MAAM,GAAG,OAAO,gBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;QAEtF,IAAM,KAAK,GAAG,OAAO,eAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,eAAqB,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,MAAM,wBAA4B,EAAE;YACtC,IAAM,UAAU,GAAG,OAAO,oBAAsB,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAM,SAAS,GAAG,OAAO,oBAAsB,CAAC;YAChD,IAAM,WAAW,GAAG,OAAO,sBAAuB,CAAC,CAAC,CAAoB,CAAC;YAEzE,IAAI,CAAC,IAAI,kCAAkC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,IAAA,WAAI,EAAC,UAAC,KAAuB;gBACtH,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,CAAC,gDAAgD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC5F,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gDAA0D,KAAK,CAAC,CAAC,CAAC;oBACzF,OAAO;iBACR;gBAED,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,2BAAmC,CAAC,CAAC;gBAC5D,KAAK,CAAC,kDAAkD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC,CAAC;SACL;aAAM,IAAI,MAAM,2BAA+B,EAAE;YAChD,IAAM,UAAU,GAAG,OAAO,oBAAsB,CAAC,QAAQ,EAAE,CAAC;YAE5D,IAAI,CAAC,IAAI,wCAAqC,UAAU,EAAE,UAAU,EAAE,IAAA,WAAI,EAAC,UAAC,KAAuB;gBACjG,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,CAAC,mDAAmD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/F,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gDAA0D,KAAK,CAAC,CAAC,CAAC;oBACzF,OAAO;iBACR;gBAED,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,2BAAmC,CAAC,CAAC;gBAC5D,KAAK,CAAC,qDAAqD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC,CAAC;SACL;aAAM,IAAI,MAAM,0BAA8B,EAAE;YAC/C,IAAI,CAAC,IAAI,sCAAoC,UAAU,EAAE,IAAA,WAAI,EAAC,UAAC,KAAuB,EAAE,IAA2B;gBACjH,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,CAAC,kDAAkD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC9F,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBAC1F,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,gDAA0D,KAAK,CAAC,CAAC,CAAC;oBACzF,OAAO;iBACR;gBAED,8DAA8D;gBAC9D,IAAM,OAAO,GAAG,EAAW,CAAC;gBAC5B,IAAK,CAAC,OAAO,CAAC,UAAC,KAAyB,EAAE,KAAa;oBACrD,IAAI,KAAK,GAAG,CAAC,EAAE;wBACb,OAAO,CAAC,IAAI,sBAAsB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpD;oBAED,OAAO,CAAC,IAAI,qBACY,KAAK,CAAC,QAAQ,sBACd,KAAK,CAAC,SAAS,wBACd,KAAK,CAAC,UAAU,CACxC,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAM,IAAI,GAAG,GAAG,CAAC,MAAM,OAAV,GAAG,8EAA8C,OAAO,UAAC,CAAC;gBACvE,QAAQ,CAAC,SAAS,eAAwB,EAAE,cAAc,+CAA2B,EAAE,CAAC,CAAC;gBACzF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnB,KAAK,CAAC,oDAAoD,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAEO,qCAAiB,GAAzB,UAA0B,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAC7H,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YAC/D,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO;SACR;QACD,gEAAgE;QAChE,IAAI,CAAC,IAAI,kCAAkC,UAAU,EAAE,IAAA,WAAI,EAAC,UAAC,KAAK,EAAE,MAAM;YACxE,IAAI,KAAK,EAAE;gBACT,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACxD;iBAAM;gBACL,QAAQ,CAAC,SAAS,eAAiB,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,yCAAqB,GAA7B,UAA8B,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;;QACjI,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YAC/D,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO;SACR;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;YAC5B,IAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YAEtC,IAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE;gBACZ,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;aACR;YAED,IAAM,GAAG,GAAuB,EAAE,CAAC;;gBACnC,KAAoB,IAAA,KAAA,sBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,gBAAA,4BAAE,EAAE,iBAAiB;oBAAtD,IAAM,KAAK,WAAA;oBACd,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;oBAC5C,GAAG,CAAC,IAAI,CAAC;wBACP,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;wBAC3B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,+BAA+B;qBAC7D,CAAC,CAAC;iBACJ;;;;;;;;;YAED,IAAM,WAAW,GAA+B;gBAC9C,GAAG,EAAE,GAAG;gBACR,WAAW,EAAE,IAAA,+BAAc,EAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrD,YAAY,EAAE,IAAA,+BAAc,EAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,WAAW,EAAE,IAAA,+BAAc,EAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrD,YAAY,EAAE,IAAA,+BAAc,EAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACrD,CAAC;YAEF,IAAI,CAAC,IAAI,kDAEP,UAAU,EACV,WAAW,EACX,IAAA,WAAI,EAAC,UAAC,KAAK,EAAE,YAAY;;gBACvB,IAAI,KAAK,EAAE;oBACT,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvD,OAAO;iBACR;gBAED,IAAM,eAAe,GAAG,YAAa,CAAC,eAAe,CAAC;gBAEtD,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,0CAA0C;;oBACrE,KAAmB,IAAA,oBAAA,sBAAA,eAAe,CAAA,gDAAA,6EAAE;wBAA/B,IAAM,MAAI,4BAAA;wBACb,IAAI,MAAI,CAAC,MAAM,EAAE;4BACf,aAAa,GAAG,IAAI,CAAC;4BACrB,MAAM;yBACP;qBACF;;;;;;;;;gBAED,IAAI,aAAa,EAAE,EAAE,4EAA4E;;wBAC/F,KAAmB,IAAA,oBAAA,sBAAA,eAAe,CAAA,gDAAA,6EAAE;4BAA/B,IAAM,MAAI,4BAAA;4BACb,IAAI,CAAC,MAAI,CAAC,MAAM,EAAE,EAAE,sDAAsD;gCACxE,MAAI,CAAC,MAAM,kBAAoB,CAAC,CAAC,oCAAoC;6BACtE;yBACF;;;;;;;;;iBACF;gBAED,0GAA0G;gBAC1G,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAA,CAAC,wBAAyB,CAAC,aAAe,EAAE,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,CACH,CAAC;SACH;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBACzG,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;oBAC5E,OAAO;iBACR;aACF;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;aACR;YAED,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgC,CAAC;YAEtF,IAAI,CAAC,IAAI,kDAEP,UAAU,EACV,YAAY,EACZ,IAAA,WAAI,EAAC,UAAC,KAAK,EAAE,aAAa;;gBACxB,IAAI,KAAK,EAAE;oBACT,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvD,OAAO;iBACR;gBAED,IAAM,eAAe,GAAG,aAAc,CAAC,eAAe,CAAC;gBAEvD,IAAI,WAAW,GAAG,KAAK,CAAC;;oBACxB,KAAmB,IAAA,oBAAA,sBAAA,eAAe,CAAA,gDAAA,6EAAE;wBAA/B,IAAM,MAAI,4BAAA;wBACb,IAAI,MAAI,CAAC,MAAM,IAAI,MAAI,CAAC,KAAK,KAAK,SAAS,EAAE;4BAC3C,mDAAmD;4BACnD,WAAW,GAAG,IAAI,CAAC;4BACnB,MAAM;yBACP;qBACF;;;;;;;;;gBAED,IAAI,WAAW,EAAE;oBACf,wGAAwG;oBACxG,QAAQ,CAAC,SAAS,yBAA2B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBACxF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;iBACpE;qBAAM;oBACP,uDAAuD;oBACrD,QAAQ,CAAC,SAAS,sBAAwB,CAAC;oBAC3C,QAAQ,CAAC,GAAG,EAAE,CAAC;iBAChB;YACH,CAAC,CAAC,CACH,CAAC;SACH;aAAM;YACL,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC,CAAC,qBAAqB;YAC7G,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IAEO,sCAAkB,GAA1B,UAA2B,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAAhI,iBAyCC;QAxCC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YAC/D,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO;SACR;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;YAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;aACR;YAED,IAAM,gBAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAwB,CAAC;YAE1E,IAAI,gBAAc,CAAC,GAAG,IAAI,gBAAc,CAAC,GAAG,EAAE;gBAC5C,KAAK,CAAC,4DAA4D,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAc,CAAC,GAAG,EAAE,gBAAc,CAAC,GAAG,CAAC,CAAC;gBAEzI,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE,wCAAwC;oBAC1E,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;iBAC5C;gBAED,UAAU,CAAC,aAAa,GAAG,gBAAc,CAAC,GAAG,CAAC;gBAC9C,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC;oBACxC,KAAK,CAAC,+CAA+C,EAAE,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAc,CAAC,GAAG,CAAC,CAAC;oBACxG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;oBACrC,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBAC3C,CAAC,EAAE,gBAAc,CAAC,GAAG,CAAC,CAAC;gBAEvB,QAAQ,CAAC,SAAS,eAAiB,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,iBAAmB,EAAE,CAAC,CAAC,CAAC;gBAC5D,OAAO;aACR;iBAAM;gBACL,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;aAC9E;SACF;aAAM;YACL,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;YACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IAEO,kCAAc,GAAtB,UAAuB,UAAyB,EAAE,GAAQ,EAAE,OAAwB,EAAE,IAAY,EAAE,QAAwB;QAC1H,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;gBACnH,QAAQ,CAAC,SAAS,8CAAuD,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACpH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,sCAAmC,EAAE,CAAC,CAAC,CAAC;gBAC5E,OAAO;aACR;SACF;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;gBACvF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;aACR;YAED,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAoB,CAAC;YACvE,0EAA0E;YAC1E,IAAI,CAAC,IAAI,4CAAuC,eAAe,EAAE,IAAA,WAAI,EAAC,UAAC,KAAK,EAAE,QAAQ;gBACpF,IAAI,KAAK,EAAE;oBACT,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC;oBAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;iBACxD;qBAAM;oBACL,QAAQ,CAAC,SAAS,eAAiB,EAAE,cAAc,+BAAyB,EAAE,CAAC,CAAC;oBAChF,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC,CAAC;SACL;aAAM;YACL,QAAQ,CAAC,SAAS,wBAA0B,EAAE,cAAc,uCAAuB,EAAE,CAAC,CAAC,CAAC,qBAAqB;YAC7G,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,uCAAoC,EAAE,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IAEH,gBAAC;AAAD,CAAC,AA9sBD,CAA+B,qBAAY,GA8sB1C;AA9sBY,8BAAS"}
@@ -4,7 +4,7 @@ import { ServiceJsonObject } from "../internal-types";
4
4
  import { CharacteristicValue, Nullable, WithUUID } from "../types";
5
5
  import { CharacteristicWarning } from "./Accessory";
6
6
  import { Characteristic, CharacteristicChange, SerializedCharacteristic } from "./Characteristic";
7
- import { AccessCode, AccessControl, AccessoryInformation, AccessoryMetrics, AccessoryRuntimeInformation, AirPurifier, AirQualitySensor, AssetUpdate, Assistant, AudioStreamManagement, Battery, BridgeConfiguration, BridgingState, CameraControl, CameraOperatingMode, CameraRecordingManagement, CameraRTPStreamManagement, CarbonDioxideSensor, CarbonMonoxideSensor, CloudRelay, ContactSensor, DataStreamTransportManagement, Diagnostics, Door, Doorbell, Fan, Fanv2, Faucet, FilterMaintenance, FirmwareUpdate, GarageDoorOpener, HeaterCooler, HumidifierDehumidifier, HumiditySensor, InputSource, IrrigationSystem, LeakSensor, Lightbulb, LightSensor, LockManagement, LockMechanism, Microphone, MotionSensor, NFCAccess, OccupancySensor, Outlet, Pairing, PowerManagement, ProtocolInformation, SecuritySystem, ServiceLabel, Siri, SiriEndpoint, Slats, SmartSpeaker, SmokeSensor, Speaker, StatefulProgrammableSwitch, StatelessProgrammableSwitch, Switch, TapManagement, TargetControl, TargetControlManagement, Television, TelevisionSpeaker, TemperatureSensor, Thermostat, ThreadTransport, TimeInformation, TransferTransportManagement, Tunnel, Valve, WiFiRouter, WiFiSatellite, WiFiTransport, Window, WindowCovering } from "./definitions";
7
+ import type { AccessCode, AccessControl, AccessoryInformation, AccessoryMetrics, AccessoryRuntimeInformation, AirPurifier, AirQualitySensor, AssetUpdate, Assistant, AudioStreamManagement, Battery, BridgeConfiguration, BridgingState, CameraControl, CameraOperatingMode, CameraRecordingManagement, CameraRTPStreamManagement, CarbonDioxideSensor, CarbonMonoxideSensor, CloudRelay, ContactSensor, DataStreamTransportManagement, Diagnostics, Door, Doorbell, Fan, Fanv2, Faucet, FilterMaintenance, FirmwareUpdate, GarageDoorOpener, HeaterCooler, HumidifierDehumidifier, HumiditySensor, InputSource, IrrigationSystem, LeakSensor, Lightbulb, LightSensor, LockManagement, LockMechanism, Microphone, MotionSensor, NFCAccess, OccupancySensor, Outlet, Pairing, PowerManagement, ProtocolInformation, SecuritySystem, ServiceLabel, Siri, SiriEndpoint, Slats, SmartSpeaker, SmokeSensor, Speaker, StatefulProgrammableSwitch, StatelessProgrammableSwitch, Switch, TapManagement, TargetControl, TargetControlManagement, Television, TelevisionSpeaker, TemperatureSensor, Thermostat, ThreadTransport, TimeInformation, TransferTransportManagement, Tunnel, Valve, WiFiRouter, WiFiSatellite, WiFiTransport, Window, WindowCovering } from "./definitions";
8
8
  import { IdentifierCache } from "./model/IdentifierCache";
9
9
  import { HAPConnection } from "./util/eventedhttp";
10
10
  import { HapStatusError } from "./util/hapStatusError";
@@ -361,4 +361,5 @@ export declare class Service extends EventEmitter {
361
361
  */
362
362
  static deserialize(json: SerializedService): Service;
363
363
  }
364
+ import "./definitions/ServiceDefinitions";
364
365
  //# sourceMappingURL=Service.d.ts.map