@hydranium/core 1.0.0-next.330 → 1.0.0-next.331

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.
@@ -332,6 +332,15 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
332
332
  * build would undo by writing the file back.
333
333
  */
334
334
  assertLanguageClientHolds(uri: DocumentUri, version: number): void;
335
+ /**
336
+ * Whether the editor holds text older than the store's text at `version`,
337
+ * or text the store never held. The first is the case while the push of
338
+ * that text is in flight. An answer computed on the store's text at
339
+ * `version` then refers to text the editor does not have. `false` once the
340
+ * editor holds that text or a later one, and when it does not have `uri`
341
+ * open.
342
+ */
343
+ isLanguageClientBehind(uri: DocumentUri, version: TextVersion): boolean;
335
344
  /**
336
345
  * The text the store holds for `uri`: an open document's, or for a closed
337
346
  * one, the clean text its version sequence left off at, which for a deleted
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
@@ -759,6 +759,23 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
759
759
  throw new ConflictError(uri, asModelVersion(base), document.version, STALE_BASE_VERSION_SAVE);
760
760
  }
761
761
  }
762
+ /**
763
+ * Whether the editor holds text older than the store's text at `version`,
764
+ * or text the store never held. The first is the case while the push of
765
+ * that text is in flight. An answer computed on the store's text at
766
+ * `version` then refers to text the editor does not have. `false` once the
767
+ * editor holds that text or a later one, and when it does not have `uri`
768
+ * open.
769
+ */
770
+ isLanguageClientBehind(uri, version) {
771
+ const key = this.documentKey(uri);
772
+ const clientUri = this.toLanguageClientUri(uri);
773
+ if (!this.languageClientShadow.isOpen(key, clientUri)) {
774
+ return false;
775
+ }
776
+ const held = this.languageClientShadow.heldVersion(key, clientUri);
777
+ return held === undefined || held < version;
778
+ }
762
779
  /**
763
780
  * The text the store holds for `uri`: an open document's, or for a closed
764
781
  * one, the clean text its version sequence left off at, which for a deleted
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,2IAA2I;AAE3I,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,sDAAsD;AACtD,oEAAoE;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAY,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EASJ,OAAO,EAGP,uCAAuC,EAGvC,gBAAgB,EAChB,oBAAoB,EAKtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAoB,YAAY,EAAuC,MAAM,oCAAoC,CAAC;AACzH,OAAO,EAGJ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EAGvB,aAAa,EAEb,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAiC,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAC1H,OAAO,EAAE,2BAA2B,EAA+D,MAAM,6BAA6B,CAAC;AACvI,OAAO,EAAE,iBAAiB,EAAmB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAyB,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,+BAA+B,EAAiC,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAEJ,wBAAwB,EAG1B,MAAM,0BAA0B,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAyB,CAAC;AAmCzD;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAgDxC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,sBAA8D,SAAQ,uBAA0B;IAyB7F,QAAQ;IACC,OAAO;IAzB7B,oGAAoG;IACjF,gBAAgB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEtE;;;;;OAKG;IACgB,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE5D,+EAA+E;IAC5D,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,MAAM,CAAS;IACf,aAAa,CAAgC;IACtD,YAAY,CAAyB;IACrC,sBAAsB,CAAmC;IACzD,mBAAmB,CAAgC;IACnD,0BAA0B,CAAuC;IACxD,uBAAuB,GAAG,IAAI,OAAO,EAAyB,CAAC;IAC/D,0BAA0B,GAAG,IAAI,OAAO,EAA4B,CAAC;IAExF,YACa,QAA8B,EACrB,OAAO,GAAqC,EAAE;QAEjE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAK,YAAyD,CAAC;QAC1G,KAAK,CAAC,aAAa,CAAC,CAAC;wBAJX,QAAQ;uBACC,OAAO;QAI1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/F,CAAC;IAED,4EAA4E;IAC5E,iFAAiF;IAEjF,IAAc,UAAU;QACrB,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAc,oBAAoB;QAC/B,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,IAAc,iBAAiB;QAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAc,wBAAwB;QACnC,OAAO,CAAC,IAAI,CAAC,0BAA0B,KAAK,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACtF,CAAC;IAES,gBAAgB;QACvB,OAAO,IAAI,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAES,0BAA0B;QACjC,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAES,uBAAuB;QAC9B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAES,8BAA8B;QACrC,OAAO,IAAI,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC;IAC5H,CAAC;IAED,gFAAgF;IACtE,UAAU,CAAC,GAAiB,EAAE,QAAW,EAAE,MAAc;QAChE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACO,YAAY,CACnB,GAAiB,EACjB,QAAW,EACX,OAAyC,EACzC,MAAc;QAEd,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,YAAY,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACL,sDAAsD;YACtD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,2CAA2C;IAEpC,MAAM,CAAC,GAAW,EAAE,UAAkB,EAAE,OAAe,EAAE,OAAe;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,QAAW,EAAE,OAAyC,EAAE,OAAe;QAClF,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,IAAc,iBAAiB;QAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;IAED,IAAc,oBAAoB;QAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAED,IAAa,kBAAkB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAc,WAAW;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAa,SAAS;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAc,YAAY;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,IAAa,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAc,WAAW;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAa,SAAS;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,IAAc,YAAY;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,IAAc,mBAAmB;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IAEe,MAAM,CAAC,UAAsB;QAC1C,sEAAsE;QACtE,uDAAuD;QACvD,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,wBAAwB;QACvB,UAAwD,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,WAAW,CAAC;QAChH,MAAM,WAAW,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/C,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAgC,EAAE,EAAE;YACzE,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,uBAAuB,CAAC,CAAC,KAAkC,EAAE,EAAE;YACvE,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,sBAAsB,CAAC,CAAC,KAAiC,EAAE,EAAE;YACrE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,sBAAsB,CAAC,CAAC,KAAiC,EAAE,EAAE;YACrE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,+BAA+B,CAAC,CAAC,KAAiC,EAAE,KAAwB,EAAE,EAAE,CACxG,IAAI,CAAC,mCAAmC,CAAC,KAAK,EAAE,KAAK,CAAC,CACxD,CACH,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,qBAAqB,CAAC,CAAC,KAAgC,EAAE,EAAE;YACnE,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,WAAW,CAAC;IACtB,CAAC;IAEM,2BAA2B,CAAC,KAAkC,EAAE,QAAQ,GAAG,kBAAkB;QACjG,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACV,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,CAAC,GAAG,mCAAmC,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,oEAAoE;YACpE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,QAAQ,KAAK,kBAAkB,CAAC;YAC/C,MAAM,QAAQ,GACX,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAC9C,QAAQ,CAAC,OAAO,CAAC;YACpB,IAAI,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC1B,wFAAwF;gBACxF,oEAAoE;gBACpE,MAAM,MAAM,GACT,QAAQ,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,OAAO,uBAAuB,QAAQ,EAAE,CAAC;gBAChI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,oBAAoB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC1F,OAAO;YACV,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAE5D,qEAAqE;YACrE,+DAA+D;YAC/D,qEAAqE;YACrE,qDAAqD;YACrD,MAAM,OAAO,GAAgC,MAAM;gBAChD,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;gBACvF,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,mEAAmE;gBACnE,qEAAqE;gBACrE,8DAA8D;gBAC9D,oCAAoC;gBACpC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,gEAAgE,EAAE,CAAC,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;gBACzG,OAAO;YACV,CAAC;YAED,sEAAsE;YACtE,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7H,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjG,qEAAqE;gBACrE,iEAAiE;gBACjE,2DAA2D;gBAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,2DAA2D,EAAE,CAAC,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;oBACpG,OAAO;gBACV,CAAC;YACJ,CAAC;YACD,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CACR,QAAQ,CAAC,GAAG,EACZ,qBAAqB,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAC7H,OAAO,CACT,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,GAAgB,EAAE,IAAY,EAAE,QAAgB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,kCAAkC,CAAC,CAAC;QACtE,CAAC;QACD,qFAAqF;QACrF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GACxB,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3H,IAAI,CAAC,MAAM,CACR,QAAQ,CAAC,GAAG,EACZ,qBAAqB,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,EACnH,OAAO,CACT,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,0BAA0B,CAC9B,KAAiC,EACjC,QAAQ,GAAG,kBAAkB,EAC7B,KAAK,GAAoB,QAAQ;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnE,gFAAgF;YAChF,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;YACD,wEAAwE;YACxE,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,OAAO;YACV,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO;QACV,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,2BAA2B,cAAc,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACJ,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,YAAY,CAAC,GAAiB;QACrC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,IAAI,CAAC,wBAAwB,CAAC,OAAO,uBAAuB,CAAC,CAAC;QACvH,CAAC;IACJ,CAAC;IAED,kHAAkH;IACxG,sBAAsB,CAAC,GAAiB,EAAE,QAAgB;QACjE,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACJ,CAAC;IAED,yHAAyH;IAC/G,iBAAiB,CAAC,GAAiB;QAC1C,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,eAAe,CAAC,GAAiB;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,2BAA2B,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC;QACnG,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1C,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACO,eAAe,CAAC,QAA0B,EAAE,iBAAgD;QACnG,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACF,2EAA2E;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,sBAAsB,CAAC;YAC/D,OAAO;gBACJ,OAAO,KAAK,SAAS;oBAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBACxE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,oEAAoE;QACpE,kBAAkB;QAClB,MAAM,aAAa,GAAG,CAAC,KAAc,EAAQ,EAAE;YAC5C,IAAI,iBAAiB,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC;gBAC1H,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAClF,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACzB,CAAC,GAAY,EAAE,EAAE;YACd,oEAAoE;YACpE,uCAAuC;YACvC,IAAI,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,qFAAqF;YACrF,aAAa,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CACH,CAAC;IACL,CAAC;IAED,8DAA8D;IACpD,kBAAkB,CAAC,GAAiB;QAC3C,OAAO;YACJ,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC;YACtD,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG;YAC/C,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;SACnF,CAAC;IACL,CAAC;IAEM,0BAA0B,CAAC,KAAiC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;IACJ,CAAC;IAEM,mCAAmC,CACvC,KAAiC,EACjC,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACb,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,wBAAwB,CAAC,KAAgC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACV,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,+DAA+D;QAC/D,sEAAsE;QACtE,wDAAwD;QACxD,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAC1E,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC1E,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,4DAA4D,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO;QACV,CAAC;QACD,qEAAqE;QACrE,mDAAmD;QACnD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC;QACrF,IAAI,MAAM,KAAK,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,yEAAyE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACzH,OAAO;QACV,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,yBAAyB,CAAC,KAAgC,EAAE,QAAQ,GAAG,kBAAkB;QAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACJ,CAAC;IAED,gFAAgF;IACtE,YAAY,CAAC,QAAW,EAAE,QAAgB;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,0BAA0B,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,yBAAyB,CAAC,KAAgC,EAAE,QAAQ,GAAG,kBAAkB;QAC7F,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,sEAAsE;QACtE,2EAA2E;QAC3E,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,KAAK,kBAAkB,CAAC;QAC/C,gEAAgE;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,kEAAkE;QAClE,uEAAuE;QACvE,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/H,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtC,iEAAiE;YACjE,uEAAuE;YACvE,wBAAwB;YACxB,OAAO;QACV,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,wFAAwF;YACxF,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC;YACpC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;YACnH,IAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9B,uEAAuE;gBACvE,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC;YAC/G,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxC,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACL,8EAA8E;YAC9E,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,GAAgB,EAAE,QAAgB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QAChB,CAAC;QACD,2DAA2D;QAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACf,CAAC;IAES,eAAe,CAAC,GAAgB,EAAE,QAAgB,EAAE,OAAe,EAAE,eAAkC;QAC9G,IAAI,CAAC,GAAG,CACL,GAAG,EACH,kBAAkB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sCAAsC,OAAO,IAAI;YAC7F,gBAAgB,CAAC,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpG,CAAC;IACL,CAAC;IAED,cAAc,CAAC,GAAgB,EAAE,QAAgB;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,cAAc,EAAE,CAAC;YAClB,iDAAiD;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAChC,cAAc,CAAC,GAAG,EAClB,oCAAoC,cAAc,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAClG,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACtF,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACO,WAAW,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACO,mBAAmB,CAAC,GAAW;QACtC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,GAAgB,EAAE,OAAe,EAAE,MAAc;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACM,GAAG,CAAC,GAAgB;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,GAAgB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;IAClG,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,GAAgB;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,yBAAyB,CAAC,GAAgB,EAAE,OAAe;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClH,MAAM,IAAI,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,+BAA+B,OAAO,gBAAgB,IAAI,kBAAkB,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1H,0FAA0F;YAC1F,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACjG,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAgB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1G,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,QAAQ,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvF,CAAC;IAED;;;;;;;OAOG;IACO,uBAAuB,CAAC,GAAiB,EAAE,IAAY;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnG,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,GAAgB,EAAE,IAAY;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,qEAAqE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YAAY,CAAC,GAAgB,EAAE,UAAkB,EAAE,QAAgB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,wFAAwF,EAAE,OAAO,CAAC,CAAC;YACpH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,qEAAqE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC;QACrG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,OAAO,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACtH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAgB,EAAE,OAAgB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,2FAA2F;YAC3F,uFAAuF;YACvF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,sCAAsC,OAAO,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAgB;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,GAAgB,EAAE,MAAc;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,sBAAsB,CAAC,GAAgB;QACpC,uEAAuE;QACvE,oEAAoE;QACpE,2DAA2D;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACvD,CAAC;IAED,qEAAqE;IACrE,SAAS,CAAC,GAAgB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB,CAAC,GAAgB,EAAE,MAAc;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACxD,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,0FAA0F;IAC1F,IAAI,iBAAiB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,oBAAoB;QACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,IAAI,yBAAyB;QAC1B,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAgB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,IAAI,gBAAgB;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAgB,EAAE,IAAwB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,GAAgB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAgB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO;QACV,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,IAAiC,EAAE;YAClD,IAAI,CAAC;gBACF,OAAO,MAAM,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7F,OAAO,SAAS,CAAC;YACpB,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,QAAgB;QAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAgB,EAAE,KAAK,GAAoB,QAAQ;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO;QACV,CAAC;QACD,IAAI,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACJ,CAAC;gBAAS,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,4BAA4B;QAC/B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7D,mEAAmE;YACnE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,oBAAoB;QACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,GAAgB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACnC,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACM,MAAM,CAAC,GAAqB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;QACD,uEAAuE;QACvE,yDAAyD;QACzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACO,cAAc,CAAC,QAAgB;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,GAAgB,EAAE,IAAY;QAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,KAAK,CAAC,yBAAyB,CAC5B,GAAgB,EAChB,OAAe,EACf,OAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,UAAgD,CAAC;QACrD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,sEAAsE;YACtE,uEAAuE;YACvE,0BAA0B;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAS;YACZ,CAAC;YACD,IAAI,CAAC;gBACF,iEAAiE;gBACjE,8DAA8D;gBAC9D,kEAAkE;gBAClE,gEAAgE;gBAChE,oEAAoE;gBACpE,oEAAoE;gBACpE,mEAAmE;gBACnE,oEAAoE;gBACpE,kDAAkD;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;oBACjD,KAAK,EAAE,OAAO,EAAE,KAAK;oBACrB,IAAI,EAAE;wBACH,eAAe,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,uCAAuC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC5H;iBACH,CAAC,CAAC;gBACH,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;gBACD,UAAU,GAAG,MAAM,CAAC;YACvB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,MAAM,GAAG,CAAC;YACb,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC;IACrB,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAgB,EAAE,IAAY;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED;;;;OAIG;IACH,4BAA4B,CAAC,GAAgB;QAC1C,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;IAES,qBAAqB,CAAC,GAAgB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IAClB,CAAC;IAES,GAAG,CAAC,GAAgB,EAAE,OAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,mFAAmF;IACzE,MAAM,CAAC,GAAgB,EAAE,OAAe,EAAE,KAAK,GAAqB,MAAM;QACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,wDAAwD;IAC9C,gBAAgB,CAAC,GAAgB,EAAE,OAAe;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACH"}
1
+ {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,9 @@
8
8
  ********************************************************************************/
