@faubulous/mentor-rdf-serializers 1.9.2 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,6 +99,58 @@ export declare class SparqlFormatter extends TokenFormatterBase<SparqlFormatterC
99
99
  private handleSparqlSemicolon;
100
100
  private handleSparqlComma;
101
101
  private handleSparqlOpenParen;
102
+ /**
103
+ * Indicates whether a `()` token is the empty argument list of a function call, by a
104
+ * built-in keyword, e.g. `NOW()`, or by an IRI, e.g. `ex:fn()`.
105
+ * @param lastNonWsToken The token before the `()` token.
106
+ * @param tokens The tokens of the query.
107
+ * @param index The index of the `()` token.
108
+ */
109
+ private _isEmptyFunctionArguments;
110
+ /**
111
+ * Indicates whether a `(` or `()` token opens the arguments of a function that is called
112
+ * by its IRI, e.g. `ex:fn(?x)` or `ex:fn()`. In a triple pattern, an IRI followed by `(`
113
+ * is followed by a collection instead, e.g. `?s ex:p (1 2)`, so the call is told apart
114
+ * by the position of the IRI.
115
+ * @param tokens The tokens of the query.
116
+ * @param index The index of the `(` or `()` token.
117
+ * @returns `true` if the token opens the arguments of a function call.
118
+ */
119
+ private _isIriFunctionCall;
120
+ /**
121
+ * Indicates whether a token is part of an expression rather than of a triple pattern.
122
+ * @param tokens The tokens of the query.
123
+ * @param index The index of the token.
124
+ * @returns `true` if the token is in an expression, e.g. in `FILTER`, `BIND`, a function
125
+ * argument, a `SELECT` expression or a solution modifier.
126
+ */
127
+ private _isInExpression;
128
+ /**
129
+ * Indicates whether a `(` opens an expression, i.e. function arguments or a bracketted
130
+ * expression, rather than a collection.
131
+ * @param tokens The tokens of the query.
132
+ * @param index The index of the `(` token.
133
+ */
134
+ private _isExpressionParen;
135
+ /**
136
+ * Returns the index of the innermost `(`, `{` or `[` that encloses a token.
137
+ * @param tokens The tokens of the query.
138
+ * @param index The index of the token.
139
+ * @returns The index of the opening token, or `-1` if the token is not enclosed.
140
+ */
141
+ private _getEnclosingOpenerIndex;
142
+ /**
143
+ * Returns the index of the token before a token, skipping whitespace and comments.
144
+ * @param tokens The tokens of the query.
145
+ * @param index The index of the token.
146
+ * @returns The index of the previous token, or `-1` if there is none.
147
+ */
148
+ private _getPreviousTokenIndex;
149
+ /**
150
+ * Indicates whether a token is an IRI, i.e. an IRI reference or a prefixed name.
151
+ * @param token The token to check.
152
+ */
153
+ private _isIriToken;
102
154
  private handleSparqlCloseParen;
103
155
  private handleGroupComment;
104
156
  private handleInlineComment;
