@cubejs-backend/api-gateway 0.29.26 → 0.29.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/src/gateway.d.ts +23 -43
  3. package/dist/src/gateway.d.ts.map +1 -1
  4. package/dist/src/gateway.js +29 -100
  5. package/dist/src/gateway.js.map +1 -1
  6. package/dist/src/graphql.js +5 -5
  7. package/dist/src/graphql.js.map +1 -1
  8. package/dist/src/helpers/prepareAnnotation.d.ts +45 -0
  9. package/dist/src/helpers/prepareAnnotation.d.ts.map +1 -0
  10. package/dist/src/helpers/prepareAnnotation.js +71 -0
  11. package/dist/src/helpers/prepareAnnotation.js.map +1 -0
  12. package/dist/src/helpers/toConfigMap.d.ts +32 -0
  13. package/dist/src/helpers/toConfigMap.d.ts.map +1 -0
  14. package/dist/src/helpers/toConfigMap.js +23 -0
  15. package/dist/src/helpers/toConfigMap.js.map +1 -0
  16. package/dist/src/helpers/transformData.d.ts +85 -0
  17. package/dist/src/helpers/transformData.d.ts.map +1 -0
  18. package/dist/src/helpers/transformData.js +239 -0
  19. package/dist/src/helpers/transformData.js.map +1 -0
  20. package/dist/src/helpers/transformValue.d.ts +21 -0
  21. package/dist/src/helpers/transformValue.d.ts.map +1 -0
  22. package/dist/src/helpers/transformValue.js +29 -0
  23. package/dist/src/helpers/transformValue.js.map +1 -0
  24. package/dist/src/interfaces.d.ts +14 -73
  25. package/dist/src/interfaces.d.ts.map +1 -1
  26. package/dist/src/interfaces.js +3 -0
  27. package/dist/src/interfaces.js.map +1 -1
  28. package/dist/src/query.d.ts +6 -5
  29. package/dist/src/query.d.ts.map +1 -1
  30. package/dist/src/query.js +13 -10
  31. package/dist/src/query.js.map +1 -1
  32. package/dist/src/types/enums.d.ts +51 -0
  33. package/dist/src/types/enums.d.ts.map +1 -0
  34. package/dist/src/types/enums.js +63 -0
  35. package/dist/src/types/enums.js.map +1 -0
  36. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.29.29](https://github.com/cube-js/cube.js/compare/v0.29.28...v0.29.29) (2022-03-03)
7
+
8
+
9
+ ### Features
10
+
11
+ * Compact JSON array based response data format support ([#4046](https://github.com/cube-js/cube.js/issues/4046)) ([e74d73c](https://github.com/cube-js/cube.js/commit/e74d73c140f56e71a24c35a5f03e9af63022bced)), closes [#1](https://github.com/cube-js/cube.js/issues/1)
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.29.28](https://github.com/cube-js/cube.js/compare/v0.29.27...v0.29.28) (2022-02-10)
18
+
19
+ **Note:** Version bump only for package @cubejs-backend/api-gateway
20
+
21
+
22
+
23
+
24
+
25
+ ## [0.29.27](https://github.com/cube-js/cube.js/compare/v0.29.26...v0.29.27) (2022-02-09)
26
+
27
+ **Note:** Version bump only for package @cubejs-backend/api-gateway
28
+
29
+
30
+
31
+
32
+
6
33
  ## [0.29.26](https://github.com/cube-js/cube.js/compare/v0.29.25...v0.29.26) (2022-02-07)
7
34
 
8
35
  **Note:** Version bump only for package @cubejs-backend/api-gateway
@@ -1,45 +1,16 @@
1
1
  import type { Application as ExpressApplication, ErrorRequestHandler, RequestHandler, Response } from 'express';
2
+ import { QueryType } from './types/strings';
3
+ import { RequestContext, ExtendedRequestContext, Request, QueryRewriteFn, SecurityContextExtractorFn, ExtendContextFn, ResponseResultFn, QueryRequest } from './types/request';
4
+ import { CheckAuthInternalOptions, JWTOptions, CheckAuthFn } from './types/auth';
5
+ import { Query, NormalizedQuery } from './types/query';
6
+ import { UserBackgroundContext, ApiGatewayOptions } from './types/gateway';
7
+ import { CheckAuthMiddlewareFn, RequestLoggerMiddlewareFn } from './interfaces';
2
8
  import { SubscriptionServer, WebSocketSendMessageFn } from './SubscriptionServer';
3
- import { CheckAuthFn, CheckAuthMiddlewareFn, ExtendContextFn, ExtendedRequestContext, JWTOptions, QueryRewriteFn, Request, RequestContext, RequestLoggerMiddlewareFn, SecurityContextExtractorFn } from './interfaces';
4
9
  import { SQLServer } from './sql-server';
5
- declare type ResponseResultFn = (message: Record<string, any> | Record<string, any>[], extra?: {
6
- status: number;
7
- }) => void;
8
- declare type CheckAuthInternalOptions = {
9
- isPlaygroundCheckAuth: boolean;
10
- };
11
- export declare type UserBackgroundContext = {
12
- authInfo?: any;
13
- securityContext: any;
14
- };
15
- declare type BaseRequest = {
16
- context: RequestContext;
17
- res: ResponseResultFn;
18
- };
19
- declare type QueryRequest = BaseRequest & {
20
- query: Record<string, any> | Record<string, any>[];
21
- queryType?: 'multi';
22
- apiType?: 'sql' | 'graphql' | 'rest' | 'ws';
23
- };
24
- export interface ApiGatewayOptions {
25
- standalone: boolean;
26
- dataSourceStorage: any;
27
- refreshScheduler: any;
28
- scheduledRefreshContexts?: () => Promise<UserBackgroundContext[]>;
29
- scheduledRefreshTimeZones?: String[];
30
- basePath: string;
31
- extendContext?: ExtendContextFn;
32
- checkAuth?: CheckAuthFn;
33
- checkAuthMiddleware?: CheckAuthMiddlewareFn;
34
- jwt?: JWTOptions;
35
- requestLoggerMiddleware?: RequestLoggerMiddlewareFn;
36
- queryRewrite?: QueryRewriteFn;
37
- subscriptionStore?: any;
38
- enforceSecurityChecks?: boolean;
39
- playgroundAuthSecret?: string;
40
- serverCoreVersion?: string;
41
- }
42
- export declare class ApiGateway {
10
+ /**
11
+ * API gateway server class.
12
+ */
13
+ declare class ApiGateway {
43
14
  protected readonly apiSecret: string;
44
15
  protected readonly compilerApi: any;
45
16
  protected readonly adapterApi: any;
@@ -105,12 +76,21 @@ export declare class ApiGateway {
105
76
  context: RequestContext;
106
77
  res: ResponseResultFn;
107
78
  }): Promise<void>;
108
- protected getNormalizedQueries(query: any, context: RequestContext): Promise<any>;
79
+ /**
80
+ * Convert incoming query parameter (JSON fetched from the HTTP) to
81
+ * an array of query type and array of normalized queries.
82
+ */
83
+ protected getNormalizedQueries(query: Record<string, any> | Record<string, any>[], context: RequestContext): Promise<[QueryType, NormalizedQuery[]]>;
109
84
  sql({ query, context, res }: QueryRequest): Promise<void>;
110
85
  protected createSecurityContextExtractor(options?: JWTOptions): SecurityContextExtractorFn;
111
86
  protected coerceForSqlQuery(query: any, context: Readonly<RequestContext>): any;
112
87
  protected dryRun({ query, context, res }: QueryRequest): Promise<void>;
113
- load({ query, context, res, apiType, ...props }: QueryRequest): Promise<void>;
88
+ /**
89
+ * Data queries APIs (`/load`, `/subscribe`) entry point. Used by
90
+ * `CubejsApi#load` and `CubejsApi#subscribe` methods to fetch the
91
+ * data.
92
+ */
93
+ load(request: QueryRequest): Promise<void>;
114
94
  subscribeQueueEvents({ context, signedWithPlaygroundAuthSecret, connectionId, res }: {
115
95
  context: any;
116
96
  signedWithPlaygroundAuthSecret: any;
@@ -133,7 +113,7 @@ export declare class ApiGateway {
133
113
  protected resToResultFn(res: Response): (message: any, { status }?: {
134
114
  status?: number | undefined;
135
115
  }) => Response<any, Record<string, any>>;
136
- protected parseQueryParam(query: any): any;
116
+ protected parseQueryParam(query: any): Query | Query[];
137
117
  protected getCompilerApi(context: any): any;
138
118
  protected getAdapterApi(context: any): any;
139
119
  contextByReq(req: Request, securityContext: any, requestId: string): Promise<ExtendedRequestContext>;
@@ -162,5 +142,5 @@ export declare class ApiGateway {
162
142
  protected liveness: RequestHandler;
163
143
  release(): void;
164
144
  }
165
- export {};
145
+ export { UserBackgroundContext, ApiGatewayOptions, ApiGateway, };
166
146
  //# sourceMappingURL=gateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,10 @@ exports.ApiGateway = void 0;
7
7
  /* eslint-disable no-restricted-syntax */
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
9
  const ramda_1 = __importDefault(require("ramda"));
10
- const moment_1 = __importDefault(require("moment"));
11
10
  const body_parser_1 = __importDefault(require("body-parser"));
12
11
  const express_graphql_1 = require("express-graphql");
13
12
  const shared_1 = require("@cubejs-backend/shared");
13
+ const enums_1 = require("./types/enums");
14
14
  const requestParser_1 = require("./requestParser");
15
15
  const UserError_1 = require("./UserError");
16
16
  const CubejsHandlerError_1 = require("./CubejsHandlerError");
@@ -21,94 +21,11 @@ const cached_handler_1 = require("./cached-handler");
21
21
  const jwk_1 = require("./jwk");
22
22
  const sql_server_1 = require("./sql-server");
23
23
  const graphql_1 = require("./graphql");
24
- const toConfigMap = (metaConfig) => ramda_1.default.fromPairs(ramda_1.default.map((c) => [c.config.name, c.config], metaConfig));
25
- const prepareAnnotation = (metaConfig, query) => {
26
- const configMap = toConfigMap(metaConfig);
27
- const annotation = (memberType) => (member) => {
28
- const [cubeName, fieldName] = member.split('.');
29
- const memberWithoutGranularity = [cubeName, fieldName].join('.');
30
- const config = configMap[cubeName][memberType].find(m => m.name === memberWithoutGranularity);
31
- if (!config) {
32
- return undefined;
33
- }
34
- return [member, {
35
- title: config.title,
36
- shortTitle: config.shortTitle,
37
- description: config.description,
38
- type: config.type,
39
- format: config.format,
40
- meta: config.meta,
41
- ...(memberType === 'measures' ? {
42
- drillMembers: config.drillMembers,
43
- drillMembersGrouped: config.drillMembersGrouped
44
- } : {})
45
- }];
46
- };
47
- const dimensions = (query.dimensions || []);
48
- return {
49
- measures: ramda_1.default.fromPairs((query.measures || []).map(annotation('measures')).filter(a => !!a)),
50
- dimensions: ramda_1.default.fromPairs(dimensions.map(annotation('dimensions')).filter(a => !!a)),
51
- segments: ramda_1.default.fromPairs((query.segments || []).map(annotation('segments')).filter(a => !!a)),
52
- timeDimensions: ramda_1.default.fromPairs(ramda_1.default.unnest((query.timeDimensions || [])
53
- .filter(td => !!td.granularity)
54
- .map(td => [annotation('dimensions')(`${td.dimension}.${td.granularity}`)].concat(
55
- // TODO: deprecated: backward compatibility for referencing time dimensions without granularity
56
- dimensions.indexOf(td.dimension) === -1 ? [annotation('dimensions')(td.dimension)] : []).filter(a => !!a)))),
57
- };
58
- };
59
- const transformValue = (value, type) => {
60
- if (value && (type === 'time' || value instanceof Date)) { // TODO support for max time
61
- return (value instanceof Date ? moment_1.default(value) : moment_1.default.utc(value)).format(moment_1.default.HTML5_FMT.DATETIME_LOCAL_MS);
62
- }
63
- return value && value.value ? value.value : value; // TODO move to sql adapter
64
- };
65
- const transformData = (aliasToMemberNameMap, annotation, data, query, queryType) => (data.map(r => {
66
- const row = ramda_1.default.pipe(
67
- // @ts-ignore
68
- ramda_1.default.toPairs, ramda_1.default.map(p => {
69
- const memberName = aliasToMemberNameMap[p[0]];
70
- const annotationForMember = annotation[memberName];
71
- if (!annotationForMember) {
72
- throw new UserError_1.UserError(`You requested hidden member: '${p[0]}'. Please make it visible using \`shown: true\`. Please note primaryKey fields are \`shown: false\` by default: https://cube.dev/docs/schema/reference/joins#setting-a-primary-key.`);
73
- }
74
- const transformResult = [
75
- memberName,
76
- transformValue(p[1], annotationForMember.type)
77
- ];
78
- const path = memberName.split('.');
79
- // TODO: deprecated: backward compatibility for referencing time dimensions without granularity
80
- const memberNameWithoutGranularity = [path[0], path[1]].join('.');
81
- if (path.length === 3 && (query.dimensions || []).indexOf(memberNameWithoutGranularity) === -1) {
82
- return [
83
- transformResult,
84
- [
85
- memberNameWithoutGranularity,
86
- transformResult[1]
87
- ]
88
- ];
89
- }
90
- return [transformResult];
91
- }),
92
- // @ts-ignore
93
- ramda_1.default.unnest, ramda_1.default.fromPairs
94
- // @ts-ignore
95
- )(r);
96
- // @ts-ignore
97
- const [{ dimension, granularity, dateRange } = {}] = query.timeDimensions;
98
- if (queryType === query_1.QUERY_TYPE.COMPARE_DATE_RANGE_QUERY) {
99
- return {
100
- ...row,
101
- compareDateRange: dateRange.join(' - ')
102
- };
103
- }
104
- else if (queryType === query_1.QUERY_TYPE.BLENDING_QUERY) {
105
- return {
106
- ...row,
107
- [['time', granularity].join('.')]: row[[dimension, granularity].join('.')]
108
- };
109
- }
110
- return row;
111
- }));
24
+ const prepareAnnotation_1 = require("./helpers/prepareAnnotation");
25
+ const transformData_1 = __importDefault(require("./helpers/transformData"));
26
+ /**
27
+ * API gateway server class.
28
+ */
112
29
  class ApiGateway {
113
30
  constructor(apiSecret, compilerApi, adapterApi, logger, options) {
114
31
  this.apiSecret = apiSecret;
@@ -278,7 +195,7 @@ class ApiGateway {
278
195
  query: req.query.query,
279
196
  context: req.context,
280
197
  res: this.resToResultFn(res),
281
- queryType: req.query.queryType
198
+ queryType: req.query.queryType,
282
199
  });
283
200
  }));
284
201
  const jsonParser = body_parser_1.default.json({ limit: '1mb' });
@@ -572,24 +489,28 @@ class ApiGateway {
572
489
  });
573
490
  }
574
491
  }
492
+ /**
493
+ * Convert incoming query parameter (JSON fetched from the HTTP) to
494
+ * an array of query type and array of normalized queries.
495
+ */
575
496
  async getNormalizedQueries(query, context) {
576
497
  query = this.parseQueryParam(query);
577
- let queryType = query_1.QUERY_TYPE.REGULAR_QUERY;
498
+ let queryType = enums_1.QueryType.REGULAR_QUERY;
578
499
  if (!Array.isArray(query)) {
579
500
  query = this.compareDateRangeTransformer(query);
580
501
  if (Array.isArray(query)) {
581
- queryType = query_1.QUERY_TYPE.COMPARE_DATE_RANGE_QUERY;
502
+ queryType = enums_1.QueryType.COMPARE_DATE_RANGE_QUERY;
582
503
  }
583
504
  }
584
505
  else {
585
- queryType = query_1.QUERY_TYPE.BLENDING_QUERY;
506
+ queryType = enums_1.QueryType.BLENDING_QUERY;
586
507
  }
587
508
  const queries = Array.isArray(query) ? query : [query];
588
509
  const normalizedQueries = await Promise.all(queries.map(async (currentQuery) => query_1.validatePostRewrite(await this.queryRewrite(query_1.normalizeQuery(currentQuery), context))));
589
510
  if (normalizedQueries.find((currentQuery) => !currentQuery)) {
590
511
  throw new Error('queryTransformer returned null query. Please check your queryTransformer implementation');
591
512
  }
592
- if (queryType === query_1.QUERY_TYPE.BLENDING_QUERY) {
513
+ if (queryType === enums_1.QueryType.BLENDING_QUERY) {
593
514
  const queryGranularity = query_1.getQueryGranularity(normalizedQueries);
594
515
  if (queryGranularity.length > 1) {
595
516
  throw new UserError_1.UserError('Data blending query granularities must match');
@@ -610,7 +531,7 @@ class ApiGateway {
610
531
  ...sqlQuery,
611
532
  order: ramda_1.default.fromPairs(sqlQuery.order.map(({ id: key, desc }) => [key, desc ? 'desc' : 'asc']))
612
533
  });
613
- res(queryType === query_1.QUERY_TYPE.REGULAR_QUERY ?
534
+ res(queryType === enums_1.QueryType.REGULAR_QUERY ?
614
535
  { sql: toQuery(sqlQueries[0]) } :
615
536
  sqlQueries.map((sqlQuery) => ({ sql: toQuery(sqlQuery) })));
616
537
  }
@@ -687,10 +608,18 @@ class ApiGateway {
687
608
  });
688
609
  }
689
610
  }
690
- async load({ query, context, res, apiType = 'rest', ...props }) {
611
+ /**
612
+ * Data queries APIs (`/load`, `/subscribe`) entry point. Used by
613
+ * `CubejsApi#load` and `CubejsApi#subscribe` methods to fetch the
614
+ * data.
615
+ */
616
+ async load(request) {
617
+ let query;
618
+ const { context, res, apiType = 'rest', ...props } = request;
691
619
  const requestStarted = new Date();
692
620
  try {
693
- query = this.parseQueryParam(query);
621
+ query = this.parseQueryParam(request.query);
622
+ const resType = query.responseFormat || enums_1.ResultType.DEFAULT;
694
623
  this.log({
695
624
  type: 'Load Request',
696
625
  query
@@ -713,7 +642,7 @@ class ApiGateway {
713
642
  const results = await Promise.all(normalizedQueries.map(async (normalizedQuery, index) => {
714
643
  var _a;
715
644
  const sqlQuery = sqlQueries[index];
716
- const annotation = prepareAnnotation(metaConfigResult, normalizedQuery);
645
+ const annotation = prepareAnnotation_1.prepareAnnotation(metaConfigResult, normalizedQuery);
717
646
  const aliasToMemberNameMap = sqlQuery.aliasNameToMember;
718
647
  const toExecute = {
719
648
  ...sqlQuery,
@@ -733,7 +662,7 @@ class ApiGateway {
733
662
  slowQuery = slowQuery || Boolean(response.slowQuery);
734
663
  return {
735
664
  query: normalizedQuery,
736
- data: transformData(aliasToMemberNameMap, flattenAnnotation, response.data, normalizedQuery, queryType),
665
+ data: transformData_1.default(aliasToMemberNameMap, flattenAnnotation, response.data, normalizedQuery, queryType, resType),
737
666
  lastRefreshTime: (_a = response.lastRefreshTime) === null || _a === void 0 ? void 0 : _a.toISOString(),
738
667
  ...(shared_1.getEnv('devMode') || context.signedWithPlaygroundAuthSecret ? {
739
668
  refreshKeyValues: response.refreshKeyValues,
@@ -759,7 +688,7 @@ class ApiGateway {
759
688
  .length,
760
689
  queriesWithData: results.filter((r) => { var _a; return (_a = r.data) === null || _a === void 0 ? void 0 : _a.length; }).length,
761
690
  }, context);
762
- if (queryType !== query_1.QUERY_TYPE.REGULAR_QUERY && props.queryType == null) {
691
+ if (queryType !== enums_1.QueryType.REGULAR_QUERY && props.queryType == null) {
763
692
  throw new UserError_1.UserError(`'${queryType}' query type is not supported by the client. Please update the client.`);
764
693
  }
765
694
  if (props.queryType === 'multi') {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAyC;AACzC,gEAA8D;AAC9D,kDAAsB;AACtB,8DAAqC;AACrC,qDAA8C;AAC9C,mDAA6D;AAW7D,yCAEuB;AA4BvB,mDAAyE;AACzE,2CAAwC;AACxC,6DAA0D;AAC1D,6DAAkF;AAClF,qEAAkE;AAClE,mCAQiB;AACjB,qDAAiD;AACjD,+BAA0C;AAC1C,6CAAyC;AACzC,uCAAuC;AACvC,mEAA4E;AAC5E,4EAAoD;AAEpD;;GAEG;AACH,MAAM,UAAU;IAmCd,YACqB,SAAiB,EACjB,WAAgB,EAChB,UAAe,EACf,MAAW,EACX,OAA0B;QAJ1B,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAK;QAChB,eAAU,GAAV,UAAU,CAAK;QACf,WAAM,GAAN,MAAM,CAAK;QACX,YAAO,GAAP,OAAO,CAAmB;QAT5B,qBAAgB,GAAkB,EAAE,CAAC;QAg1B9C,0BAAqB,GAAwB,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACjF,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC;gBACD,OAAO,EAAQ,GAAI,CAAC,OAAO;gBAC3B,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,cAAc,EAAE,IAAI,IAAI,EAAE;aAC3B,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;QA4RQ,cAAS,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC7D,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC;QAEQ,8BAAyB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC7E,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;QAEQ,6BAAwB,GAAmB,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC7G,GAAG,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,eAAe,EAAE,uCAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9F,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC;QAEQ,kBAAa,GAAmB,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAClG,MAAM,OAAO,GAAG,6BAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAEhE,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC;QAEQ,oBAAe,GAAmB,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACpG,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;aACzG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAChB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,UAAU;oBACnB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;iBAC9C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC;QAwDQ,+BAA0B,GAAG,CAAC,QAAgB,EAAkB,EAAE;YAC1E,MAAM,IAAI,GAAkC;gBAC1C,QAAQ;gBACR,aAAa,EAAE,eAAM,CAAC,oBAAoB,CAAC,IAAI,IAAI;gBACnD,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI;aAC1D,CAAC;YAEF,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC,CAAC;QAEQ,cAAS,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvD,IAAI,MAAM,GAAsB,QAAQ,CAAC;YAEzC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAElD,IAAI;oBACF,gCAAgC;oBAChC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,eAAe,CAAC,cAAc,EAAE,CAAC;iBACxC;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC;wBACP,IAAI,EAAE,0CAA0C;wBAChD,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;qBACrD,CAAC,CAAC;oBAEH,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBACzC;gBAED,IAAI;oBACF,MAAM,eAAe,CAAC,2BAA2B,EAAE,CAAC;iBACrD;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC;wBACP,IAAI,EAAE,0CAA0C;wBAChD,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;qBACrD,CAAC,CAAC;oBAEH,MAAM,GAAG,MAAM,CAAC;iBACjB;aACF;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEQ,aAAQ,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACtD,IAAI,MAAM,GAAsB,QAAQ,CAAC;YAEzC,IAAI;gBACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;aAChD;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,yCAAyC;oBAC/C,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;iBACrD,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACzC;YAED,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;aAC5D;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,yCAAyC;oBAC/C,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;iBACrD,CAAC,CAAC;gBAEH,MAAM,GAAG,MAAM,CAAC;aACjB;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC;QApxCA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAEzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,+CAAsB,EAAE,CAAC;QACnF,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACxD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB;YACpD,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACnB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC,aAAa,CAAC;IACvF,CAAC;IAEM,OAAO,CAAC,GAAuB;QACpC,MAAM,eAAe,GAAqB;YACxC,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,wBAAwB;YAC7B,IAAI,CAAC,uBAAuB;SAC7B,CAAC;QAEF,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAE5B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACtE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,MAAM,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;oBAC9C,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;iBACjC,CAAC,CAAC;gBACH,MAAM,GAAG,oBAAU,CAAC,UAAU,CAAC,CAAC;gBAChC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACtC;YAED,OAAO,6BAAW,CAAC;gBACjB,MAAM;gBACN,OAAO,EAAE;oBACP,GAAG;oBACH,UAAU,EAAE,IAAI;iBACjB;gBACD,QAAQ,EAAE,eAAM,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK;aACrF,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvE,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAG,qBAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACpF,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;aAC9B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5E,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACtE,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvE,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,2BAA2B,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACxF,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe;gBAC1C,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,aAAa,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1E,MAAM,IAAI,CAAC,MAAM,CAAC;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvF,MAAM,IAAI,CAAC,MAAM,CAAC;gBAChB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,MAAM,iBAAiB,GAAqB;gBAC1C,IAAI,CAAC,yBAAyB;gBAC9B,IAAI,CAAC,wBAAwB;gBAC7B,IAAI,CAAC,uBAAuB;aAC7B,CAAC;YAEF,GAAG,CAAC,GAAG,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAExG,GAAG,CAAC,GAAG,CAAC,oCAAoC,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACnF,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;oBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,GAAG,CAAC,sDAAsD,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACtB,gBAAgB,EAAE,QAAQ;yBACvB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;yBACxD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,GAAG,CAAC,8CAA8C,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC7F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACtB,SAAS,EAAE,IAAI,CAAC,yBAAyB,IAAI,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC3G,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBACrC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACxG,MAAM,IAAI,CAAC,wBAAwB,CAAC;oBAClC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtG,MAAM,IAAI,CAAC,oBAAoB,CAAC;oBAC9B,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtG,MAAM,IAAI,CAAC,yBAAyB,CAAC;oBACnC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACvG,MAAM,IAAI,CAAC,8BAA8B,CAAC;oBACxC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;SACL;QAED,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,8BAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,8BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,8BAA8B,EAAE,eAAe,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACxG,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAElD,MAAM,uCAAuC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;iBAC1E,uCAAuC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAEzE,GAAG,CAAC,IAAI,CAAC,EAAE,uCAAuC,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,sBAAsB,CAAC,WAAmC;QAC/D,OAAO,IAAI,uCAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAES,QAAQ,CAAC,cAAc;QAC/B,OAAO,cAAc,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAI/D;QACC,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBACtD,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,IAAI,EAAE,CAAC;gBAC9C,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC,CAAC;SACL;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAsD;QACpF,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAElC,SAAS,gBAAgB,CAAC,IAAI;YAC5B,OAAO,eAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,8BAA8B,IAAI,IAAI,CAAC,SAAS,CAAC;QACvF,CAAC;QAED,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;gBAC/D,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,UAAU;iBACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;iBAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACd,GAAG,IAAI;gBACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAChD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACrD,CAAC,CAAC,CAAC;YACN,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAChB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC;gBACD,OAAO;gBACP,GAAG;gBACH,cAAc;aACf,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAA2E;QAClI,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;YAE5D,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;iBAC3D,wBAAwB,CACvB,OAAO,EACP,qCAA6B,CAC3B;gBACE,SAAS,EAAE,IAAI,CAAC,yBAAyB;gBACzC,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,SAAS;iBACV,CAAC,CAAC;aACJ,CACF,CACF,CAAC;YAEJ,GAAG,CAAC,EAAE,eAAe,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SAChG;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,2BAA2B,CACtC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAkE;QAEvF,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,KAAK,GAAG,qCAA6B,CACnC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAC3B,EAAE,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAC9C,CAAC;YACF,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;iBAC3D,wBAAwB,CACvB,OAAO,EACP,KAAK,CACN,CAAC;YAEJ,MAAM,oCAAoC,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,QAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,CAAA,CAAA,EAAA,CAAC,CAAC;YAEtG,MAAM,oBAAoB,GAAG,wBAAwB;gBACnD,MAAM,eAAe,CAAC,+BAA+B,CACnD,OAAO,EACP,oCAAoC,EACpC,WAAW,CAAC,qBAAqB,CAClC,CAAC;YAEJ,MAAM,gCAAgC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5F,GAAG,KAAK;gBACR,cAAc;gBACd,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACrC,SAAS,CAAC,cAAc,GAAG,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,yBAAyB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,MAAK,EAAE,CAAC;oBACvG,SAAS,CAAC,gBAAgB,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,4BAA4B,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,CAAC;oBACtG,OAAO,SAAS,CAAC;gBACnB,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,GAAG,CAAC;gBACF,wBAAwB,EAAE,wBAAwB,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC;aAC3F,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACnC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAkE;QAEvF,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,KAAK,GAAG,2CAAmC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YAE3D,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAEpD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;iBAC3D,wBAAwB,CACvB,OAAO,EACP;gBACE,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC;aAC5C,CACF,CAAC;YACJ,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,MAAM,uBAAuB,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,MAAK,YAAY,CAAC,UAAU,CAAC,CAAC;YAE7G,GAAG,CAAC;gBACF,OAAO,EAAE,uBAAuB,IAAI,MAAM,eAAe,CAAC,wBAAwB,CAChF,OAAO,EACP,uBAAuB,CACxB;aACF,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAC/B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAkE;QAEvF,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,KAAK,GAAG,qCAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;iBACzC,oBAAoB,CACnB,OAAO,EACP,KAAK,CACN,CAAC;YAEJ,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,EAAE,OAAO,EAAE,GAAG,EAAsD;QAEpE,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpD,GAAG,CAAC;gBACF,MAAM,EAAE,MAAM,eAAe,CAAC,4BAA4B,EAAE;aAC7D,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,8BAA8B,CACzC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAkE;QAEvF,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,2CAAmC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACnG,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpD,GAAG,CAAC;gBACF,MAAM,EAAE,MAAM,eAAe,CAAC,oCAAoC,CAAC,SAAS,EAAE,UAAU,CAAC;aAC1F,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAkD,EAClD,OAAuB;QAEvB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,SAAS,GAAc,iBAAa,CAAC,aAAa,CAAC;QAEvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,SAAS,GAAG,iBAAa,CAAC,wBAAwB,CAAC;aACpD;SACF;aAAM;YACL,SAAS,GAAG,iBAAa,CAAC,cAAc,CAAC;SAC1C;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAsB,MAAM,OAAO,CAAC,GAAG,CAC5D,OAAO,CAAC,GAAG,CACT,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,2BAAmB,CACzC,MAAM,IAAI,CAAC,YAAY,CACrB,sBAAc,CAAC,YAAY,CAAC,EAC5B,OAAO,CACR,CACF,CACF,CACF,CAAC;QAEF,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;SAC5G;QAED,IAAI,SAAS,KAAK,iBAAa,CAAC,cAAc,EAAE;YAC9C,MAAM,gBAAgB,GAAG,2BAAmB,CAAC,iBAAiB,CAAC,CAAC;YAEhE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,IAAI,qBAAS,CAAC,8CAA8C,CAAC,CAAC;aACrE;YACD,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,MAAM,IAAI,qBAAS,CAAC,0DAA0D,CAAC,CAAC;aACjF;SACF;QAED,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAgB;QACpD,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAElC,IAAI;YACF,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,iBAAiB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAC5E,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,EAChD,EAAE,gBAAgB,EAAE,eAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,8BAA8B,EAAE,CAClF,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7B,GAAG,QAAQ;gBACX,KAAK,EAAE,eAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5F,CAAC,CAAC;YAEH,GAAG,CAAC,SAAS,KAAK,iBAAa,CAAC,aAAa,CAAC,CAAC;gBAC7C,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/D;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc;aACvC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,8BAA8B,CAAC,OAAoB;QAC3D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;YAC5B,OAAO,CAAC,GAA6B,EAAE,EAAE;gBACvC,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE;oBAC3E,IAAY,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,EAAE;wBAC1D,OAAO,GAAG,CAAC,eAAe,CAAS,OAAO,CAAC,eAAe,CAAC,CAAC;qBAC7D;iBACF;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;SACH;QAED,IAAI,yBAAyB,GAAY,KAAK,CAAC;QAE/C,OAAO,CAAC,GAA6B,EAAE,EAAE;YACvC,IAAI,eAAe,GAAQ,EAAE,CAAC;YAE9B,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE;gBAC3E,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,yBAAyB,EAAE;wBAC9B,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE;4BACxC,OAAO,EAAE,CACP,mGAAmG;gCACnG,wEAAwE,CACzE;yBACF,CAAC,CAAC;wBAEH,yBAAyB,GAAG,IAAI,CAAC;qBAClC;oBAED,eAAe,GAAG;wBAChB,GAAG,GAAG,CAAC,eAAe;wBACtB,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;qBACzB,CAAC;oBAEF,OAAO,eAAe,CAAC,CAAC,CAAC;iBAC1B;qBAAM;oBACL,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;iBACvC;aACF;YAED,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IAES,iBAAiB,CAAC,KAAK,EAAE,OAAiC;QAClE,OAAO;YACL,GAAG,KAAK;YACR,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;YAC1C,cAAc,EAAE;gBACd,eAAe,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;aACxD;YACD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAgB;QAC1D,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAElC,IAAI;YACF,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,iBAAiB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAC5E,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,EAChD;gBACE,gBAAgB,EAAE,eAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,8BAA8B;aAC9E,CACF,CAAC,CACH,CAAC;YAEF,GAAG,CAAC;gBACF,SAAS;gBACT,iBAAiB;gBACjB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAC,CAAC,SAAS,CAClD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC9E,CAAC;gBACF,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACjF,UAAU,EAAE,qBAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC;aACxD,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc;aACvC,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAqB;QACrC,IAAI,KAAK,CAAC;QACV,MAAM,EACJ,OAAO,EACP,GAAG,EACH,OAAO,GAAG,MAAM,EAChB,GAAG,KAAK,EACT,GAAG,OAAO,CAAC;QACZ,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAElC,IAAI;YACF,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,kBAAU,CAAC,OAAO,CAAC;YAE3D,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,cAAc;gBACpB,KAAK;aACN,EAAE,OAAO,CAAC,CAAC;YAEZ,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvF,MAAM,CAAC,gBAAgB,EAAE,GAAG,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACzD;gBACE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;aAC1E,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAC5B,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,CACjD,CAAC;gBAEF,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;oBAC9C,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;oBAC/B,QAAQ;iBACT,EAAE,OAAO,CAAC,CAAC;gBAEZ,OAAO,QAAQ,CAAC;YAClB,CAAC,CACF,CAAC,CACH,CAAC;YAEF,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;;gBACvF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,UAAU,GAAG,qCAAiB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;gBACxE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;gBAExD,MAAM,SAAS,GAAG;oBAChB,GAAG,QAAQ;oBACX,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,eAAe,CAAC,UAAU;oBACtC,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO;iBACR,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAE3E,MAAM,iBAAiB,GAAG;oBACxB,GAAG,UAAU,CAAC,QAAQ;oBACtB,GAAG,UAAU,CAAC,UAAU;oBACxB,GAAG,UAAU,CAAC,cAAc;iBACO,CAAC;gBAEtC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAErD,OAAO;oBACL,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,uBAAa,CACjB,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,CAAC,IAAI,EACb,eAAe,EACf,SAAS,EACT,OAAO,CACR;oBACD,eAAe,QAAE,QAAQ,CAAC,eAAe,0CAAE,WAAW,EAAE;oBACxD,GAAG,CAAC,eAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;wBAChE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;wBAC3C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;wBACjD,gBAAgB,EAAE,QAAQ,CAAC,sBAAsB;wBACjD,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC;oBACT,UAAU;oBACV,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;iBACvC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,GAAG,CACN;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACvC,OAAO;gBACP,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC;gBAC7D,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;qBACpG,MAAM;gBACT,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,wBAAC,CAAC,CAAC,IAAI,0CAAE,MAAM,GAAA,CAAC,CAAC,MAAM;aACnE,EACD,OAAO,CACR,CAAC;YAEF,IAAI,SAAS,KAAK,iBAAa,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;gBACxE,MAAM,IAAI,qBAAS,CAAC,IAAI,SAAS,wEAAwE,CAAC,CAAC;aAC5G;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE;gBAC/B,GAAG,CAAC;oBACF,SAAS;oBACT,OAAO;oBACP,UAAU,EAAE,qBAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC;oBACvD,SAAS;iBACV,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc;aACvC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,oBAAoB,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,YAAY,EAAE,GAAG,EAAE;QACxF,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,8BAA8B,EAAE;YACjE,MAAM,IAAI,uCAAkB,CAC1B,GAAG,EACH,WAAW,EACX,6CAA6C,CAC9C,CAAC;SACH;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEM,sBAAsB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;QACrD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EACrB,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EACtE;QACC,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI;YACF,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,KAAK;aACN,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,MAAM,GAAQ,IAAI,CAAC;YACvB,IAAI,KAAK,GAAQ,IAAI,CAAC;YAEtB,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,OAAO;aACR;YAED,kEAAkE;YAClE,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,KAAK;gBACL,OAAO;gBACP,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;wBAC5C,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qBAC3B;yBAAM;wBACL,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qBAC5B;gBACH,CAAC;gBACD,SAAS;gBACT,OAAO;aACR,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACxC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;gBACjF,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;aAClC;iBAAM,IAAI,KAAK,EAAE;gBAChB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAChC;YACD,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACpC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC;gBACf,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc;aACvC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,aAAa,CAAC,GAAa;QACnC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,KAA0B,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5H,CAAC;IAES,eAAe,CAAC,KAAK;QAC7B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,EAAE;YACnC,MAAM,IAAI,qBAAS,CAAC,yBAAyB,CAAC,CAAC;SAChD;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,KAAwB,CAAC;IAClC,CAAC;IAES,cAAc,CAAC,OAAO;QAC9B,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAClC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAES,aAAa,CAAC,OAAO;QAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAY,EAAE,eAAe,EAAE,SAAiB;QACxE,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjG,OAAO;YACL,eAAe;YACf,0CAA0C;YAC1C,QAAQ,EAAE,eAAe;YACzB,8BAA8B,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;YAC3E,SAAS;YACT,GAAG,UAAU;SACd,CAAC;IACJ,CAAC;IAaM,WAAW,CAAC,EACjB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAClC;QACJ,IAAI,CAAC,YAAY,uCAAkB,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK;gBACL,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxC,EAAE,OAAO,CAAC,CAAC;YACZ,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACjD;aAAM,IAAI,CAAC,CAAC,KAAK,KAAK,eAAe,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxC,EAAE,OAAO,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SACzB;aAAM,IAAI,CAAC,CAAC,KAAK,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,oBAAoB;gBAC1B,KAAK;gBACL,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxC,EAAE,OAAO,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SACzB;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK;gBACL,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxC,EAAE,OAAO,CAAC,CAAC;YACZ,GAAG,CACD;gBACE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,OAAO;aACjB,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;SACH;aAAM;YACL,IAAI,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,uBAAuB;gBAC7B,KAAK;gBACL,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxC,EAAE,OAAO,CAAC,CAAC;YACZ,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SAC/C;IACH,CAAC;IAES,uBAAuB,CAAC,EAAyB;QACzD,IAAI,CAAC,MAAM,CAAC,4CAA4C,EAAE;YACxD,OAAO,EAAE,CACP,sFAAsF;gBACtF,mFAAmF,CACpF;SACF,CAAC,CAAC;QAEH,IAAI,yBAAyB,GAAG,KAAK,CAAC;QAEtC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACxB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,kFAAkF;gBAClF,IAAI,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oBACxC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;iBACpC;qBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACvB,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;iBACpC;gBAED,IAAI,CAAC,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC3G,IAAI,CAAC,MAAM,CAAC,mCAAmC,EAAE;wBAC/C,OAAO,EAAE,CACP,iFAAiF,oBAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CACpH;qBACF,CAAC,CAAC;oBAEH,yBAAyB,GAAG,IAAI,CAAC;iBAClC;gBAED,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAES,aAAa,CAAC,EAAe;QACrC,yDAAyD;QACzD,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,mCAAmC;QACnC,IAAI,yBAAyB,GAAG,KAAK,CAAC;QAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEpB,kFAAkF;YAClF,IAAI,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACxC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;aACpC;iBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,aAAa,EAAE;oBAClB,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE;wBAClC,OAAO,EAAE,CACP,2DAA2D;4BAC3D,mFAAmF,CACpF;qBACF,CAAC,CAAC;oBAEH,aAAa,GAAG,IAAI,CAAC;iBACtB;gBAED,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;aACpC;YAED,IAAI,CAAC,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC3G,IAAI,CAAC,MAAM,CAAC,mCAAmC,EAAE;oBAC/C,OAAO,EAAE,CACP,iFAAiF,oBAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CACpH;iBACF,CAAC,CAAC;gBAEH,yBAAyB,GAAG,IAAI,CAAC;aAClC;QACH,CAAC,CAAC;IACJ,CAAC;IAES,sBAAsB,CAAC,OAAoB,EAAE,eAA0C;QAG/F,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,sBAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;YAC7D,UAAU,EAA8B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;YAC3D,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;SAC1B,CAAC,CAAC;QAEH,IAAI,WAAW,GAAkB,WAAW,CAAC;QAE7C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;YACnB,MAAM,IAAI,GAAG,uBAAiB,CAAC,OAAO,EAAE;gBACtC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,gCAAgC,EAAE;wBAC5C,KAAK,EAAE,CAAC,CAAC,OAAO;qBACjB,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEzC,+CAA+C;YAC/C,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;oBAChF,KAAK,EAAE,CAAC,CAAC,OAAO;iBACjB,CAAC,CAAC,CAAC;aACL;YAED,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAA+B,sBAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,uCAAkB,CAC1B,GAAG,EACH,WAAW,EACX,0BAA0B,CAC3B,CAAC;iBACH;gBAED,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;oBAC1C,MAAM,IAAI,uCAAkB,CAC1B,GAAG,EACH,WAAW,EACX,gCAAgC,CACjC,CAAC;iBACH;gBAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAS,OAAO,CAAC,MAAM,EACvF,OAAO,CAAC,MAAM,CAAC,GAAG,CACnB,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE;oBACR,MAAM,IAAI,uCAAkB,CAC1B,GAAG,EACH,WAAW,EACX,oCAAoC,OAAO,CAAC,MAAM,CAAC,GAAG,aAAa,CACpE,CAAC;iBACH;gBAED,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC,CAAC;SACH;QAED,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,KAAI,IAAI,CAAC,SAAS,CAAC;QAE9C,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,GAAG,CAAC,eAAe,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACtD,GAAG,CAAC,8BAA8B,GAAG,OAAO,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,qBAAqB,CAAC,CAAC;iBACtF;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,IAAI,CAAC,qBAAqB,EAAE;wBAC9B,MAAM,IAAI,uCAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;qBACjE;yBAAM;wBACL,IAAI,CAAC,GAAG,CAAC;4BACP,IAAI,EAAG,CAAW,CAAC,OAAO;4BAC1B,KAAK,EAAE,IAAI;4BACX,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;yBACrD,EAAO,GAAG,CAAC,CAAC;qBACd;iBACF;aACF;iBAAM,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBACrC,8BAA8B;gBAC9B,MAAM,IAAI,uCAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,iCAAiC,CAAC,CAAC;aACnF;QACH,CAAC,CAAC;IACJ,CAAC;IAES,iBAAiB,CAAC,OAA0B;QACpD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS;YACvC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACzD,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;gBAClC,IAAI;oBACF,MAAM,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;iBAC3C;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;iBAC7C;YACH,CAAC,CAAC;SACH;QAED,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAES,uBAAuB;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CACnD;YACE,GAAG,EAAE,IAAI,CAAC,oBAAoB;YAC9B,UAAU,EAAE,CAAC,OAAO,CAAC;SACtB,EACD,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAChC,CAAC;QAEF,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;YAClC,MAAM,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAES,oCAAoC,CAAC,GAAY;QACzD,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE;YACjD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;aACjB;YAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,WAAwB,EAAE,GAAY,EAAE,GAAa,EAAE,IAAI;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC,CAAC;QAE7D,IAAI;YACF,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,uCAAkB,EAAE;gBACnC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACjD;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,YAAY;oBAClB,KAAK;oBACL,KAAK,EAAG,CAAW,CAAC,KAAK,IAAK,CAAW,CAAC,QAAQ,EAAE;iBACrD,EAAO,GAAG,CAAC,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC1D;SACF;IACH,CAAC;IA6CS,2BAA2B,CAAC,KAAK;QACzC,IAAI,qBAAqB,CAAC;QAC1B,IAAI,uBAAuB,CAAC;QAE5B,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,EAAE,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC/B,IAAI,qBAAqB,IAAI,IAAI,EAAE;oBACjC,MAAM,IAAI,qBAAS,CAAC,uDAAuD,CAAC,CAAC;iBAC9E;gBAED,qBAAqB,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAC5C,uBAAuB,GAAG,KAAK,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,qBAAqB,IAAI,IAAI,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,eAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YACjB,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACrD,IAAI,uBAAuB,KAAK,KAAK,EAAE;oBACrC,6DAA6D;oBAC7D,MAAM,EAAE,gBAAgB,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,CAAC;oBAClD,OAAO;wBACL,GAAG,aAAa;wBAChB,SAAS;qBACV,CAAC;iBACH;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC;IAEM,GAAG,CAAC,KAA2C,EAAE,OAAiC;QACvF,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB,GAAG,UAAU;YACb,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAES,cAAc,CAAC,GAAa,EAAE,MAAyB;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC/C,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IA6EM,OAAO;QACZ,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACnD,eAAe,EAAE,CAAC;SACnB;IACH,CAAC;CACF;AAIC,gCAAU"}
@@ -8,7 +8,7 @@ const ramda_1 = __importDefault(require("ramda"));
8
8
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
9
9
  const nexus_1 = require("nexus");
10
10
  const graphql_scalars_1 = require("graphql-scalars");
11
- const query_1 = require("./query");
11
+ const enums_1 = require("./types/enums");
12
12
  const DateTimeScalar = nexus_1.asNexusMethod(graphql_scalars_1.DateTimeResolver, 'date');
13
13
  const FloatFilter = nexus_1.inputObjectType({
14
14
  name: 'FloatFilter',
@@ -191,7 +191,7 @@ function getMemberType(metaConfig, cubeName, memberName) {
191
191
  const cubeConfig = metaConfig.find(cube => cube.config.name === cubeName);
192
192
  if (!cubeConfig)
193
193
  return undefined;
194
- return ['measure', 'dimension'].find((memberType) => (cubeConfig.config[`${memberType}s`]
194
+ return [enums_1.MemberType.MEASURES, enums_1.MemberType.DIMENSIONS].find((memberType) => (cubeConfig.config[`${memberType}s`]
195
195
  .findIndex(entry => entry.name === `${cubeName}.${memberName}`) !== -1));
196
196
  }
197
197
  function whereArgToQueryFilters(whereArg, prefix) {
@@ -451,10 +451,10 @@ function makeSchema(metaConfig) {
451
451
  const memberName = memberNode.name.value;
452
452
  const memberType = getMemberType(metaConfig, cubeName, memberName);
453
453
  const key = `${cubeName}.${memberName}`;
454
- if (memberType === 'measure') {
454
+ if (memberType === enums_1.MemberType.MEASURES) {
455
455
  measures.push(key);
456
456
  }
457
- else if (memberType === 'dimension') {
457
+ else if (memberType === enums_1.MemberType.DIMENSIONS) {
458
458
  const granularityNodes = getFieldNodeChildren(memberNode, infos);
459
459
  if (granularityNodes.length > 0) {
460
460
  granularityNodes.forEach(granularityNode => {
@@ -495,7 +495,7 @@ function makeSchema(metaConfig) {
495
495
  try {
496
496
  await apiGateway.load({
497
497
  query,
498
- queryType: query_1.QUERY_TYPE.REGULAR_QUERY,
498
+ queryType: enums_1.QueryType.REGULAR_QUERY,
499
499
  context: req.context,
500
500
  res: (message) => {
501
501
  if (message.error) {