9
9
  import { type AstNode, type AstReflection, type LangiumDocument, type LeafCstNode, type ReferenceInfo } from '@hydranium/langium';
10
10
  import { AbstractSemanticTokenProvider, type SemanticTokenAcceptor } from '@hydranium/langium/lsp';
11
- import { type CancellationToken } from 'vscode-languageserver';
11
+ import { type CancellationToken, type SemanticTokens, type SemanticTokensDelta, type SemanticTokensDeltaParams, type SemanticTokensParams, type SemanticTokensRangeParams } from 'vscode-languageserver';
12
+ import { type HydraniumTextDocuments } from '../documents/hydranium-text-documents.js';
13
+ import { type ModelLedger } from '../documents/model-ledger.js';
12
14
  import { type NameProvider } from '../langium/naming/name-provider.js';
13
15
  import { type ServerLanguageServices } from '../langium/language-module.js';
14
16
  /**
@@ -94,6 +96,8 @@ export declare abstract class AbstractHydraniumSemanticTokenProvider extends Abs
94
96
  protected readonly nameProvider: NameProvider;
95
97
  protected readonly reflection: AstReflection;
96
98
  protected readonly options: HydraniumSemanticTokenProviderOptions;
99
+ protected readonly textDocuments: HydraniumTextDocuments;
100
+ protected readonly modelLedger: ModelLedger;
97
101
  /**
98
102
  * Modifier added to every declaration token. `declaration` is what themes
99
103
  * key on to render a definition differently from a use; override to
@@ -101,6 +105,25 @@ export declare abstract class AbstractHydraniumSemanticTokenProvider extends Abs
101
105
  */
