roku-debug 0.23.7 → 0.23.8

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.
@@ -4,6 +4,7 @@ import { PROTOCOL_ERROR_CODES, Command } from '../Constants';
4
4
  import { ExecuteV3Response } from '../events/responses/ExecuteV3Response';
5
5
  import { ListBreakpointsResponse } from '../events/responses/ListBreakpointsResponse';
6
6
  import { AddBreakpointsResponse } from '../events/responses/AddBreakpointsResponse';
7
+ import { ProtocolCapabilities } from './ProtocolCapabilities';
7
8
  import { ThreadsRequest } from '../events/requests/ThreadsRequest';
8
9
  import type { ExceptionBreakpoint } from '../events/requests/SetExceptionBreakpointsRequest';
9
10
  import type { ProtocolRequest, ProtocolResponse, ProtocolUpdate } from '../events/ProtocolEvent';
@@ -36,7 +37,17 @@ export declare class DebugProtocolClient {
36
37
  * This field indicates whether we should be looking for packet_length or not in the responses we get from the device
37
38
  */
38
39
  watchPacketLength: boolean;
39
- protocolVersion: string;
40
+ /**
41
+ * Capability flags derived from the negotiated protocol version. Undefined until the
42
+ * handshake completes, then assigned a fresh `ProtocolCapabilities` keyed off the version
43
+ * the device reported.
44
+ */
45
+ capabilities: ProtocolCapabilities | undefined;
46
+ /**
47
+ * The protocol version negotiated with the device during the handshake. Undefined until
48
+ * the handshake has completed.
49
+ */
50
+ get protocolVersion(): string | undefined;
40
51
  primaryThread: number;
41
52
  stackFrameIndex: number;
42
53
  /**
@@ -71,24 +82,6 @@ export declare class DebugProtocolClient {
71
82
  private requestIdSequence;
72
83
  private activeRequests;
73
84
  private options;
74
- /**
75
- * Prior to protocol v3.1.0, the Roku device would regularly set the wrong thread as "active",
76
- * so this flag lets us know if we should use our better-than-nothing workaround
77
- */
78
- private get enableThreadHoppingWorkaround();
79
- /**
80
- * Starting in protocol v3.1.0, component libary breakpoints must be added in the format `lib:/<library_name>/<filepath>`, but prior they didn't require this.
81
- * So this flag tells us which format to support
82
- */
83
- private get enableComponentLibrarySpecificBreakpoints();
84
- /**
85
- * Starting in protocol v3.1.0, breakpoints can support conditional expressions. This flag indicates whether the current sessuion supports that functionality.
86
- */
87
- private get supportsConditionalBreakpoints();
88
- get supportsBreakpointRegistrationWhileRunning(): boolean;
89
- get supportsBreakpointVerification(): boolean;
90
- get supportsVirtualVariables(): boolean;
91
- get supportsExceptionBreakpoints(): boolean;
92
85
  /**
93
86
  * Get a promise that resolves after an event occurs exactly once
94
87
  */
@@ -12,6 +12,7 @@ const ListBreakpointsResponse_1 = require("../events/responses/ListBreakpointsRe
12
12
  const AddBreakpointsResponse_1 = require("../events/responses/AddBreakpointsResponse");
13
13
  const RemoveBreakpointsResponse_1 = require("../events/responses/RemoveBreakpointsResponse");
14
14
  const util_1 = require("../../util");
15
+ const ProtocolCapabilities_1 = require("./ProtocolCapabilities");
15
16
  const BreakpointErrorUpdate_1 = require("../events/updates/BreakpointErrorUpdate");
16
17
  const ContinueRequest_1 = require("../events/requests/ContinueRequest");
17
18
  const StopRequest_1 = require("../events/requests/StopRequest");
@@ -47,7 +48,7 @@ class DebugProtocolClient {
47
48
  constructor(options) {
48
49
  this.logger = logging_1.logger.createLogger(`[dpclient]`);
49
50
  // The highest tested version of the protocol we support.
50
- this.supportedVersionRange = '<=3.2.0';
51
+ this.supportedVersionRange = '<=3.5.0';
51
52
  this.isHandshakeComplete = false;
52
53
  this.connectedToIoPort = false;
53
54
  /**
@@ -106,36 +107,12 @@ class DebugProtocolClient {
106
107
  }, 999);
107
108
  }
108
109
  /**
109
- * Prior to protocol v3.1.0, the Roku device would regularly set the wrong thread as "active",
110
- * so this flag lets us know if we should use our better-than-nothing workaround
110
+ * The protocol version negotiated with the device during the handshake. Undefined until
111
+ * the handshake has completed.
111
112
  */
112
- get enableThreadHoppingWorkaround() {
113
- return semver.satisfies(this.protocolVersion, '<3.1.0');
114
- }
115
- /**
116
- * Starting in protocol v3.1.0, component libary breakpoints must be added in the format `lib:/<library_name>/<filepath>`, but prior they didn't require this.
117
- * So this flag tells us which format to support
118
- */
119
- get enableComponentLibrarySpecificBreakpoints() {
120
- return semver.satisfies(this.protocolVersion, '>=3.1.0');
121
- }
122
- /**
123
- * Starting in protocol v3.1.0, breakpoints can support conditional expressions. This flag indicates whether the current sessuion supports that functionality.
124
- */
125
- get supportsConditionalBreakpoints() {
126
- return semver.satisfies(this.protocolVersion, '>=3.1.0');
127
- }
128
- get supportsBreakpointRegistrationWhileRunning() {
129
- return semver.satisfies(this.protocolVersion, '>=3.2.0');
130
- }
131
- get supportsBreakpointVerification() {
132
- return semver.satisfies(this.protocolVersion, '>=3.2.0');
133
- }
134
- get supportsVirtualVariables() {
135
- return semver.satisfies(this.protocolVersion, '>=3.3.0');
136
- }
137
- get supportsExceptionBreakpoints() {
138
- return semver.satisfies(this.protocolVersion, '>=3.3.0');
113
+ get protocolVersion() {
114
+ var _a;
115
+ return (_a = this.capabilities) === null || _a === void 0 ? void 0 : _a.protocolVersion;
139
116
  }
140
117
  once(eventName) {
141
118
  return new Promise((resolve) => {
@@ -322,11 +299,12 @@ class DebugProtocolClient {
322
299
  return result;
323
300
  }
324
301
  async processThreadsRequest(request) {
302
+ var _a;
325
303
  if (this.isStopped) {
326
304
  let result = await this.sendRequest(request);
327
305
  if (result.data.errorCode === Constants_1.ErrorCode.OK) {
328
306
  //older versions of the debug protocol had issues with maintaining the active thread, so our workaround is to keep track of it elsewhere
329
- if (this.enableThreadHoppingWorkaround) {
307
+ if ((_a = this.capabilities) === null || _a === void 0 ? void 0 : _a.enableThreadHoppingWorkaround) {
330
308
  //ignore the `isPrimary` flag on threads
331
309
  this.logger.debug(`Ignoring the 'isPrimary' flag from threads because protocol version 3.0.0 and lower has a bug`);
332
310
  }
@@ -386,12 +364,13 @@ class DebugProtocolClient {
386
364
  * @param threadIndex the index (or perhaps ID?) of the thread to get variables for
387
365
  */
388
366
  async getVariables(variablePathEntries = [], stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
367
+ var _a;
389
368
  const response = await this.processVariablesRequest(VariablesRequest_1.VariablesRequest.fromJson({
390
369
  requestId: this.requestIdSequence++,
391
370
  threadIndex: threadIndex,
392
371
  stackFrameIndex: stackFrameIndex,
393
372
  getChildKeys: true,
394
- getVirtualKeys: this.supportsVirtualVariables,
373
+ getVirtualKeys: (_a = this.capabilities) === null || _a === void 0 ? void 0 : _a.supportsVirtualVariables,
395
374
  variablePathEntries: variablePathEntries.map(x => ({
396
375
  //remove leading and trailing quotes
397
376
  name: x.replace(/^"/, '').replace(/"$/, ''),
@@ -513,7 +492,8 @@ class DebugProtocolClient {
513
492
  }
514
493
  }
515
494
  async addBreakpoints(breakpoints) {
516
- const { enableComponentLibrarySpecificBreakpoints } = this;
495
+ var _a, _b, _c;
496
+ const enableComponentLibrarySpecificBreakpoints = (_a = this.capabilities) === null || _a === void 0 ? void 0 : _a.enableComponentLibrarySpecificBreakpoints;
517
497
  if ((breakpoints === null || breakpoints === void 0 ? void 0 : breakpoints.length) > 0) {
518
498
  const json = {
519
499
  requestId: this.requestIdSequence++,
@@ -530,7 +510,7 @@ class DebugProtocolClient {
530
510
  };
531
511
  const useConditionalBreakpoints = (
532
512
  //does this protocol version support conditional breakpoints?
533
- this.supportsConditionalBreakpoints &&
513
+ ((_b = this.capabilities) === null || _b === void 0 ? void 0 : _b.supportsConditionalBreakpoints) &&
534
514
  //is there at least one conditional breakpoint present?
535
515
  !!breakpoints.find(x => { var _a; return !!((_a = x === null || x === void 0 ? void 0 : x.conditionalExpression) === null || _a === void 0 ? void 0 : _a.trim()); }));
536
516
  let response;
@@ -541,7 +521,7 @@ class DebugProtocolClient {
541
521
  response = await this.sendRequest(AddBreakpointsRequest_1.AddBreakpointsRequest.fromJson(json));
542
522
  }
543
523
  //if the device does not support breakpoint verification, then auto-mark all of these as verified
544
- if (!this.supportsBreakpointVerification) {
524
+ if (!((_c = this.capabilities) === null || _c === void 0 ? void 0 : _c.supportsBreakpointVerification)) {
545
525
  this.emit('breakpoints-verified', {
546
526
  breakpoints: response.data.breakpoints
547
527
  });
@@ -874,7 +854,7 @@ class DebugProtocolClient {
874
854
  async verifyHandshake(response) {
875
855
  if (DebugProtocolClient.DEBUGGER_MAGIC === response.data.magic) {
876
856
  this.logger.log('Magic is valid.');
877
- this.protocolVersion = response.data.protocolVersion;
857
+ this.capabilities = new ProtocolCapabilities_1.ProtocolCapabilities(response.data.protocolVersion);
878
858
  this.logger.log('Protocol Version:', this.protocolVersion);
879
859
  this.watchPacketLength = semver.satisfies(this.protocolVersion, '>=3.0.0');
880
860
  this.isHandshakeComplete = true;
@@ -1 +1 @@
1
- {"version":3,"file":"DebugProtocolClient.js","sourceRoot":"","sources":["../../../src/debugProtocol/client/DebugProtocolClient.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,qCAAqC;AACrC,8CAA8C;AAC9C,iCAAiC;AACjC,4CAA0H;AAC1H,2CAAuC;AACvC,6EAA0E;AAC1E,yFAAsF;AACtF,uFAAoF;AACpF,6FAA0F;AAC1F,qCAAyC;AACzC,mFAAgF;AAChF,wEAAqE;AACrE,gEAA6D;AAC7D,8EAA2E;AAC3E,gEAA6D;AAC7D,0FAAuF;AACvF,sFAAmF;AACnF,0EAAuE;AACvE,4EAAyE;AACzE,sEAAmE;AAEnE,sGAAmG;AACnG,sEAAmE;AACnE,oFAAiF;AACjF,0GAAuG;AAEvG,6EAA0E;AAC1E,iFAA8E;AAC9E,0EAAuE;AACvE,6EAA0E;AAC1E,uFAAoF;AACpF,6EAA0E;AAC1E,yEAAsE;AAEtE,yEAAsE;AACtE,yGAAsG;AAEtG,6EAAwF;AACxF,6EAAgG;AAChG,iFAA8E;AAC9E,mFAAgF;AAChF,4DAAyD;AAEzD,wDAAiD;AAEjD,yFAAsF;AAEtF,qGAAkG;AAElG,MAAa,mBAAmB;IAO5B,YACI,OAA4B;QANzB,WAAM,GAAG,gBAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAElD,yDAAyD;QAClD,0BAAqB,GAAG,SAAS,CAAC;QA2BlC,wBAAmB,GAAG,KAAK,CAAC;QAC5B,sBAAiB,GAAG,KAAK,CAAC;QACjC;;;WAGG;QACI,sBAAiB,GAAG,KAAK,CAAC;QAKjC;;WAEG;QACI,YAAO,GAAG,IAAI,yBAAe,EAA6B,CAAC;QAE1D,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAKrC;;WAEG;QACK,wBAAmB,GAAG,IAAA,YAAK,GAAQ,CAAC;QAK5C;;WAEG;QACK,mBAAc,GAAG,IAAA,YAAK,GAAQ,CAAC;QACvC;;WAEG;QACK,WAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC;;WAEG;QACI,cAAS,GAAG,KAAK,CAAC;QACjB,sBAAiB,GAAG,CAAC,CAAC;QACtB,mBAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;QAyH5D;;WAEG;QACK,gBAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QA2jBxC;;WAEG;QACK,mBAAc,GAAG,CAAC,CAAC;QA0LnB,sBAAiB,GAAG,IAAI,yBAAW,EAAE,CAAC;QAwMtC,8BAAyB,GAAG,KAAK,CAAC;QAsBlC,yBAAoB,GAAG,KAAK,CAAC;QAlpCjC,IAAI,CAAC,OAAO,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,SAAS;YACf,wDAAwD;YACxD,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;SACnB,CAAC;QAEF,6EAA6E;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;SACJ,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAkDD;;;OAGG;IACH,IAAY,6BAA6B;QACrC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,IAAY,yCAAyC;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAY,8BAA8B;QACtC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,0CAA0C;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,8BAA8B;QACrC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,wBAAwB;QAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,IAAW,4BAA4B;QACnC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAcM,IAAI,CAAC,SAAiB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,SAAqD,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBAC1F,UAAU,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAeD,oFAAoF;IACpF,6FAA6F;IACtF,EAAE,CAAC,SAAiB,EAAE,OAA+B;QACxD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC;IACN,CAAC;IASO,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAAK;QACvC,uGAAuG;QACvG,MAAM,WAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,+GAA+G;QAC/G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,0BAA0B;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;gBAC1B,aAAa,EAAE,KAAK;aACvB,CAAC,CAAC;YACH,WAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAEjE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;gBAC7E,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACzC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,UAAU;SACrB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC;IAOD;;;OAGG;IACI,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,uGAAuG;QACvG,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAE7D,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxB,kDAAkD;YAClD,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;oBACnD,uCAAuC;iBAC1C;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;YACtC,0DAA0D;YAC1D,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,kDAAI,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;;YACvC,2DAA2D;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,6CAA6C;YAC7C,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,kDAAI,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,EAAE;YACf,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,mCAAgB,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,mBAAmB,CAAC,cAAc;SAC5C,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,OAAyB;QAC3D,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAE3C,iFAAiF;QACjF,OAAO,IAAI,CAAC,WAAW,CAA0C,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,IAAoD,EAAE,MAAc;QACzF,IAAI,GAAG,GAAG;YACN,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SAC1B,CAAC;QACF,IAAI,IAAI,KAAK,IAAI,EAAE;YACd,GAAW,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,sBAAsB,CAC9B,iCAAe,CAAC,QAAQ,CAAC;YACrB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAwB;QACzD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,IAAI,CAAC,WAAW,CAAkB,OAAO,CAAC,CAAC;SACrD;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,GAAG,KAAK;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAC1B,yBAAW,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,EACF,KAAK,CACR,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAoB,EAAE,KAAK,GAAG,KAAK;QAChE,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,EAAE;YACnC,OAAO,IAAI,CAAC,WAAW,CAAkB,OAAO,CAAC,CAAC;SACrD;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CACnB,uCAAkB,CAAC,QAAQ,CAAC;YACxB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,CACL,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,cAAsB,IAAI,CAAC,aAAa;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,cAAsB,IAAI,CAAC,aAAa;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,cAAsB,IAAI,CAAC,aAAa;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,QAAkB,EAAE,WAAmB;QACtD,OAAO,IAAI,CAAC,kBAAkB,CAC1B,yBAAW,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,WAAW;SAC3B,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAoB;QACjD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAkB,OAAO,CAAC,CAAC;YAClE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,EAAE,EAAE;gBAC5C,uFAAuF;aAC1F;iBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,aAAa,EAAE;gBAC9D,8FAA8F;gBAC9F,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChC;YACD,OAAO,UAAU,CAAC;SACrB;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;SAClF;IACL,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC3C,+BAAc,CAAC,QAAQ,CAAC;YACpB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,CACL,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACtD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAkB,OAAO,CAAC,CAAC;YAE9D,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,EAAE,EAAE;gBACxC,wIAAwI;gBACxI,IAAI,IAAI,CAAC,6BAA6B,EAAE;oBACpC,wCAAwC;oBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;iBACtH;qBAAM;oBACH,wDAAwD;oBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACpC,IAAI,MAAM,CAAC,SAAS,EAAE;4BAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;4BACvB,MAAM;yBACT;qBACJ;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;SAC1E;IACL,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,OAA8B;QAC/D,OAAO,IAAI,CAAC,cAAc,CACtB,+DAA8B,CAAC,QAAQ,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,WAAW,EAAE,OAAO;SACvB,CAAC,CACL,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,cAAsB,IAAI,CAAC,aAAa;QAC/D,OAAO,IAAI,CAAC,wBAAwB,CAChC,qCAAiB,CAAC,QAAQ,CAAC;YACvB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,WAAW,EAAE,WAAW;SAC3B,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,OAA0B;;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;SAC7E;aAAM,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,WAAW,IAAG,CAAC,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,WAAW,CAAqB,OAAO,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,WAAW,2BAA2B,CAAC,CAAC;SAC7G;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,YAAY,CAAC,sBAAqC,EAAE,EAAE,kBAA0B,IAAI,CAAC,eAAe,EAAE,cAAsB,IAAI,CAAC,aAAa;QACvJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,mCAAgB,CAAC,QAAQ,CAAC;YACtB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,WAAW,EAAE,WAAW;YACxB,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI,CAAC,wBAAwB;YAC7C,mBAAmB,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/C,oCAAoC;gBACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC3C,oBAAoB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC5D,iGAAiG;gBACjG,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,wBAAwB;aACxD,CAAC,CAAC;YACH,+HAA+H;YAC/H,4BAA4B,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;SACpH,CAAC,CACL,CAAC;QAEF,8GAA8G;QAC9G,IAAI,WAAI,CAAC,qBAAqB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,IAAI,QAAQ,GAAG;gBACX,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;aACJ,CAAC;YACd,MAAM,iBAAiB,GAAG,qCAAiB,CAAC,QAAQ,CAAC;gBACjD,GAAG,QAAQ,CAAC,IAAI;gBAChB,SAAS,EAAE,CAAC,QAAQ,CAAC;aACxB,CAAC,CAAC;YAEH,IAAI,aAA2B,CAAC;YAChC,IAAI,iBAAyB,CAAC;YAC9B,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;;gBAC9C,oEAAoE;gBACpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EACnC,eAAe,EACf,WAAW,CACd,CAAC;gBACF,aAAa,GAAG,MAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,SAAS,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC;gBACtD,iBAAiB,GAAG,aAAa,CAAC;gBAClC,+CAA+C;gBAC/C,IAAI,aAAa,KAAK,gCAAY,CAAC,cAAc,EAAE;oBAC/C,MAAM,MAAM,GAAG,MAAA,MAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,SAAS,0CAAG,CAAC,CAAC,0CAAE,KAAK,0CAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChG,iBAAiB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;iBACrD;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,WAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;gBAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACpD,wDAAwD;gBACxD,wCAAwC;gBACxC,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE;oBAC3D,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBACvC,QAAQ,CAAC,IAAI,GAAG,gCAAY,CAAC,aAAa,CAAC;oBAC3C,OAAO,iBAAiB,CAAC;iBAC5B;gBAED,gEAAgE;gBAChE,8DAA8D;gBAC9D,IAAI,eAAe,KAAK,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzD,MAAM,IAAI,KAAK,CAAC,gBAAgB,mBAAmB,CAAC,eAAe,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC;iBACxG;gBAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE;oBACvD,MAAM,iBAAiB,CAAC,eAAe,CAAC,CAAC;oBAEzC,qEAAqE;oBACrE,kDAAkD;oBAClD,IACI,eAAe,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC;wBAClD,CAAC,gCAAY,CAAC,gBAAgB,EAAE,gCAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtF;wBACE,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACpE,QAAQ,CAAC,IAAI,GAAG,gCAAY,CAAC,OAAO,CAAC;wBACrC,QAAQ,CAAC,KAAK,GAAG,uBAAuB,CAAC;wBACzC,OAAO,iBAAiB,CAAC;qBAC5B;iBACJ;gBACD,2DAA2D;gBAC3D,wEAAwE;gBACxE,MAAM,IAAI,KAAK,CAAC,gBAAgB,mBAAmB,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACrI;YAED,0GAA0G;YAC1G,IAAI,CAAC,WAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;gBAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBAErD,qDAAqD;gBACrD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,EAAE;oBAC5D,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACpE,QAAQ,CAAC,IAAI,GAAG,gCAAY,CAAC,OAAO,CAAC;oBACrC,OAAO,iBAAiB,CAAC;iBAC5B;gBAED,IACI,mBAAmB,CAAC,MAAM,GAAG,CAAC;oBAC9B,gBAAgB,GAAG,CAAC;oBACpB,6DAA6D;oBAC7D,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,EACnD;oBACE,MAAM,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;oBAE9C,8DAA8D;oBAC9D,IAAI,gBAAgB,KAAK,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1D,MAAM,IAAI,KAAK,CAAC,gBAAgB,mBAAmB,CAAC,gBAAgB,GAAG,CAAC,CAAC,cAAc,iBAAiB,GAAG,CAAC,CAAC;qBAChH;oBAED,uDAAuD;oBACvD,kDAAkD;oBAClD,IACI,gBAAgB,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC;wBACnD,CAAC,gCAAY,CAAC,gBAAgB,EAAE,gCAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtF;wBACE,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACpE,QAAQ,CAAC,IAAI,GAAG,gCAAY,CAAC,OAAO,CAAC;wBACrC,QAAQ,CAAC,KAAK,GAAG,uBAAuB,CAAC;wBACzC,OAAO,iBAAiB,CAAC;qBAC5B;iBACJ;gBACD,2DAA2D;gBAC3D,oFAAoF;gBACpF,MAAM,IAAI,KAAK,CAAC,gBAAgB,mBAAmB,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC1I;SACJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,OAAyB;QAC3D,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;YACjD,OAAO,IAAI,CAAC,WAAW,CAAoB,OAAO,CAAC,CAAC;SACvD;IACL,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,kBAA0B,IAAI,CAAC,eAAe,EAAE,cAAsB,IAAI,CAAC,aAAa;QACpI,OAAO,IAAI,CAAC,qBAAqB,CAC7B,+BAAc,CAAC,QAAQ,CAAC;YACpB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,WAAW,EAAE,WAAW;YACxB,eAAe,EAAE,eAAe;YAChC,UAAU,EAAE,UAAU;SACzB,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACvD,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;YACjD,OAAO,IAAI,CAAC,WAAW,CAAoB,OAAO,CAAC,CAAC;SACvD;IACL,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,WAAsE;QAC9F,MAAM,EAAE,yCAAyC,EAAE,GAAG,IAAI,CAAC;QAC3D,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,IAAG,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG;gBACT,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACnC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC7B,IAAI,UAAU,GAAG;wBACb,GAAG,CAAC;wBACJ,WAAW,EAAE,CAAC,CAAC,QAAQ;qBAC1B,CAAC;oBACF,IAAI,yCAAyC,IAAI,UAAU,CAAC,oBAAoB,EAAE;wBAC9E,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,UAAU,CAAC,oBAAoB,GAAG,CAAC,CAAC;qBAC7G;oBACD,OAAO,UAAU,CAAC;gBACtB,CAAC,CAAC;aACL,CAAC;YAEF,MAAM,yBAAyB,GAAG;YAC9B,6DAA6D;YAC7D,IAAI,CAAC,8BAA8B;gBACnC,uDAAuD;gBACvD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,qBAAqB,0CAAE,IAAI,EAAE,CAAA,CAAA,EAAA,CAAC,CAC9D,CAAC;YAEF,IAAI,QAAoE,CAAC;YACzE,IAAI,yBAAyB,EAAE;gBAC3B,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7B,mEAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAClD,CAAC;aACL;iBAAM;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7B,6CAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvC,CAAC;aACL;YAED,iGAAiG;YACjG,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC9B,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;iBACzC,CAAC,CAAC;aACN;YACD,OAAO,QAAQ,CAAC;SACnB;QACD,OAAO,+CAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,OAAO,IAAI,CAAC,cAAc,CACtB,+CAAsB,CAAC,QAAQ,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,CACL,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,aAAuB;QAClD,OAAO,IAAI,CAAC,+BAA+B,CACvC,mDAAwB,CAAC,QAAQ,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACnC,aAAa,EAAE,aAAa;SAC/B,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,OAAiC;;QAC3E,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,MAAA,MAAA,OAAO,CAAC,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,mCAAI,EAAE,CAAC;QAElG,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,aAAa,0CAAE,MAAM,IAAG,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,WAAW,CAA4B,OAAO,CAAC,CAAC;SAC/D;QACD,OAAO,qDAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc,CAAqC,OAAwB;QACpF,QAAQ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC,IAAI,EAAE;YAC/B,KAAK,iCAAe,CAAC,IAAI;gBACrB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAA0B,CAAQ,CAAC;YAE1E,KAAK,+BAAc,CAAC,IAAI;gBACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAyB,CAAQ,CAAC;YAExE,KAAK,mCAAgB,CAAC,IAAI;gBACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAA2B,CAAQ,CAAC;YAE5E,KAAK,mDAAwB,CAAC,IAAI;gBAC9B,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAmC,CAAQ,CAAC;YAE5F,KAAK,qCAAiB,CAAC,IAAI;gBACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAA4B,CAAQ,CAAC;YAE9E,KAAK,yBAAW,CAAC,IAAI;gBACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAsB,CAAQ,CAAC;YAElE,KAAK,yBAAW,CAAC,IAAI;gBACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAsB,CAAQ,CAAC;YAElE,KAAK,+BAAc,CAAC,IAAI;gBACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAyB,CAAQ,CAAC;YAExE,KAAK,mCAAgB,CAAC,IAAI;gBACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAA2B,CAAQ,CAAC;YAE5E,mGAAmG;YACnG,KAAK,6CAAqB,CAAC,IAAI,CAAC;YAChC,KAAK,mEAAgC,CAAC,IAAI,CAAC;YAC3C,KAAK,uCAAkB,CAAC,IAAI,CAAC;YAC7B,KAAK,+CAAsB,CAAC,IAAI,CAAC;YACjC,KAAK,+DAA8B,CAAC,IAAI;gBACpC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC;gBACI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC,CAAC;gBACpE,4CAA4C;gBAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACxC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAA8C,OAAwB;QAC3F,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpD,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC,CAAC,OAAO,CAAC;QAEZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC/C,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACpD,WAAW,EAAE,CAAC;oBACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACnD,OAAO,CAAC,QAAa,CAAC,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBACvC,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,OAAO;iBACnB,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,CACF,IAAI,KAAK,CAAC,wCAAwC,mBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CACrF,CAAC;aACL;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,2BAA2B;QAC/B,MAAM,QAAQ,GAAG,qCAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,QAAQ,CAAC,IAAI,CAAC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS,CAC3H,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CACrE,CAAC,CAAC;YACH,sDAAsD;YACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/D;IACL,CAAC;IAOO,QAAQ,CAAC,KAA0D;;QACvE,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAA,oDAAoD,CAAC,IAAI,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;QAC1H,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;SACjH;aAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;SAClH;aAAM;YACH,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;aACjH;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;aACzH;SACJ;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;;QACjB,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAE/D,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1E,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE;gBACnB,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClE;YAED,uJAAuJ;YACvJ,IAAI,CAAC,gBAAgB,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnF,oHAAoH;gBACpH,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,0CAAE,YAAY,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC;gBACrI,OAAO,KAAK,CAAC;aAChB;YAED,yDAAyD;YACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE7D,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;aACnC;YAED,iBAAiB;YACjB,IAAI,gBAAgB,EAAE;gBAClB,8BAA8B;gBAC9B,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;oBACpC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;oBACtC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;wBAChC,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,gBAAgB;qBAC3B,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;oBACxC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;wBAClC,MAAM,EAAE,IAAI;wBACZ,QAAQ,EAAE,gBAAuB;qBACpC,CAAC,CAAC;iBACN;gBACD,OAAO,IAAI,CAAC;aACf;SACJ;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SAC7C;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC3C,gFAAgF;QAChF,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,IAAI,SAAkD,CAAC;YACvD,8CAA8C;YAC9C,SAAS,GAAG,yCAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,wEAAwE;YACxE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBACpB,SAAS,GAAG,qCAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACpD;YACD,IAAI,SAAS,CAAC,OAAO,EAAE;gBACnB,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBACtC,OAAO,SAAS,CAAC;aACpB;YACD,OAAO;SACV;QAED,IAAI,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,qCAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iCAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzH,uFAAuF;QACvF,gCAAgC;QAChC,IAAI,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,KAAK,qBAAS,CAAC,EAAE,EAAE;YAC5E,OAAO,eAAe,CAAC;SAC1B;QACD,yEAAyE;QACzE,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACtC,qCAAqC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,OAAO,EAAE;gBACT,OAAO,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7E;SACJ;aAAM;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;IACL,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAc,EAAE,OAAgB;QACtD,QAAQ,OAAO,EAAE;YACb,KAAK,mBAAO,CAAC,IAAI,CAAC;YAClB,KAAK,mBAAO,CAAC,QAAQ,CAAC;YACtB,KAAK,mBAAO,CAAC,IAAI,CAAC;YAClB,KAAK,mBAAO,CAAC,WAAW;gBACpB,OAAO,qCAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,mBAAO,CAAC,OAAO;gBAChB,OAAO,qCAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,mBAAO,CAAC,cAAc,CAAC;YAC5B,KAAK,mBAAO,CAAC,yBAAyB;gBAClC,OAAO,+CAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,mBAAO,CAAC,eAAe;gBACxB,OAAO,iDAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,mBAAO,CAAC,iBAAiB;gBAC1B,OAAO,qDAAyB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxD,KAAK,mBAAO,CAAC,SAAS;gBAClB,OAAO,qCAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,mBAAO,CAAC,UAAU;gBACnB,OAAO,2CAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,KAAK,mBAAO,CAAC,OAAO;gBAChB,OAAO,iCAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9C,KAAK,mBAAO,CAAC,uBAAuB;gBAChC,OAAO,iEAA+B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9D;gBACI,OAAO,SAAS,CAAC;SACxB;IACL,CAAC;IAEM,SAAS,CAAC,MAAc;;QAC3B,4GAA4G;QAC5G,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY;QACtC,sGAAsG;QACtG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;QACF,MAAM,UAAU,GAAG,0BAAc,CAAC,cAAc,CAAe,CAAC;QAEhE,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;QAC1D,QAAQ,UAAU,EAAE;YAChB,KAAK,sBAAU,CAAC,YAAY;gBACxB,kBAAkB;gBAClB,OAAO,uCAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,sBAAU,CAAC,iBAAiB;gBAC7B,MAAM,yBAAyB,GAAG,iDAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC7E,OAAO,yBAAyB,CAAC;YACrC,KAAK,sBAAU,CAAC,cAAc;gBAC1B,MAAM,sBAAsB,GAAG,2CAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACvE,OAAO,sBAAsB,CAAC;YAClC,KAAK,sBAAU,CAAC,eAAe;gBAC3B,oDAAoD;gBACpD,OAAO,6CAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACpD,KAAK,sBAAU,CAAC,YAAY;gBACxB,IAAI,kBAAkB,GAAG,uCAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,CAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,0CAAE,YAAY,MAAK,EAAE,EAAE;oBAC/C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;iBAClD;gBACD,OAAO,kBAAkB,CAAC;YAC9B,KAAK,sBAAU,CAAC,kBAAkB;gBAC9B,IAAI,QAAQ,GAAG,mDAAwB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,WAAW,0CAAE,MAAM,IAAG,CAAC,EAAE;oBACzC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACpD;gBACD,OAAO,QAAQ,CAAC;YACpB,KAAK,sBAAU,CAAC,wBAAwB;gBACpC,8DAA8D;gBAC9D,MAAM,8BAA8B,GAAG,+DAA8B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzF,OAAO,8BAA8B,CAAC;YAC1C;gBACI,OAAO,SAAS,CAAC;SACxB;IACL,CAAC;IAID;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,MAAsB;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACpD,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,MAAM;aACjB,CAAC,CAAC,CAAC,MAAM,CAAC;YAEX,IAAI,MAAM,YAAY,iDAAuB,IAAI,MAAM,YAAY,2CAAoB,EAAE;gBACrF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,IAAI,SAAsC,CAAC;gBAC3C,0DAA0D;gBAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,kBAAkB,EAAE;oBAChH,SAAS,GAAG,eAAe,CAAC;iBAC/B;qBAAM;oBACH,SAAS,GAAG,SAAS,CAAC;iBACzB;gBAED,MAAM,iBAAiB,GAAG,CAAC,sBAAU,CAAC,YAAY,EAAE,sBAAU,CAAC,KAAK,EAAE,sBAAU,CAAC,aAAa,EAAE,sBAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEhK,IAAI,MAAM,YAAY,iDAAuB,IAAI,iBAAiB,EAAE;oBAChE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC7C,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBAChC;qBAAM,IAAI,MAAM,YAAY,2CAAoB,IAAI,iBAAiB,EAAE;oBACpE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBAChC;aAEJ;iBAAM,IAAI,IAAA,yCAAoB,EAAC,MAAM,CAAC,EAAE;gBACrC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;aAChC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,QAAiD;QAC3E,IAAI,mBAAmB,CAAC,cAAc,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAEnC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAE3D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAEhC,IAAI,iBAAiB,GAAG,IAAI,CAAC;YAE7B,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE;gBACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC1B,OAAO,EAAE,oBAAoB,IAAI,CAAC,eAAe,gBAAgB;oBACjE,SAAS,EAAE,gCAAoB,CAAC,SAAS;iBAC5C,CAAC,CAAC;aACN;iBAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE;gBACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yDAAyD,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC1B,OAAO,EAAE,oBAAoB,IAAI,CAAC,eAAe,6JAA6J;oBAC9M,SAAS,EAAE,gCAAoB,CAAC,UAAU;iBAC7C,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC1B,OAAO,EAAE,oBAAoB,IAAI,CAAC,eAAe,gIAAgI;oBACjL,SAAS,EAAE,gCAAoB,CAAC,aAAa;iBAChD,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,iBAAiB,GAAG,KAAK,CAAC;aAC7B;YAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;YACnD,OAAO,iBAAiB,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAA0B;QAC9C,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;gBAC3B,aAAa,EAAE,KAAK;aACvB,CAAC,CAAC;YACH,WAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEnE,2CAA2C;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE/E,+FAA+F;YAC/F,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;oBACtB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;iBAC1B,EAAE,GAAG,EAAE;oBACJ,4DAA4D;oBAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;oBAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAE9B,IAAI,eAAe,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;wBAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACpC,IAAI,SAAS,GAAG,WAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAE5E,qDAAqD;wBACrD,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;wBACtC,IAAI,SAAS,CAAC,SAAS,EAAE;4BACrB,gCAAgC;4BAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;yBAC/C;6BAAM;4BACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;yBAC1D;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBACpC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBACrC,CAAC,CAAC,CAAC;oBAEH,kDAAkD;oBAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACnG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzB;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAGO,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK;QACpC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACpD;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;SAC7F;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK;;QACrC,IAAI,kBAAkB,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,kBAAkB,mCAAI,KAAM,CAAC;QACpE,IAAI,eAAe,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,eAAe,mCAAI,KAAM,CAAC;QAC9D,kFAAkF;QAClF,IAAI,SAAS,EAAE;YACX,kBAAkB,GAAG,CAAC,CAAC;YACvB,eAAe,GAAG,CAAC,CAAC;SACvB;QAED,gFAAgF;QAChF,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI;gBACA,uFAAuF;gBACvF,4GAA4G;gBAC5G,2DAA2D;gBAC3D,MAAM,OAAO,CAAC,IAAI,CAAC;oBACf,SAAS;wBACL,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;wBACvB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACjF,kFAAkF;oBAClF,WAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;iBACjC,CAAC,CAAC;aACN;oBAAS,GAAG;SAChB;QAED,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,SAAS,CAAC;SACnD,CAAC,CAAC;QACH,MAAA,IAAI,CAAC,OAAO,0CAAE,kBAAkB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAIO,KAAK,CAAC,oBAAoB,CAAC,OAAe;;QAC9C,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACvD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YAEtC,yCAAyC;YACzC,MAAM,OAAO,CAAC,IAAI,CAAC;gBACf,IAAI,CAAC,mBAAmB,CAAC,OAAO;gBAChC,WAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAE/G,2BAA2B;YAC3B,MAAA,IAAI,CAAC,aAAa,0CAAE,kBAAkB,EAAE,CAAC;YACzC,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;SAC1C;IACL,CAAC;IAID;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK;;QAC5D,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,oCAAoC;YACpC,MAAM,OAAO,CAAC,IAAI,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC3E,WAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACtB,CAAC,CAAC;YAEH,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;gBAChD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;;oBAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE;wBAC3B,OAAO,EAAE,CAAC;oBACd,CAAC,EAAE,GAAG,CAAC,CAAC;oBACR,oCAAoC;oBACpC,QAAQ,EAAE,CAAC;oBACX,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAC,OAAO,EAAE,QAAsB,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAErG,sBAAsB;YACtB,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,kBAAkB,kDAAI,CAAC;YACtC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,kDAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACrC;IACL,CAAC;;AA9rCL,kDA+rCC;AAlqCiB,kCAAc,GAAG,SAAS,CAAC,CAAC,wCAAwC;AAkuCtF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAA0D;;IACxF,OAAO,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,SAAS,IAAG,CAAC,CAAC;AACtF,CAAC;AAFD,8CAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAA0D;;IACzF,OAAO,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,SAAS,MAAK,CAAC,CAAC;AACzF,CAAC;AAFD,gDAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAA0D;;IACvF,OAAO,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,SAAS,MAAK,CAAC,CAAC;AACvF,CAAC;AAFD,4CAEC"}
1
+ {"version":3,"file":"DebugProtocolClient.js","sourceRoot":"","sources":["../../../src/debugProtocol/client/DebugProtocolClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Encapsulates the version-based capability checks for the BrightScript debug protocol.
3
+ * Used by `DebugProtocolClient` for the live session (version set during the handshake),
4
+ * and by `DebugProtocolAdapter` as a standalone fallback seeded from the device-info
5
+ * `brightscript-debugger-version` when no client has connected yet.
6
+ */
7
+ export declare class ProtocolCapabilities {
8
+ constructor(protocolVersion: string | undefined, osVersion?: string);
9
+ readonly protocolVersion: string;
10
+ /**
11
+ * Roku OS versions that introduced each debug protocol version, ordered newest-first so
12
+ * we can pick the highest protocol whose OS floor the device meets.
13
+ */
14
+ private static readonly osToProtocolVersions;
15
+ /**
16
+ * Some Roku firmware versions support the debug protocol but omit `brightscript-debugger-version`
17
+ * from device-info, so fall back to deriving the protocol version from the OS version when the
18
+ * caller didn't get one from the device.
19
+ */
20
+ private static resolveProtocolVersion;
21
+ /**
22
+ * Prior to protocol v3.1.0, the Roku device would regularly set the wrong thread as "active",
23
+ * so this flag lets us know if we should use our better-than-nothing workaround
24
+ */
25
+ get enableThreadHoppingWorkaround(): boolean;
26
+ /**
27
+ * Starting in protocol v3.1.0, component library breakpoints must be added in the format
28
+ * `lib:/<library_name>/<filepath>`, but prior they didn't require this.
29
+ */
30
+ get enableComponentLibrarySpecificBreakpoints(): boolean;
31
+ /**
32
+ * Starting in protocol v3.1.0, breakpoints can support conditional expressions.
33
+ */
34
+ get supportsConditionalBreakpoints(): boolean;
35
+ /**
36
+ * Starting in protocol v3.1.0, breakpoints can carry a hit count (ignoreCount).
37
+ */
38
+ get supportsHitConditionalBreakpoints(): boolean;
39
+ get supportsBreakpointRegistrationWhileRunning(): boolean;
40
+ get supportsBreakpointVerification(): boolean;
41
+ get supportsVirtualVariables(): boolean;
42
+ get supportsExceptionBreakpoints(): boolean;
43
+ /**
44
+ * Due to casing issues with the variables request on older protocols, we first try the
45
+ * request in the supplied case and retry in lower case on failure.
46
+ */
47
+ get enableVariablesLowerCaseRetry(): boolean;
48
+ /**
49
+ * The `execute` command was unreliable before protocol v3.0.0.
50
+ */
51
+ get supportsExecuteCommand(): boolean;
52
+ /**
53
+ * The device emits compile-error update events starting in protocol v3.1.0.
54
+ */
55
+ get supportsCompileErrorReporting(): boolean;
56
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProtocolCapabilities = void 0;
4
+ const semver = require("semver");
5
+ /**
6
+ * Encapsulates the version-based capability checks for the BrightScript debug protocol.
7
+ * Used by `DebugProtocolClient` for the live session (version set during the handshake),
8
+ * and by `DebugProtocolAdapter` as a standalone fallback seeded from the device-info
9
+ * `brightscript-debugger-version` when no client has connected yet.
10
+ */
11
+ class ProtocolCapabilities {
12
+ constructor(protocolVersion, osVersion) {
13
+ this.protocolVersion = ProtocolCapabilities.resolveProtocolVersion(protocolVersion, osVersion);
14
+ }
15
+ /**
16
+ * Some Roku firmware versions support the debug protocol but omit `brightscript-debugger-version`
17
+ * from device-info, so fall back to deriving the protocol version from the OS version when the
18
+ * caller didn't get one from the device.
19
+ */
20
+ static resolveProtocolVersion(protocolVersion, osVersion) {
21
+ if (semver.valid(protocolVersion)) {
22
+ return protocolVersion;
23
+ }
24
+ const coercedOs = osVersion ? semver.coerce(osVersion) : null;
25
+ if (!coercedOs) {
26
+ return protocolVersion;
27
+ }
28
+ for (const entry of ProtocolCapabilities.osToProtocolVersions) {
29
+ if (semver.gte(coercedOs, entry.os)) {
30
+ return entry.protocol;
31
+ }
32
+ }
33
+ return protocolVersion;
34
+ }
35
+ /**
36
+ * Prior to protocol v3.1.0, the Roku device would regularly set the wrong thread as "active",
37
+ * so this flag lets us know if we should use our better-than-nothing workaround
38
+ */
39
+ get enableThreadHoppingWorkaround() {
40
+ return semver.satisfies(this.protocolVersion, '<3.1.0');
41
+ }
42
+ /**
43
+ * Starting in protocol v3.1.0, component library breakpoints must be added in the format
44
+ * `lib:/<library_name>/<filepath>`, but prior they didn't require this.
45
+ */
46
+ get enableComponentLibrarySpecificBreakpoints() {
47
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
48
+ }
49
+ /**
50
+ * Starting in protocol v3.1.0, breakpoints can support conditional expressions.
51
+ */
52
+ get supportsConditionalBreakpoints() {
53
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
54
+ }
55
+ /**
56
+ * Starting in protocol v3.1.0, breakpoints can carry a hit count (ignoreCount).
57
+ */
58
+ get supportsHitConditionalBreakpoints() {
59
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
60
+ }
61
+ get supportsBreakpointRegistrationWhileRunning() {
62
+ return semver.satisfies(this.protocolVersion, '>=3.2.0');
63
+ }
64
+ get supportsBreakpointVerification() {
65
+ return semver.satisfies(this.protocolVersion, '>=3.2.0');
66
+ }
67
+ get supportsVirtualVariables() {
68
+ return semver.satisfies(this.protocolVersion, '>=3.3.0');
69
+ }
70
+ get supportsExceptionBreakpoints() {
71
+ return semver.satisfies(this.protocolVersion, '>=3.3.0');
72
+ }
73
+ /**
74
+ * Due to casing issues with the variables request on older protocols, we first try the
75
+ * request in the supplied case and retry in lower case on failure.
76
+ */
77
+ get enableVariablesLowerCaseRetry() {
78
+ return semver.satisfies(this.protocolVersion, '<3.1.0');
79
+ }
80
+ /**
81
+ * The `execute` command was unreliable before protocol v3.0.0.
82
+ */
83
+ get supportsExecuteCommand() {
84
+ return semver.satisfies(this.protocolVersion, '>=3.0.0');
85
+ }
86
+ /**
87
+ * The device emits compile-error update events starting in protocol v3.1.0.
88
+ */
89
+ get supportsCompileErrorReporting() {
90
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
91
+ }
92
+ }
93
+ exports.ProtocolCapabilities = ProtocolCapabilities;
94
+ /**
95
+ * Roku OS versions that introduced each debug protocol version, ordered newest-first so
96
+ * we can pick the highest protocol whose OS floor the device meets.
97
+ */
98
+ ProtocolCapabilities.osToProtocolVersions = [
99
+ { os: '14.1.0', protocol: '3.3.0' },
100
+ { os: '12.0.0', protocol: '3.2.0' },
101
+ { os: '11.5.0', protocol: '3.1.0' },
102
+ { os: '11.0.0', protocol: '3.0.0' },
103
+ { os: '9.3.0', protocol: '2.0.0' },
104
+ { os: '9.2.0', protocol: '1.0.1' }
105
+ ];
106
+ //# sourceMappingURL=ProtocolCapabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolCapabilities.js","sourceRoot":"","sources":["../../../src/debugProtocol/client/ProtocolCapabilities.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,7 @@ export declare class BrightScriptDebugSession extends LoggingDebugSession {
96
96
  */
97
97
  private normalizeLaunchConfig;
98
98
  launchRequest(response: DebugProtocol.LaunchResponse, config: LaunchConfiguration): Promise<void>;
99
+ protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, args: DebugProtocol.ConfigurationDoneArguments): Promise<void>;
99
100
  /**
100
101
  * Activate all required functionality for profiling
101
102
  */
@@ -117,6 +118,7 @@ export declare class BrightScriptDebugSession extends LoggingDebugSession {
117
118
  * Anytime a roku adapter emits diagnostics, this method is called to handle it.
118
119
  */
119
120
  private handleDiagnostics;
121
+ private publishTimeout;
120
122
  private publish;
121
123
  private pendingSendLogPromise;
122
124
  /**
@@ -147,6 +149,12 @@ export declare class BrightScriptDebugSession extends LoggingDebugSession {
147
149
  * Stage, insert breakpoints, and package the main project
148
150
  */
149
151
  prepareMainProject(): Promise<void>;
152
+ /**
153
+ * Inject breakpoint STOP statements into the staged main project and create the zip package.
154
+ * Runs after the DAP `InitializedEvent` so client-side `setBreakpoints` requests have landed
155
+ * before any STOPs are written to the staged .brs files (telnet path) and before the zip is sealed.
156
+ */
157
+ private packageMainProject;
150
158
  /**
151
159
  * Accepts custom events and requests from the extension
152
160
  * @param command name of the command to execute
@@ -155,9 +163,15 @@ export declare class BrightScriptDebugSession extends LoggingDebugSession {
155
163
  /**
156
164
  * Stores the path to the staging folder for each component library
157
165
  */
158
- protected prepareAndHostComponentLibraries(componentLibraries: ComponentLibraryConfiguration[], port: number): Promise<void>;
166
+ protected prepareComponentLibraries(componentLibraries: ComponentLibraryConfiguration[]): Promise<void>;
167
+ /**
168
+ * Inject breakpoint STOPs into the staged complibs, seal their zips, install installable ones,
169
+ * and start static file hosting. Runs in `configurationDoneRequest` (after `InitializedEvent`)
170
+ * so client-side `setBreakpoints` requests have landed before the staged .brs files are written
171
+ * and the zips are sealed.
172
+ */
173
+ protected packageAndHostComponentLibraries(componentLibraries: ComponentLibraryConfiguration[], port: number): Promise<void>;
159
174
  protected sourceRequest(response: DebugProtocol.SourceResponse, args: DebugProtocol.SourceArguments): void;
160
- protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, args: DebugProtocol.ConfigurationDoneArguments): void;
161
175
  /**
162
176
  * Called every time a breakpoint is created, modified, or deleted, for each file. This receives the entire list of breakpoints every time.
163
177
  */