@@ -1 +1 @@
1
- {"version":3,"file":"sparql-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoC,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,sBAAuB,SAAQ,oBAAoB;IACzD,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5D,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4FAA4F;IAC5F,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uGAAuG;IACvG,uBAAuB,EAAE,OAAO,CAAC;IACjC,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eACT,SAAQ,kBAAkB,CAAC,sBAAsB,EAAE,sBAAsB,CACzE,YAAW,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAqB;IAMlC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,mBAAmB;IAkBpF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,mBAAmB;IAUlH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IAmBxF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;IAkBvF,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;IAezF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAyG5B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,qBAAqB;IAkE7B,OAAO,CAAC,sBAAsB;IA4E9B,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,oBAAoB;IAmD5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,wBAAwB;IAsDhC,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,iBAAiB;CAgI5B"}
1
+ {"version":3,"file":"sparql-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"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"}
@@ -164,7 +164,8 @@ export class SparqlFormatter extends TokenFormatterBase {
164
164
  continue;
165
165
  }
166
166
  if (token.tokenType === RdfToken.LPARENT || token.tokenType === RdfToken.LBRACKET) {
167
- const lastWasFunction = lastTokenType && this.isFunctionKeyword({ tokenType: lastTokenType });
167
+ const lastWasFunction = (lastTokenType && this.isFunctionKeyword({ tokenType: lastTokenType })) ||
168
+ (token.tokenType === RdfToken.LPARENT && this._isIriFunctionCall(tokens, i));
168
169
  length += (needsSpace && !lastWasFunction ? 1 : 0) + token.image.length;
169
170
  needsSpace = false;
170
171
  lastTokenType = token.tokenType;
@@ -187,7 +188,8 @@ export class SparqlFormatter extends TokenFormatterBase {
187
188
  }
188
189
  const tokenLength = this.formatTokenValue(token, opts).length;
189
190
  const isOpenParen = lastTokenType === RdfToken.LPARENT || lastTokenType === RdfToken.LBRACKET;
190
- length += (needsSpace && !isOpenParen ? 1 : 0) + tokenLength;
191
+ const isEmptyArguments = token.tokenType === RdfToken.NIL && this._isEmptyFunctionArguments(lastNonWsToken, tokens, i);
192
+ length += (needsSpace && !isOpenParen && !isEmptyArguments ? 1 : 0) + tokenLength;
191
193
  needsSpace = true;
192
194
  lastTokenType = token.tokenType;
193
195
  lastNonWsToken = token;
@@ -385,12 +387,12 @@ export class SparqlFormatter extends TokenFormatterBase {
385
387
  const isLBracket = token.tokenType === RdfToken.LBRACKET;
386
388
  const le = ctx.opts.lineEnd;
387
389
  const ind = ctx.opts.indent;
388
- if (isLParen) {
389
- const lastWasFunction = ctx.lastNonWsToken && this.isFunctionKeyword(ctx.lastNonWsToken);
390
- if (lastWasFunction)
391
- ctx.functionCallDepth++;
390
+ // A function is called by a built-in keyword, e.g. `STR(`, or by its IRI, e.g. `ex:fn(`.
391
+ const lastWasFunction = (ctx.lastNonWsToken && this.isFunctionKeyword(ctx.lastNonWsToken)) ||
392
+ (isLParen && this._isIriFunctionCall(tokens, index));
393
+ if (isLParen && lastWasFunction) {
394
+ ctx.functionCallDepth++;
392
395
  }
393
- const lastWasFunction = ctx.lastNonWsToken && this.isFunctionKeyword(ctx.lastNonWsToken);
394
396
  // Normally newlines are suppressed inside function-call argument lists so
395
397
  // expressions stay on one line. A newline that originates from the source
396
398
  // layout (e.g. an operand placed on its own line after `||` inside a
@@ -436,6 +438,118 @@ export class SparqlFormatter extends TokenFormatterBase {
436
438
  }
437
439
  }
438
440
  }
441
+ /**
442
+ * Indicates whether a `()` token is the empty argument list of a function call, by a
443
+ * built-in keyword, e.g. `NOW()`, or by an IRI, e.g. `ex:fn()`.
444
+ * @param lastNonWsToken The token before the `()` token.
445
+ * @param tokens The tokens of the query.
446
+ * @param index The index of the `()` token.
447
+ */
448
+ _isEmptyFunctionArguments(lastNonWsToken, tokens, index) {
449
+ return (!!lastNonWsToken && this.isFunctionKeyword(lastNonWsToken)) || this._isIriFunctionCall(tokens, index);
450
+ }
451
+ /**
452
+ * Indicates whether a `(` or `()` token opens the arguments of a function that is called
453
+ * by its IRI, e.g. `ex:fn(?x)` or `ex:fn()`. In a triple pattern, an IRI followed by `(`
454
+ * is followed by a collection instead, e.g. `?s ex:p (1 2)`, so the call is told apart
455
+ * by the position of the IRI.
456
+ * @param tokens The tokens of the query.
457
+ * @param index The index of the `(` or `()` token.
458
+ * @returns `true` if the token opens the arguments of a function call.
459
+ */
460
+ _isIriFunctionCall(tokens, index) {
461
+ const iriIndex = this._getPreviousTokenIndex(tokens, index);
462
+ return iriIndex >= 0 && this._isIriToken(tokens[iriIndex]) && this._isInExpression(tokens, iriIndex);
463
+ }
464
+ /**
465
+ * Indicates whether a token is part of an expression rather than of a triple pattern.
466
+ * @param tokens The tokens of the query.
467
+ * @param index The index of the token.
468
+ * @returns `true` if the token is in an expression, e.g. in `FILTER`, `BIND`, a function
469
+ * argument, a `SELECT` expression or a solution modifier.
470
+ */
471
+ _isInExpression(tokens, index) {
472
+ const previousIndex = this._getPreviousTokenIndex(tokens, index);
473
+ const previous = previousIndex >= 0 ? tokens[previousIndex] : undefined;
474
+ // A function called right after a keyword, e.g. `FILTER ex:fn(?x)` or `ORDER BY ex:fn(?x)`.
475
+ if (previous && (this.isFunctionKeyword(previous) || previous.tokenType === RdfToken.BY || previous.tokenType === RdfToken.HAVING)) {
476
+ return true;
477
+ }
478
+ const openerIndex = this._getEnclosingOpenerIndex(tokens, index);
479
+ // Outside of any group graph pattern, i.e. in the SELECT clause or the solution modifiers.
480
+ if (openerIndex < 0) {
481
+ return true;
482
+ }
483
+ // Inside braces or square brackets, the token is part of a triple pattern.
484
+ if (tokens[openerIndex].tokenType !== RdfToken.LPARENT) {
485
+ return false;
486
+ }
487
+ return this._isExpressionParen(tokens, openerIndex);
488
+ }
489
+ /**
490
+ * Indicates whether a `(` opens an expression, i.e. function arguments or a bracketted
491
+ * expression, rather than a collection.
492
+ * @param tokens The tokens of the query.
493
+ * @param index The index of the `(` token.
494
+ */
495
+ _isExpressionParen(tokens, index) {
496
+ const previousIndex = this._getPreviousTokenIndex(tokens, index);
497
+ const previous = previousIndex >= 0 ? tokens[previousIndex] : undefined;
498
+ if (previous && this.isFunctionKeyword(previous)) {
499
+ return true;
500
+ }
501
+ if (previous && this._isIriToken(previous)) {
502
+ return this._isInExpression(tokens, previousIndex);
503
+ }
504
+ // A bracketted expression nested in an expression, or a collection nested in a collection or triple pattern.
505
+ return this._isInExpression(tokens, index);
506
+ }
507
+ /**
508
+ * Returns the index of the innermost `(`, `{` or `[` that encloses a token.
509
+ * @param tokens The tokens of the query.
510
+ * @param index The index of the token.
511
+ * @returns The index of the opening token, or `-1` if the token is not enclosed.
512
+ */
513
+ _getEnclosingOpenerIndex(tokens, index) {
514
+ let depth = 0;
515
+ for (let i = index - 1; i >= 0; i--) {
516
+ const tokenType = tokens[i].tokenType;
517
+ if (tokenType === RdfToken.RPARENT || tokenType === RdfToken.RCURLY || tokenType === RdfToken.RBRACKET) {
518
+ depth++;
519
+ }
520
+ else if (tokenType === RdfToken.LPARENT || tokenType === RdfToken.LCURLY || tokenType === RdfToken.LBRACKET) {
521
+ if (depth === 0) {
522
+ return i;
523
+ }
524
+ depth--;
525
+ }
526
+ }
527
+ return -1;
528
+ }
529
+ /**
530
+ * Returns the index of the token before a token, skipping whitespace and comments.
531
+ * @param tokens The tokens of the query.
532
+ * @param index The index of the token.
533
+ * @returns The index of the previous token, or `-1` if there is none.
534
+ */
535
+ _getPreviousTokenIndex(tokens, index) {
536
+ for (let i = index - 1; i >= 0; i--) {
537
+ const tokenType = tokens[i].tokenType;
538
+ if (tokenType !== RdfToken.WS && tokenType !== RdfToken.COMMENT) {
539
+ return i;
540
+ }
541
+ }
542
+ return -1;
543
+ }
544
+ /**
545
+ * Indicates whether a token is an IRI, i.e. an IRI reference or a prefixed name.
546
+ * @param token The token to check.
547
+ */
548
+ _isIriToken(token) {
549
+ const tokenType = token.tokenType;
550
+ return tokenType === RdfToken.IRIREF || tokenType === RdfToken.IRIREF_ABS ||
551
+ tokenType === RdfToken.PNAME_LN || tokenType === RdfToken.PNAME_NS;
552
+ }
439
553
  handleSparqlCloseParen(ctx, token, prevWasComment = false) {
440
554
  const le = ctx.opts.lineEnd;
441
555
  const ind = ctx.opts.indent;
@@ -903,6 +1017,12 @@ export class SparqlFormatter extends TokenFormatterBase {
903
1017
  }
904
1018
  // Triple position tracking
905
1019
  this.handleTriplePosition(ctx, token, tokens, i, prevWasComment);
1020
+ // Keep empty function arguments attached to the function, e.g. `NOW()` or
1021
+ // `ex:fn()`; the lexer reads `()` as a single NIL token.
1022
+ if (token.tokenType === RdfToken.NIL && this._isEmptyFunctionArguments(ctx.lastNonWsToken, tokens, i)) {
1023
+ ctx.needsSpace = false;
1024
+ ctx.needsNewline = false;
1025
+ }
906
1026
  // Keep postfix property-path operators (`*`, `+`, `?`) attached to
907
1027
  // their operand, e.g. `rdfs:subClassOf+`, never `rdfs:subClassOf +`.
908
1028
  if (this.isPostfixPathOperator(ctx, token)) {
@@ -1 +1 @@
1
- {"version":3,"file":"sparql-formatter.js","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAA8C,MAAM,yBAAyB,CAAC;AAIzG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAmE7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,eACT,SAAQ,kBAAkE;IAElE,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,2EAA2E;IAC3E,aAAa;IACb,2EAA2E;IAE3E,cAAc,CAAC,KAAa,EAAE,OAAgC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjH,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,MAAgB,EAAE,OAAyD;QACxF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,2EAA2E;IAC3E,8CAA8C;IAC9C,2EAA2E;IAEjE,UAAU,CAAC,OAAgC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO;YACH,GAAG,IAAI;YACP,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;YACrD,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,KAAK;YACtD,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;YAC7C,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;YAC7C,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI;YACjD,sBAAsB,EAAE,OAAO,EAAE,sBAAsB,IAAI,KAAK;YAChE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY;YACxD,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,eAAe;YACjE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY;YACxD,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,eAAe;YACjE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,IAAI,CAAC,kBAAkB;YAC1E,yBAAyB,EAAE,OAAO,EAAE,yBAAyB,IAAI,IAAI,CAAC,yBAAyB;SAClG,CAAC;IACN,CAAC;IAES,aAAa,CAAC,IAAsC;QAC1D,OAAO;YACH,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI;YACJ,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,iBAAiB,EAAE,CAAC;YACpB,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,KAAK;YACzB,oBAAoB,EAAE,CAAC;YACvB,uBAAuB,EAAE,KAAK;YAC9B,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,CAAC;SACjB,CAAC;IACN,CAAC;IAES,gBAAgB,CAAC,KAAa,EAAE,IAAsC;QAC5E,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,iBAAiB;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,iBAAiB;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,2EAA2E;IAC3E,2BAA2B;IAC3B,2EAA2E;IAE3E;;;OAGG;IACK,oBAAoB,CAAC,MAAgB,EAAE,UAAkB,EAAE,IAAsC;QACrG,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,aAAa,GAAqB,IAAI,CAAC;QAC3C,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE;gBAAE,SAAS;YAE9C,qEAAqE;YACrE,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC,CAAC;YAEpD,4DAA4D;YAC5D,IAAI,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1F,IAAI,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO;oBAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACZ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;oBACpE,IAAI,YAAY,GAAG,CAAC;wBAAE,OAAO,CAAC,CAAC,CAAC;oBAChC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;oBACtD,UAAU,GAAG,IAAI,CAAC;oBAClB,IAAI,WAAW,GAAG,CAAC,CAAC;oBACpB,CAAC,EAAE,CAAC;oBACJ,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBAC1C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM;4BAAE,WAAW,EAAE,CAAC;6BACtD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM;4BAAE,WAAW,EAAE,CAAC;wBAChE,CAAC,EAAE,CAAC;oBACR,CAAC;oBACD,CAAC,EAAE,CAAC;oBACJ,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAChC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC3B,SAAS;gBACb,CAAC;gBACD,KAAK,EAAE,CAAC;gBACR,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnC,UAAU,GAAG,KAAK,CAAC;gBACnB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnC,OAAO,MAAM,CAAC;gBAClB,CAAC;gBACD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnC,UAAU,GAAG,IAAI,CAAC;gBAClB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC;gBAClB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAChF,MAAM,eAAe,GAAG,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAY,CAAC,CAAC;gBACxG,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxE,UAAU,GAAG,KAAK,CAAC;gBACnB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC;gBAClB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC;gBAClB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;YAC9D,MAAM,WAAW,GAAG,aAAa,KAAK,QAAQ,CAAC,OAAO,IAAI,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC;YAC9F,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAC7D,UAAU,GAAG,IAAI,CAAC;YAClB,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;YAChC,cAAc,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAEO,mBAAmB,CAAC,GAA2B,EAAE,MAAgB,EAAE,UAAkB;QACzF,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAClC,OAAO,GAAG,CAAC,iBAAiB,GAAG,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IACxE,CAAC;IAED,2EAA2E;IAC3E,iCAAiC;IACjC,2EAA2E;IAEnE,eAAe,CAAC,GAA2B,EAAE,MAAgB,EAAE,UAAkB;QACrF,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,uEAAuE;QACvE,kEAAkE;QAClE,qEAAqE;QACrE,gEAAgE;QAChE,+CAA+C;QAC/C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,cAAc;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3C,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACxC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrB,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;QACvB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAEvB,8DAA8D;QAC9D,gDAAgD;QAChD,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACtC,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC9B,CAAC;IAEO,gBAAgB,CAAC,GAA2B,EAAE,cAAc,GAAG,KAAK;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,yDAAyD;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC;QACrD,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC1B,iEAAiE;QACjE,iEAAiE;QACjE,uDAAuD;QACvD,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;QACD,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;QAC5B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACvB,GAAG,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QAElC,2DAA2D;QAC3D,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1D,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,GAA2B,EAAE,SAA6B;QACjF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACf,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACxC,MAAM,YAAY,GAAG,SAAS,IAAI,CAC9B,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CACnF,CAAC;YACF,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC7B,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5C,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrB,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;IAChC,CAAC;IAEO,qBAAqB,CAAC,GAA2B;QACrD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3B,0EAA0E;QAC1E,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;YACvB,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,YAAY;YAChE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,iBAAiB,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAE/E,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,aAAa,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC9F,qEAAqE;YACrE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,eAAe,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/E,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/E,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,GAA2B,EAAE,SAA6B;QAChF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3B,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;YAC5C,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;YAC/D,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1E,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;gBACxC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YAC1B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,GAA2B,EAAE,KAAa,EAAE,MAAgB,EAAE,KAAa;QACrG,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC;QACtD,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzF,IAAI,eAAe;gBAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEzF,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,eAAe;YACzD,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACvE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QACD,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QACzB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QAEvB,0EAA0E;QAC1E,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,eAAe,GAAG,KAAK,CAAC;YAE5B,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC1E,eAAe,GAAG,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,iBAAiB,GAAG,WAAW,IAAI,YAAY,CAAC;YAC9F,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,eAAe,EAAE,CAAC;gBAClB,kEAAkE;gBAClE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE9D,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC;YAEpE,8DAA8D;YAC9D,IAAI,WAAW,EAAE,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,GAA2B,EAAE,KAAa,EAAE,cAAc,GAAG,KAAK;QAC7F,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,wEAAwE;QACxE,gEAAgE;QAChE,0BAA0B;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1F,IAAI,SAAS,EAAE,UAAU,IAAI,GAAG,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC5B,CAAC;QAED,kDAAkD;QAClD,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,oEAAoE;gBACpE,uDAAuD;gBACvD,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;oBACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;oBACzB,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAClB,mDAAmD;oBACnD,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAClD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;wBACpB,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3E,CAAC;qBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACxB,qDAAqD;oBACrD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC3B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;gBACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,OAAO;YACX,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,SAAS,EAAE,WAAW,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnB,yDAAyD;gBACzD,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC3B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;gBACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,OAAO;YACX,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,2EAA2E;IAC3E,mBAAmB;IACnB,2EAA2E;IAEnE,kBAAkB,CAAC,GAA2B,EAAE,OAAe;QACnE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBACrD,GAAG,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS;gBACxC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC/D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBACd,IAAI,CAAC,GAAG,CAAC,cAAc;wBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oBAChC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3E,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAC1B,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC;IACjC,CAAC;IAEO,mBAAmB,CAAC,GAA2B,EAAE,KAAa;QAClE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,2EAA2E;QAC3E,sFAAsF;QACtF,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACtB,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACxC,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,gDAAgD;QAChD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc;YACrC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS;YACzE,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC;QAEnD,IAAI,cAAc,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1C,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,MAAM;gBACV,CAAC;YACL,CAAC;YACD,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,cAAc;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC3B,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,2EAA2E;IAC3E,iBAAiB;IACjB,2EAA2E;IAEnE,iBAAiB,CAAC,GAA2B,EAAE,KAAa;QAChE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClG,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK;YAAE,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAChE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG;YAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5D,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI;YAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;QAChE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM;YAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IACvE,CAAC;IAEO,sBAAsB,CAAC,GAA2B,EAAE,KAAa;QACrE,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC;QAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC,CAAC;QAEzC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe;YACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,GAAG,CAAC,QAAQ;YACb,CAAC,GAAG,CAAC,eAAe;YACpB,CAAC,GAAG,CAAC,cAAc;YACnB,CAAC,GAAG,CAAC,kBAAkB;YACvB,CAAC,eAAe;YAChB,CAAC,eAAe;YAChB,CAAC,UAAU,EAAE,CAAC;YACd,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe;YACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBAC7E,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC/F,0CAA0C;gBAC1C,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3E,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,GAA2B,EAAE,KAAa,EAAE,MAAgB,EAAE,KAAa,EAAE,cAAc,GAAG,KAAK;QAC5H,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YAC/F,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;gBAC3B,2DAA2D;gBAC3D,iEAAiE;gBACjE,0DAA0D;gBAC1D,kEAAkE;gBAClE,8DAA8D;gBAC9D,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM;oBACpB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpF,CAAC,EAAE,CAAC;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3C,OAAO;gBACX,CAAC;gBAED,IAAI,GAAG,CAAC,IAAI,CAAC,yBAAyB,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;wBACtB,IAAI,cAAc,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;4BACjD,6DAA6D;4BAC7D,8DAA8D;4BAC9D,6DAA6D;4BAC7D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACpE,CAAC;6BAAM,IAAI,CAAC,cAAc,EAAE,CAAC;4BACzB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC9B,CAAC;oBACL,CAAC;oBAED,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5B,CAAC;gBAED,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3F,CAAC;YAED,GAAG,CAAC,cAAc,EAAE,CAAC;YAErB,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC;gBAAE,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,qBAAqB;IACrB,2EAA2E;IAE3E;;;;;;;;;;OAUG;IACK,qBAAqB,CAAC,GAA2B,EAAE,KAAa;QACpE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI;YACjC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YACtC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC,WAAW,KAAK,OAAO,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEO,kBAAkB,CAAC,GAA2B,EAAE,KAAa;QACjE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,mFAAmF;QACnF,sEAAsE;QACtE,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtG,OAAO;QACX,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc;gBAC1D,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAEvE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,GAA2B,EAAE,KAAa;QACvE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM;YACzD,GAAG,CAAC,cAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC;QACtD,MAAM,cAAc,GAAG,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACjD,0EAA0E;QAC1E,8EAA8E;QAC9E,MAAM,kBAAkB,GAAG,iBAAiB,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEvF,yEAAyE;QACzE,qDAAqD;QACrD,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;YACnF,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5D,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnE,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC;gBACzD,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAEzF,IAAI,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;YAED,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACrB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC9B,CAAC;IAEO,gBAAgB,CAAC,GAA2B,EAAE,KAAa;QAC/D,IAAI,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC;YAE7D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC1B,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;gBACxB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,CAAC;iBAAM,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC9C,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;gBACxB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,GAA2B,EAAE,KAAa;QACpE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAEvE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE7B,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;QACvB,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,iBAAiB,CAAC,MAAgB,EAAE,OAAyC;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhC,kBAAkB;YAClB,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBACtB,SAAS;YACb,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAElC,yBAAyB;YACzB,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAErC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBACtB,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAE3B,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEpD,iBAAiB;YACjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAExC,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;YAE1C,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAE/B,uEAAuE;YACvE,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,uEAAuE;YACvE,+CAA+C;YAC/C,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5B,+DAA+D;gBAC/D,qEAAqE;gBACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM;oBAChD,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO;oBACpC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC5E,IAAI,CAAC,GAAG,CAAC,cAAc;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC1B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;gBACzB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;gBACvB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;YAC9B,CAAC;YAED,8DAA8D;YAC9D,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC3C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACxC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAChC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACvC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAChF,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAChF,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBACxD,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,6BAA6B;YAC7B,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;gBAAC,SAAS;YAChE,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;YAEjE,mEAAmE;YACnE,qEAAqE;YACrE,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;gBACvB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YAC7B,CAAC;YAED,gBAAgB;YAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEpC,UAAU;YACV,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE1C,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAE7B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACtB,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACjD,CAAC;CACJ"}
1
+ {"version":3,"file":"sparql-formatter.js","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './quad-sorting-strategy';
8
8
  export * from './quad-sorter';
9
9
  export * from './serialization-result';
10
10
  export * from './serialization-options';
11
+ export * from './term-serializer';
11
12
  export * from './quad-context-serializer';
12
13
  export * from './token-formatter-base';
13
14
  export * from './token-formatter.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './quad-sorting-strategy';
8
8
  export * from './quad-sorter';
9
9
  export * from './serialization-result';
10
10
  export * from './serialization-options';
11
+ export * from './term-serializer';
11
12
  export * from './quad-context-serializer';
12
13
  export * from './token-formatter-base';
13
14
  export * from './token-formatter.interface';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
@@ -4,6 +4,7 @@ import { Rdf12Quad, Rdf12Term, TripleTerm } from './utilities/types';
4
4
  import { IQuadSerializer } from './quad-serializer.interface';
5
5
  import { SerializationResult } from './serialization-result';
6
6
  import { SerializationOptions } from './serialization-options';
7
+ import { TermSerializerSettings } from './term-serializer';
7
8
  /**
8
9
  * Abstract base class for RDF serializers. Provides common functionality
9
10
  * for serializing terms and literals.
@@ -25,6 +26,15 @@ export declare abstract class QuadSerializerBase implements IQuadSerializer {
25
26
  * Whether this serializer supports RDF 1.2 features (triple terms, reifiers, annotations).
26
27
  */
27
28
  protected supportsRdf12: boolean;
29
+ /**
30
+ * The settings the terms of the current serialization run are written with, resolved from
31
+ * the capabilities of this serializer and the options the hooks are called with.
32
+ */
33
+ private _termSettings?;
34
+ /**
35
+ * The options the term settings were resolved from.
36
+ */
37
+ private _termOptions?;
28
38
  /**
29
39
  * Serializes a single quad to a string.
30
40
  */
@@ -44,11 +54,19 @@ export declare abstract class QuadSerializerBase implements IQuadSerializer {
44
54
  /**
45
55
  * Serializes a blank node.
46
56
  */
47
- protected serializeBlankNode(node: BlankNode, _options: Required<SerializationOptions>): string;
57
+ protected serializeBlankNode(node: BlankNode, options: Required<SerializationOptions>): string;
48
58
  /**
49
59
  * Serializes a literal value.
50
60
  */
51
61
  protected serializeLiteral(literal: Literal, options: Required<SerializationOptions>): string;
62
+ /**
63
+ * Gets the settings the terms are written with for a set of options. Some serializers merge
64
+ * the options anew for every quad, so a run is told apart by the options object the hooks
65
+ * are called with; resolving the settings again is cheap.
66
+ * @param options The merged options of the run.
67
+ * @returns The term settings.
68
+ */
69
+ protected termSettingsFor(options: Required<SerializationOptions>): TermSerializerSettings;
52
70
  /**
53
71
  * Serializes a SPARQL variable.
54
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"quad-serializer-base.d.ts","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAmB,MAAM,yBAAyB,CAAC;AAMhF;;;GAGG;AACH,8BAAsB,kBAAmB,YAAW,eAAe;IAC/D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAS;IAEpD;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAEzC;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAEtF;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAE7F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAM9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAmB9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI/F;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAuD7F;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAIjG;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAYtG;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAmBhG;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;CAGvF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAS3F"}
1
+ {"version":3,"file":"quad-serializer-base.d.ts","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAmB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAkB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;GAGG;AACH,8BAAsB,kBAAmB,YAAW,eAAe;IAC/D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAS;IAEpD;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAEzC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAC,CAAyB;IAE/C;;OAEG;IACH,OAAO,CAAC,YAAY,CAAC,CAAiC;IAEtD;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAEtF;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAE7F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAM9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI9F;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI7F;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,sBAAsB;IAY1F;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAIjG;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAYtG;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAmBhG;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;CAGvF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAS3F"}
@@ -1,9 +1,5 @@
1
- import { RDF, XSD } from './ontologies';
2
1
  import { DEFAULT_OPTIONS } from './serialization-options';
3
- import { escapeLocalName, escapeIri, escapeString } from "./utilities/escaping";
4
- import { isInteger, isDecimal, isDouble, needsLongString } from "./utilities/literals";
5
- import { normalizeBlankNodeId } from './utilities/blank-nodes';
6
- import { findPrefix } from "./utilities/prefixes";
2
+ import { TermSerializer } from './term-serializer';
7
3
  /**
8
4
  * Abstract base class for RDF serializers. Provides common functionality
9
5
  * for serializing terms and literals.
@@ -21,6 +17,15 @@ export class QuadSerializerBase {
21
17
  * Whether this serializer supports RDF 1.2 features (triple terms, reifiers, annotations).
22
18
  */
23
19
  supportsRdf12 = false;
20
+ /**
21
+ * The settings the terms of the current serialization run are written with, resolved from
22
+ * the capabilities of this serializer and the options the hooks are called with.
23
+ */
24
+ _termSettings;
25
+ /**
26
+ * The options the term settings were resolved from.
27
+ */
28
+ _termOptions;
24
29
  /**
25
30
  * Serializes quads with formatting, returning detailed result.
26
31
  */
@@ -33,70 +38,33 @@ export class QuadSerializerBase {
33
38
  * Serializes a named node (IRI).
34
39
  */
35
40
  serializeNamedNode(node, options) {
36
- // Check for rdf:type shorthand
37
- if (this.supportsRdfTypeShorthand && options.useRdfTypeShorthand && node.value === RDF.type) {
38
- return 'a';
39
- }
40
- if (this.supportsPrefixes && Object.keys(options.prefixes).length > 0) {
41
- const prefixMatch = findPrefix(node.value, options.prefixes);
42
- if (prefixMatch) {
43
- const escapedLocalName = escapeLocalName(prefixMatch.localName);
44
- return `${prefixMatch.prefix}:${escapedLocalName}`;
45
- }
46
- }
47
- return `<${escapeIri(node.value)}>`;
41
+ return TermSerializer.serializeNamedNode(node, this.termSettingsFor(options), true);
48
42
  }
49
43
  /**
50
44
  * Serializes a blank node.
51
45
  */
52
- serializeBlankNode(node, _options) {
53
- return `_:${normalizeBlankNodeId(node.value)}`;
46
+ serializeBlankNode(node, options) {
47
+ return TermSerializer.serializeBlankNode(node, this.termSettingsFor(options));
54
48
  }
55
49
  /**
56
50
  * Serializes a literal value.
57
51
  */
58
52
  serializeLiteral(literal, options) {
59
- const value = literal.value;
60
- const datatype = literal.datatype?.value;
61
- const language = literal.language;
62
- if (language) {
63
- const escapedValue = escapeString(value);
64
- return `"${escapedValue}"@${language}`;
65
- }
66
- if (this.supportsPrefixes && datatype === XSD.boolean) {
67
- if (value === 'true' || value === '1') {
68
- return 'true';
69
- }
70
- if (value === 'false' || value === '0') {
71
- return 'false';
72
- }
73
- }
74
- if (this.supportsPrefixes) {
75
- if (datatype === XSD.integer && isInteger(value)) {
76
- return value;
77
- }
78
- if (datatype === XSD.decimal && isDecimal(value)) {
79
- return value;
80
- }
81
- if (datatype === XSD.double && isDouble(value)) {
82
- return value;
83
- }
84
- }
85
- // Check if we need long string quoting
86
- const useLongString = this.supportsPrefixes && needsLongString(value);
87
- const quote = useLongString ? '"""' : '"';
88
- const escapedValue = escapeString(value, useLongString);
89
- // xsd:string is the default, no need to serialize it
90
- if (!datatype || datatype === XSD.string) {
91
- return `${quote}${escapedValue}${quote}`;
53
+ return TermSerializer.serializeLiteral(literal, this.termSettingsFor(options));
54
+ }
55
+ /**
56
+ * Gets the settings the terms are written with for a set of options. Some serializers merge
57
+ * the options anew for every quad, so a run is told apart by the options object the hooks
58
+ * are called with; resolving the settings again is cheap.
59
+ * @param options The merged options of the run.
60
+ * @returns The term settings.
61
+ */
62
+ termSettingsFor(options) {
63
+ if (options !== this._termOptions || !this._termSettings) {
64
+ this._termSettings = TermSerializer.settingsOf({ supportsPrefixes: this.supportsPrefixes, supportsRdfTypeShorthand: this.supportsRdfTypeShorthand }, { prefixes: options.prefixes, useRdfTypeShorthand: options.useRdfTypeShorthand });
65
+ this._termOptions = options;
92
66
  }
93
- // Serialize with datatype
94
- const datatypeStr = this.serializeNamedNode({
95
- termType: 'NamedNode',
96
- value: datatype,
97
- equals: () => false
98
- }, options);
99
- return `${quote}${escapedValue}${quote}^^${datatypeStr}`;
67
+ return this._termSettings;
100
68
  }
101
69
  /**
102
70
  * Serializes a SPARQL variable.
@@ -1 +1 @@
1
- {"version":3,"file":"quad-serializer-base.js","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quad-serializer-base.js","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ import { RdfSyntax } from '@faubulous/mentor-rdf-parsers';
2
+ import { BlankNode, Literal, NamedNode, Term } from '@rdfjs/types';
3
+ /**
4
+ * What a syntax allows a term serializer to abbreviate.
5
+ */
6
+ export interface TermSerializerCapabilities {
7
+ /**
8
+ * Whether IRIs may be written as prefixed names and numbers, booleans and multi-line
9
+ * strings in their bare or long forms.
10
+ */
11
+ supportsPrefixes: boolean;
12
+ /**
13
+ * Whether `rdf:type` may be written as `a` in predicate position.
14
+ */
15
+ supportsRdfTypeShorthand: boolean;
16
+ }
17
+ /**
18
+ * Options of a term serializer.
19
+ */
20
+ export interface TermSerializerOptions {
21
+ /**
22
+ * Prefix mappings for compact IRI serialization, prefix name to namespace IRI.
23
+ */
24
+ prefixes?: Record<string, string>;
25
+ /**
26
+ * Whether to write `rdf:type` as `a` in predicate position. Default: true.
27
+ */
28
+ useRdfTypeShorthand?: boolean;
29
+ /**
30
+ * The labels to write for blank nodes, by identifier, such as the labels a document already
31
+ * uses. A blank node without one is written as `_:` with its normalized identifier.
32
+ */
33
+ blankNodeLabels?: Record<string, string>;
34
+ }
35
+ /**
36
+ * Everything the serialization of a term depends on: the capabilities of the syntax and the
37
+ * options of the run, resolved to plain values.
38
+ */
39
+ export interface TermSerializerSettings {
40
+ /**
41
+ * Whether IRIs may be written as prefixed names and literals in their bare forms.
42
+ */
43
+ supportsPrefixes: boolean;
44
+ /**
45
+ * Whether `rdf:type` may be written as `a` in predicate position.
46
+ */
47
+ supportsRdfTypeShorthand: boolean;
48
+ /**
49
+ * Prefix name to namespace IRI.
50
+ */
51
+ prefixes: Record<string, string>;
52
+ /**
53
+ * Whether to write `rdf:type` as `a` in predicate position.
54
+ */
55
+ useRdfTypeShorthand: boolean;
56
+ /**
57
+ * The labels to write for blank nodes, by identifier, if any.
58
+ */
59
+ blankNodeLabels?: Record<string, string>;
60
+ }
61
+ /**
62
+ * Serializes single RDF terms the way a document of a syntax writes them: prefixed names where
63
+ * a prefix is declared, `a` for `rdf:type` in predicate position, bare numbers and booleans, and
64
+ * long strings for multi-line text where the syntax allows it. The quad serializers build on the
65
+ * static methods, which take the settings of a run; the instance methods serve code that writes
66
+ * terms into a document, such as an editor.
67
+ */
68
+ export declare class TermSerializer {
69
+ private readonly _capabilities;
70
+ private _settings;
71
+ /**
72
+ * Create a term serializer.
73
+ * @param capabilities What the target syntax allows.
74
+ * @param options The serialization options.
75
+ */
76
+ constructor(capabilities: TermSerializerCapabilities, options?: TermSerializerOptions);
77
+ /**
78
+ * Create a term serializer for a syntax.
79
+ * @param syntax The syntax the terms are written in.
80
+ * @param options The serialization options.
81
+ * @returns A term serializer with the capabilities of the syntax.
82
+ */
83
+ static forSyntax(syntax: RdfSyntax, options?: TermSerializerOptions): TermSerializer;
84
+ /**
85
+ * Resolve capabilities and options to the settings of a run.
86
+ * @param capabilities What the target syntax allows.
87
+ * @param options The serialization options.
88
+ * @returns The settings.
89
+ */
90
+ static settingsOf(capabilities: TermSerializerCapabilities, options?: TermSerializerOptions): TermSerializerSettings;
91
+ /**
92
+ * Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
93
+ * @param node The named node.
94
+ * @param settings The settings of the run.
95
+ * @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
96
+ * @returns The serialized node.
97
+ */
98
+ static serializeNamedNode(node: NamedNode, settings: TermSerializerSettings, allowTypeShorthand?: boolean): string;
99
+ /**
100
+ * Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
101
+ * @param node The blank node.
102
+ * @param settings The settings of the run.
103
+ * @returns The serialized node.
104
+ */
105
+ static serializeBlankNode(node: BlankNode, settings: TermSerializerSettings): string;
106
+ /**
107
+ * Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
108
+ * datatype, quoted with its language tag or datatype otherwise.
109
+ * @param literal The literal.
110
+ * @param settings The settings of the run.
111
+ * @returns The serialized literal.
112
+ */
113
+ static serializeLiteral(literal: Literal, settings: TermSerializerSettings): string;
114
+ /**
115
+ * Write a number or boolean without quotes when the lexical form is valid for the datatype.
116
+ * @param value The lexical value.
117
+ * @param datatype The datatype IRI, if any.
118
+ * @returns The bare form, or `undefined` if the literal has to be quoted.
119
+ */
120
+ private static _serializeBareLiteral;
121
+ /**
122
+ * Change the options the terms are written with, keeping the capabilities of the syntax.
123
+ * @param options The serialization options.
124
+ * @returns This serializer.
125
+ */
126
+ configure(options: TermSerializerOptions): this;
127
+ /**
128
+ * Whether the syntax allows prefixed names and bare literals.
129
+ */
130
+ get abbreviates(): boolean;
131
+ /**
132
+ * Serialize a term in subject position.
133
+ * @param term The subject term.
134
+ * @returns The serialized term.
135
+ * @throws An error if the term cannot be a subject.
136
+ */
137
+ serializeSubject(term: Term): string;
138
+ /**
139
+ * Serialize a term in predicate position, where `rdf:type` may be written as `a`.
140
+ * @param term The predicate term.
141
+ * @returns The serialized term.
142
+ */
143
+ serializePredicate(term: NamedNode): string;
144
+ /**
145
+ * Serialize a term in object position.
146
+ * @param term The object term.
147
+ * @returns The serialized term.
148
+ * @throws An error if the term type cannot be written.
149
+ */
150
+ serializeObject(term: Term): string;
151
+ /**
152
+ * Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
153
+ * @param node The named node.
154
+ * @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
155
+ * @returns The serialized node.
156
+ */
157
+ serializeNamedNode(node: NamedNode, allowTypeShorthand?: boolean): string;
158
+ /**
159
+ * Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
160
+ * @param node The blank node.
161
+ * @returns The serialized node.
162
+ */
163
+ serializeBlankNode(node: BlankNode): string;
164
+ /**
165
+ * Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
166
+ * datatype, quoted with its language tag or datatype otherwise.
167
+ * @param literal The literal.
168
+ * @returns The serialized literal.
169
+ */
170
+ serializeLiteral(literal: Literal): string;
171
+ }
172
+ //# sourceMappingURL=term-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term-serializer.d.ts","sourceRoot":"","sources":["../src/term-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOnE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAE3D,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,YAAY,EAAE,0BAA0B,EAAE,OAAO,GAAE,qBAA0B;IAKzF;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc;IAMpF;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,0BAA0B,EAAE,OAAO,GAAE,qBAA0B,GAAG,sBAAsB;IAUxH;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,GAAE,OAAe,GAAG,MAAM;IAgBzH;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,GAAG,MAAM;IAIpF;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,GAAG,MAAM;IA4BnF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAM/C;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQpC;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAanC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,GAAE,OAAe,GAAG,MAAM;IAIhF;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CAG7C"}
@@ -0,0 +1,208 @@
1
+ import { RdfSyntax } from '@faubulous/mentor-rdf-parsers';
2
+ import { RDF, XSD } from './ontologies';
3
+ import { normalizeBlankNodeId } from './utilities/blank-nodes';
4
+ import { escapeIri, escapeLocalName, escapeString } from './utilities/escaping';
5
+ import { isDecimal, isDouble, isInteger, needsLongString } from './utilities/literals';
6
+ import { findPrefix } from './utilities/prefixes';
7
+ /**
8
+ * Serializes single RDF terms the way a document of a syntax writes them: prefixed names where
9
+ * a prefix is declared, `a` for `rdf:type` in predicate position, bare numbers and booleans, and
10
+ * long strings for multi-line text where the syntax allows it. The quad serializers build on the
11
+ * static methods, which take the settings of a run; the instance methods serve code that writes
12
+ * terms into a document, such as an editor.
13
+ */
14
+ export class TermSerializer {
15
+ _capabilities;
16
+ _settings;
17
+ /**
18
+ * Create a term serializer.
19
+ * @param capabilities What the target syntax allows.
20
+ * @param options The serialization options.
21
+ */
22
+ constructor(capabilities, options = {}) {
23
+ this._capabilities = capabilities;
24
+ this._settings = TermSerializer.settingsOf(capabilities, options);
25
+ }
26
+ /**
27
+ * Create a term serializer for a syntax.
28
+ * @param syntax The syntax the terms are written in.
29
+ * @param options The serialization options.
30
+ * @returns A term serializer with the capabilities of the syntax.
31
+ */
32
+ static forSyntax(syntax, options) {
33
+ const abbreviates = syntax === RdfSyntax.Turtle || syntax === RdfSyntax.TriG || syntax === RdfSyntax.N3;
34
+ return new TermSerializer({ supportsPrefixes: abbreviates, supportsRdfTypeShorthand: abbreviates }, options);
35
+ }
36
+ /**
37
+ * Resolve capabilities and options to the settings of a run.
38
+ * @param capabilities What the target syntax allows.
39
+ * @param options The serialization options.
40
+ * @returns The settings.
41
+ */
42
+ static settingsOf(capabilities, options = {}) {
43
+ return {
44
+ supportsPrefixes: capabilities.supportsPrefixes,
45
+ supportsRdfTypeShorthand: capabilities.supportsRdfTypeShorthand,
46
+ prefixes: options.prefixes ?? {},
47
+ useRdfTypeShorthand: options.useRdfTypeShorthand ?? true,
48
+ blankNodeLabels: options.blankNodeLabels
49
+ };
50
+ }
51
+ /**
52
+ * Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
53
+ * @param node The named node.
54
+ * @param settings The settings of the run.
55
+ * @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
56
+ * @returns The serialized node.
57
+ */
58
+ static serializeNamedNode(node, settings, allowTypeShorthand = false) {
59
+ if (allowTypeShorthand && settings.supportsRdfTypeShorthand && settings.useRdfTypeShorthand && node.value === RDF.type) {
60
+ return 'a';
61
+ }
62
+ if (settings.supportsPrefixes) {
63
+ const match = findPrefix(node.value, settings.prefixes);
64
+ if (match) {
65
+ return `${match.prefix}:${escapeLocalName(match.localName)}`;
66
+ }
67
+ }
68
+ return `<${escapeIri(node.value)}>`;
69
+ }
70
+ /**
71
+ * Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
72
+ * @param node The blank node.
73
+ * @param settings The settings of the run.
74
+ * @returns The serialized node.
75
+ */
76
+ static serializeBlankNode(node, settings) {
77
+ return settings.blankNodeLabels?.[node.value] ?? `_:${normalizeBlankNodeId(node.value)}`;
78
+ }
79
+ /**
80
+ * Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
81
+ * datatype, quoted with its language tag or datatype otherwise.
82
+ * @param literal The literal.
83
+ * @param settings The settings of the run.
84
+ * @returns The serialized literal.
85
+ */
86
+ static serializeLiteral(literal, settings) {
87
+ const value = literal.value;
88
+ const datatype = literal.datatype?.value;
89
+ const language = literal.language;
90
+ if (language) {
91
+ return `"${escapeString(value)}"@${language}`;
92
+ }
93
+ if (settings.supportsPrefixes) {
94
+ const bare = TermSerializer._serializeBareLiteral(value, datatype);
95
+ if (bare !== undefined) {
96
+ return bare;
97
+ }
98
+ }
99
+ const useLongString = settings.supportsPrefixes && needsLongString(value);
100
+ const quote = useLongString ? '"""' : '"';
101
+ const quoted = `${quote}${escapeString(value, useLongString)}${quote}`;
102
+ if (!datatype || datatype === XSD.string) {
103
+ return quoted;
104
+ }
105
+ return `${quoted}^^${TermSerializer.serializeNamedNode(literal.datatype, settings)}`;
106
+ }
107
+ /**
108
+ * Write a number or boolean without quotes when the lexical form is valid for the datatype.
109
+ * @param value The lexical value.
110
+ * @param datatype The datatype IRI, if any.
111
+ * @returns The bare form, or `undefined` if the literal has to be quoted.
112
+ */
113
+ static _serializeBareLiteral(value, datatype) {
114
+ if (datatype === XSD.boolean && (value === 'true' || value === 'false' || value === '1' || value === '0')) {
115
+ return value === 'true' || value === '1' ? 'true' : 'false';
116
+ }
117
+ if (datatype === XSD.integer && isInteger(value)) {
118
+ return value;
119
+ }
120
+ if (datatype === XSD.decimal && isDecimal(value)) {
121
+ return value;
122
+ }
123
+ if (datatype === XSD.double && isDouble(value)) {
124
+ return value;
125
+ }
126
+ return undefined;
127
+ }
128
+ /**
129
+ * Change the options the terms are written with, keeping the capabilities of the syntax.
130
+ * @param options The serialization options.
131
+ * @returns This serializer.
132
+ */
133
+ configure(options) {
134
+ this._settings = TermSerializer.settingsOf(this._capabilities, options);
135
+ return this;
136
+ }
137
+ /**
138
+ * Whether the syntax allows prefixed names and bare literals.
139
+ */
140
+ get abbreviates() {
141
+ return this._settings.supportsPrefixes;
142
+ }
143
+ /**
144
+ * Serialize a term in subject position.
145
+ * @param term The subject term.
146
+ * @returns The serialized term.
147
+ * @throws An error if the term cannot be a subject.
148
+ */
149
+ serializeSubject(term) {
150
+ if (term.termType === 'Literal') {
151
+ throw new Error('A literal cannot be the subject of a statement.');
152
+ }
153
+ return this.serializeObject(term);
154
+ }
155
+ /**
156
+ * Serialize a term in predicate position, where `rdf:type` may be written as `a`.
157
+ * @param term The predicate term.
158
+ * @returns The serialized term.
159
+ */
160
+ serializePredicate(term) {
161
+ return TermSerializer.serializeNamedNode(term, this._settings, true);
162
+ }
163
+ /**
164
+ * Serialize a term in object position.
165
+ * @param term The object term.
166
+ * @returns The serialized term.
167
+ * @throws An error if the term type cannot be written.
168
+ */
169
+ serializeObject(term) {
170
+ switch (term.termType) {
171
+ case 'NamedNode':
172
+ return this.serializeNamedNode(term);
173
+ case 'BlankNode':
174
+ return this.serializeBlankNode(term);
175
+ case 'Literal':
176
+ return this.serializeLiteral(term);
177
+ default:
178
+ throw new Error(`A term of type ${term.termType} cannot be written as a single term.`);
179
+ }
180
+ }
181
+ /**
182
+ * Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
183
+ * @param node The named node.
184
+ * @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
185
+ * @returns The serialized node.
186
+ */
187
+ serializeNamedNode(node, allowTypeShorthand = false) {
188
+ return TermSerializer.serializeNamedNode(node, this._settings, allowTypeShorthand);
189
+ }
190
+ /**
191
+ * Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
192
+ * @param node The blank node.
193
+ * @returns The serialized node.
194
+ */
195
+ serializeBlankNode(node) {
196
+ return TermSerializer.serializeBlankNode(node, this._settings);
197
+ }
198
+ /**
199
+ * Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
200
+ * datatype, quoted with its language tag or datatype otherwise.
201
+ * @param literal The literal.
202
+ * @returns The serialized literal.
203
+ */
204
+ serializeLiteral(literal) {
205
+ return TermSerializer.serializeLiteral(literal, this._settings);
206
+ }
207
+ }
208
+ //# sourceMappingURL=term-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term-serializer.js","sourceRoot":"","sources":["../src/term-serializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "sparql",
16
16
  "typescript"
17
17
  ],
18
- "version": "1.9.2",
18
+ "version": "1.10.0",
19
19
  "private": false,
20
20
  "author": {
21
21
  "name": "Sebastian Faubel"