102
106
  protected readonly declarationModifier: string | undefined;
103
107
  constructor(services: ServerLanguageServices, options?: HydraniumSemanticTokenProviderOptions);
108
+ semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken): Promise<SemanticTokens>;
109
+ semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken): Promise<SemanticTokens>;
110
+ semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken): Promise<SemanticTokens | SemanticTokensDelta>;
111
+ /**
112
+ * Refuse with `ContentModified` while the editor of `uri` holds text older
113
+ * than the parse the tokens are computed from, e.g. while the push of
114
+ * another client's write is still in flight. Tokens carry no text version,
115
+ * so the editor applies them to the text it holds, and Monaco rejects them
116
+ * as invalid or colours the wrong ranges. Once the push changes the
117
+ * editor's text, the editor requests the tokens again. Encoding the text
118
+ * version in `resultId` instead would require every client to compare it.
119
+ *
120
+ * An editor ahead of the parse, as after a keystroke that waits for a
121
+ * debounced build, still gets its tokens. It maps them over its own changes
122
+ * since the request, and LSP leaves a result on an older state to the
123
+ * client. The check runs before the token walk, so a refused delta request
124
+ * keeps the result named by `previousResultId` as the base of the next one.
125
+ */
126
+ protected assertEditorHoldsParse(document: LangiumDocument, uri: string): void;
104
127
  /**
105
128
  * The AST pass, then — when asked for — one CST pass over the keywords.
106
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-token-provider.d.ts","sourceRoot":"","sources":["../../src/lsp/semantic-token-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,aAAa,EAMlB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,aAAa,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,6BAA6B,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,KAAK,iBAAiB,EAA8C,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAC;AAU1G,6EAA6E;AAC7E,MAAM,WAAW,qCAAqC;IACnD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,8BAAsB,sCAAuC,SAAQ,6BAA6B;IAC/F,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,qCAAqC,CAAC;IAElE;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAsC;IAEhG,YAAY,QAAQ,EAAE,sBAAsB,EAAE,OAAO,GAAE,qCAA0C,EAKhG;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAyB,mBAAmB,CACzC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,qBAAqB,EAC/B,WAAW,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkCf;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAgB/E;IAED,UAAmB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAI9G;IAED,wFAAwF;IACxF,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAUnF;IAED,kFAAkF;IAClF,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAQlF;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAE7E,0FAA0F;IAC1F,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAEzE;IAED,4GAA4G;IAC5G,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,GAAG,SAAS,CAE7E;IAED,uFAAuF;IACvF,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3D;CACH"}
1
+ {"version":3,"file":"semantic-token-provider.d.ts","sourceRoot":"","sources":["../../src/lsp/semantic-token-provider.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,9 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  import { AstUtils, CstUtils, GrammarAST, interruptAndCheck, isLeafCstNode } from '@hydranium/langium';
10
+ import { STALE_VERSION, UNRECORDED_VERSION } from '@hydranium/protocol';
10
11
  import { AbstractSemanticTokenProvider } from '@hydranium/langium/lsp';
11
- import { SemanticTokenModifiers, SemanticTokenTypes } from 'vscode-languageserver';
12
+ import { LSPErrorCodes, ResponseError, SemanticTokenModifiers, SemanticTokenTypes } from 'vscode-languageserver';
12
13
  /** Normalise both {@link SemanticTokenKind} forms to the acceptor's shape. */
13
14
  function toAcceptorFields(kind, fallbackModifier) {
14
15
  if (typeof kind === 'string') {
@@ -56,6 +57,8 @@ export class AbstractHydraniumSemanticTokenProvider extends AbstractSemanticToke
56
57
  nameProvider;
57
58
  reflection;
58
59
  options;
60
+ textDocuments;
61
+ modelLedger;
59
62
  /**
60
63
  * Modifier added to every declaration token. `declaration` is what themes
61
64
  * key on to render a definition differently from a use; override to
@@ -67,6 +70,45 @@ export class AbstractHydraniumSemanticTokenProvider extends AbstractSemanticToke
67
70
  this.nameProvider = services.references.NameProvider;
68
71
  this.reflection = services.shared.AstReflection;
69
72
  this.options = options;
73
+ this.textDocuments = services.shared.workspace.TextDocuments;
74
+ this.modelLedger = services.shared.workspace.ModelLedger;
75
+ }
76
+ async semanticHighlight(document, params, cancelToken) {
77
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
78
+ return super.semanticHighlight(document, params, cancelToken);
79
+ }
80
+ async semanticHighlightRange(document, params, cancelToken) {
81
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
82
+ return super.semanticHighlightRange(document, params, cancelToken);
83
+ }
84
+ async semanticHighlightDelta(document, params, cancelToken) {
85
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
86
+ return super.semanticHighlightDelta(document, params, cancelToken);
87
+ }
88
+ /**
89
+ * Refuse with `ContentModified` while the editor of `uri` holds text older
90
+ * than the parse the tokens are computed from, e.g. while the push of
91
+ * another client's write is still in flight. Tokens carry no text version,
92
+ * so the editor applies them to the text it holds, and Monaco rejects them
93
+ * as invalid or colours the wrong ranges. Once the push changes the
94
+ * editor's text, the editor requests the tokens again. Encoding the text
95
+ * version in `resultId` instead would require every client to compare it.
96
+ *
97
+ * An editor ahead of the parse, as after a keystroke that waits for a
98
+ * debounced build, still gets its tokens. It maps them over its own changes
99
+ * since the request, and LSP leaves a result on an older state to the
100
+ * client. The check runs before the token walk, so a refused delta request
101
+ * keeps the result named by `previousResultId` as the base of the next one.
102
+ */
103
+ assertEditorHoldsParse(document, uri) {
104
+ const parsedFrom = this.modelLedger.versionOf(document.parseResult.value);
105
+ // Neither is a version of the store's text, so there is nothing to compare.
106
+ if (parsedFrom === UNRECORDED_VERSION || parsedFrom === STALE_VERSION) {
107
+ return;
108
+ }
109
+ if (this.textDocuments.isLanguageClientBehind(uri, parsedFrom)) {
110
+ throw new ResponseError(LSPErrorCodes.ContentModified, 'The editor does not have the parsed text yet');
111
+ }
70
112
  }
71
113
  /**
72
114
  * The AST pass, then — when asked for — one CST pass over the keywords.
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-token-provider.js","sourceRoot":"","sources":["../../src/lsp/semantic-token-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-token-provider.js","sourceRoot":"","sources":["../../src/lsp/semantic-token-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAGJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EAIf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAA8B,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAEJ,aAAa,EACb,aAAa,EACb,sBAAsB,EAMtB,kBAAkB,EACpB,MAAM,uBAAuB,CAAC;AAc/B,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,IAAuB,EAAE,gBAAyB;IACzE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IACvG,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AACxI,CAAC;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAgB,sCAAuC,SAAQ,6BAA6B;IAC5E,YAAY,CAAe;IAC3B,UAAU,CAAgB;IAC1B,OAAO,CAAwC;IAC/C,aAAa,CAAyB;IACtC,WAAW,CAAc;IAE5C;;;;OAIG;IACgB,mBAAmB,GAAuB,sBAAsB,CAAC,WAAW,CAAC;IAEhG,YAAY,QAAgC,EAAE,OAAO,GAA0C,EAAE;QAC9F,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;IAC5D,CAAC;IAEQ,KAAK,CAAC,iBAAiB,CAC7B,QAAyB,EACzB,MAA4B,EAC5B,WAA+B;QAE/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAEQ,KAAK,CAAC,sBAAsB,CAClC,QAAyB,EACzB,MAAiC,EACjC,WAA+B;QAE/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAEQ,KAAK,CAAC,sBAAsB,CAClC,QAAyB,EACzB,MAAiC,EACjC,WAA+B;QAE/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACO,sBAAsB,CAAC,QAAyB,EAAE,GAAW;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1E,4EAA4E;QAC5E,IAAI,UAAU,KAAK,kBAAkB,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YACrE,OAAO;QACV,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;QAC1G,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACgB,KAAK,CAAC,mBAAmB,CACzC,QAAyB,EACzB,QAA+B,EAC/B,WAA8B;QAE9B,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO;QACV,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO;QACV,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACrC,sEAAsE;YACtE,6DAA6D;YAC7D,IAAI,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvD,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,qEAAqE;YACrE,gEAAgE;YAChE,qEAAqE;YACrE,EAAE;YACF,sEAAsE;YACtE,qEAAqE;YACrE,mEAAmE;YACnE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,gEAAgE;YAChE,IAAI,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACO,aAAa,CAAC,GAAgB,EAAE,QAA+B;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,kEAAkE;YAClE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YACtD,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChB,SAAS;YACZ,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;YAC1C,QAAQ,CAAC;gBACN,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE;gBACnF,IAAI,EAAE,kBAAkB,CAAC,OAAO;aAClC,CAAC,CAAC;QACN,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CAAC,IAAa,EAAE,QAA+B;QAC/E,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;IACpB,CAAC;IAED,wFAAwF;IAC9E,oBAAoB,CAAC,IAAa,EAAE,QAA+B;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACV,CAAC;QACD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,kFAAkF;IACxE,mBAAmB,CAAC,IAAa,EAAE,QAA+B;QACzE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAS;YACZ,CAAC;YACD,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACJ,CAAC;IAiBD,0FAA0F;IAChF,kBAAkB,CAAC,IAAa;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,4GAA4G;IAClG,gBAAgB,CAAC,IAAmB;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,uFAAuF;IAC7E,eAAe,CAAC,IAAa;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/core",
3
- "version": "1.0.0-next.330",
3
+ "version": "1.0.0-next.331",
4
4
  "description": "Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, @hydranium/glsp-server).",
5
5
  "keywords": [
6
6
  "ast",
@@ -87,8 +87,8 @@
87
87
  "diff": "^5.2.0"
88
88
  },
89
89
  "devDependencies": {
90
- "@hydranium/langium": "1.0.0-next.330",
91
- "@hydranium/protocol": "1.0.0-next.330",
90
+ "@hydranium/langium": "1.0.0-next.331",
91
+ "@hydranium/protocol": "1.0.0-next.331",
92
92
  "@playwright/test": "^1.55.0",
93
93
  "@types/diff": "^5.2.0",
94
94
  "fake-indexeddb": "^6.2.5",
@@ -101,8 +101,8 @@
101
101
  "vscode-languageserver-types": "^3.17.5"
102
102
  },
103
103
  "peerDependencies": {
104
- "@hydranium/langium": "1.0.0-next.330",
105
- "@hydranium/protocol": "1.0.0-next.330",
104
+ "@hydranium/langium": "1.0.0-next.331",
105
+ "@hydranium/protocol": "1.0.0-next.331",
106
106
  "@playwright/test": "^1.40.0",
107
107
  "vscode-jsonrpc": "^9.0.0",
108
108
  "vscode-languageserver": "~10.0.1",
@@ -986,6 +986,24 @@ export class HydraniumTextDocuments<T extends TextDocument = TextDocument> exten
986
986
  }
987
987
  }
988
988
 
989
+ /**
990
+ * Whether the editor holds text older than the store's text at `version`,
991
+ * or text the store never held. The first is the case while the push of
992
+ * that text is in flight. An answer computed on the store's text at
993
+ * `version` then refers to text the editor does not have. `false` once the
994
+ * editor holds that text or a later one, and when it does not have `uri`
995
+ * open.
996
+ */
997
+ isLanguageClientBehind(uri: DocumentUri, version: TextVersion): boolean {
998
+ const key = this.documentKey(uri);
999
+ const clientUri = this.toLanguageClientUri(uri);
1000
+ if (!this.languageClientShadow.isOpen(key, clientUri)) {
1001
+ return false;
1002
+ }
1003
+ const held = this.languageClientShadow.heldVersion(key, clientUri);
1004
+ return held === undefined || held < version;
1005
+ }
1006
+
989
1007
  /**
990
1008
  * The text the store holds for `uri`: an open document's, or for a closed
991
1009
  * one, the clean text its version sequence left off at, which for a deleted
@@ -19,8 +19,22 @@ import {
19
19
  type LeafCstNode,
20
20
  type ReferenceInfo
21
21
  } from '@hydranium/langium';
22
+ import { STALE_VERSION, UNRECORDED_VERSION } from '@hydranium/protocol';
22
23
  import { AbstractSemanticTokenProvider, type SemanticTokenAcceptor } from '@hydranium/langium/lsp';
23
- import { type CancellationToken, SemanticTokenModifiers, SemanticTokenTypes } from 'vscode-languageserver';
24
+ import {
25
+ type CancellationToken,
26
+ LSPErrorCodes,
27
+ ResponseError,
28
+ SemanticTokenModifiers,
29
+ type SemanticTokens,
30
+ type SemanticTokensDelta,
31
+ type SemanticTokensDeltaParams,
32
+ type SemanticTokensParams,
33
+ type SemanticTokensRangeParams,
34
+ SemanticTokenTypes
35
+ } from 'vscode-languageserver';
36
+ import { type HydraniumTextDocuments } from '../documents/hydranium-text-documents.js';
37
+ import { type ModelLedger } from '../documents/model-ledger.js';
24
38
  import { type NameProvider } from '../langium/naming/name-provider.js';
25
39
  import { type ServerLanguageServices } from '../langium/language-module.js';
26
40
 
@@ -115,6 +129,8 @@ export abstract class AbstractHydraniumSemanticTokenProvider extends AbstractSem
115
129
  protected readonly nameProvider: NameProvider;
116
130
  protected readonly reflection: AstReflection;
117
131
  protected readonly options: HydraniumSemanticTokenProviderOptions;
132
+ protected readonly textDocuments: HydraniumTextDocuments;
133
+ protected readonly modelLedger: ModelLedger;
118
134
 
119
135
  /**
120
136
  * Modifier added to every declaration token. `declaration` is what themes
@@ -128,6 +144,61 @@ export abstract class AbstractHydraniumSemanticTokenProvider extends AbstractSem
128
144
  this.nameProvider = services.references.NameProvider;
129
145
  this.reflection = services.shared.AstReflection;
130
146
  this.options = options;
147
+ this.textDocuments = services.shared.workspace.TextDocuments;
148
+ this.modelLedger = services.shared.workspace.ModelLedger;
149
+ }
150
+
151
+ override async semanticHighlight(
152
+ document: LangiumDocument,
153
+ params: SemanticTokensParams,
154
+ cancelToken?: CancellationToken
155
+ ): Promise<SemanticTokens> {
156
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
157
+ return super.semanticHighlight(document, params, cancelToken);
158
+ }
159
+
160
+ override async semanticHighlightRange(
161
+ document: LangiumDocument,
162
+ params: SemanticTokensRangeParams,
163
+ cancelToken?: CancellationToken
164
+ ): Promise<SemanticTokens> {
165
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
166
+ return super.semanticHighlightRange(document, params, cancelToken);
167
+ }
168
+
169
+ override async semanticHighlightDelta(
170
+ document: LangiumDocument,
171
+ params: SemanticTokensDeltaParams,
172
+ cancelToken?: CancellationToken
173
+ ): Promise<SemanticTokens | SemanticTokensDelta> {
174
+ this.assertEditorHoldsParse(document, params.textDocument.uri);
175
+ return super.semanticHighlightDelta(document, params, cancelToken);
176
+ }
177
+
178
+ /**
179
+ * Refuse with `ContentModified` while the editor of `uri` holds text older
180
+ * than the parse the tokens are computed from, e.g. while the push of
181
+ * another client's write is still in flight. Tokens carry no text version,
182
+ * so the editor applies them to the text it holds, and Monaco rejects them
183
+ * as invalid or colours the wrong ranges. Once the push changes the
184
+ * editor's text, the editor requests the tokens again. Encoding the text
185
+ * version in `resultId` instead would require every client to compare it.
186
+ *
187
+ * An editor ahead of the parse, as after a keystroke that waits for a
188
+ * debounced build, still gets its tokens. It maps them over its own changes
189
+ * since the request, and LSP leaves a result on an older state to the
190
+ * client. The check runs before the token walk, so a refused delta request
191
+ * keeps the result named by `previousResultId` as the base of the next one.
192
+ */
193
+ protected assertEditorHoldsParse(document: LangiumDocument, uri: string): void {
194
+ const parsedFrom = this.modelLedger.versionOf(document.parseResult.value);
195
+ // Neither is a version of the store's text, so there is nothing to compare.
196
+ if (parsedFrom === UNRECORDED_VERSION || parsedFrom === STALE_VERSION) {
197
+ return;
198
+ }
199
+ if (this.textDocuments.isLanguageClientBehind(uri, parsedFrom)) {
200
+ throw new ResponseError(LSPErrorCodes.ContentModified, 'The editor does not have the parsed text yet');
201
+ }
131
202
  }
132
203
 
133
204
  /**