airbyte-faros-destination 0.9.61 → 0.9.63

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.
@@ -34,7 +34,7 @@ class FarosSprints extends common_1.JiraConverter {
34
34
  model: 'tms_SprintBoardRelationship',
35
35
  record: {
36
36
  sprint: { uid, source },
37
- board: { uid: (0, lodash_1.toString)(sprint.originBoardId) },
37
+ board: { uid: (0, lodash_1.toString)(sprint.boardId), source },
38
38
  },
39
39
  },
40
40
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"faros_sprints.js","sourceRoot":"","sources":["../../../src/converters/jira/faros_sprints.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AACtC,mCAAuD;AAGvD,qCAAuC;AAEvC,MAAa,YAAa,SAAQ,sBAAa;IAA/C;;QACW,sBAAiB,GAAoC;YAC5D,YAAY;YACZ,6BAA6B;SAC9B,CAAC;IA+BJ,CAAC;IA9BC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,GAAG,GAAG,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO;YACL;gBACE,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE;oBACN,GAAG;oBACH,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1C,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;oBACzC,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC5C,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBACrC,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3C,MAAM;iBACP;aACF;YACD;gBACE,KAAK,EAAE,6BAA6B;gBACpC,MAAM,EAAE;oBACN,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;oBACrB,KAAK,EAAE,EAAC,GAAG,EAAE,IAAA,iBAAQ,EAAC,MAAM,CAAC,aAAa,CAAC,EAAC;iBAC7C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAnCD,oCAmCC"}
1
+ {"version":3,"file":"faros_sprints.js","sourceRoot":"","sources":["../../../src/converters/jira/faros_sprints.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AACtC,mCAAuD;AAGvD,qCAAuC;AAEvC,MAAa,YAAa,SAAQ,sBAAa;IAA/C;;QACW,sBAAiB,GAAoC;YAC5D,YAAY;YACZ,6BAA6B;SAC9B,CAAC;IA+BJ,CAAC;IA9BC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,GAAG,GAAG,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO;YACL;gBACE,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE;oBACN,GAAG;oBACH,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1C,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;oBACzC,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC5C,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBACrC,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3C,MAAM;iBACP;aACF;YACD;gBACE,KAAK,EAAE,6BAA6B;gBACpC,MAAM,EAAE;oBACN,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;oBACrB,KAAK,EAAE,EAAC,GAAG,EAAE,IAAA,iBAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAC;iBAC/C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAnCD,oCAmCC"}
@@ -2,7 +2,7 @@ type OptString = string | null | undefined;
2
2
  type OptBool = boolean | null | undefined;
3
3
  type OptNumber = number | null | undefined;
4
4
  export interface BaseVulnerabilityType {
5
- uid: OptString;
5
+ uid: string;
6
6
  displayName: OptString;
7
7
  createdAt: OptString;
8
8
  externalURL: OptString;
@@ -19,7 +19,7 @@ export interface GithubSecurityAdvisory {
19
19
  ghsaId: OptString;
20
20
  }
21
21
  export interface GithubVulnerabilityData {
22
- uid: OptString;
22
+ uid: string;
23
23
  displayName: OptString;
24
24
  createdAt: OptString;
25
25
  externalURL: OptString;
@@ -35,7 +35,7 @@ export interface AWSFindings {
35
35
  name: OptString;
36
36
  }
37
37
  export interface AWSVulnerabilityData {
38
- uid: OptString;
38
+ uid: string;
39
39
  displayName: OptString;
40
40
  createdAt: OptString;
41
41
  externalURL: OptString;
@@ -46,6 +46,7 @@ export interface AWSVulnerabilityData {
46
46
  repositoryName: OptString;
47
47
  repositoryArn: OptString;
48
48
  findings: AWSFindings[];
49
+ imageTags: string[];
49
50
  }
50
51
  export interface AWSV2Ignored {
51
52
  ignoreReason: OptString;
@@ -56,11 +57,12 @@ export interface AWSV2Asset {
56
57
  displayName: OptString;
57
58
  }
58
59
  export interface AWSV2VulnerabilityData {
59
- uid: OptString;
60
+ uid: string;
60
61
  displayName: OptString;
61
62
  createdAt: OptString;
62
63
  externalURL: OptString;
63
64
  severity: OptString;
65
+ externalVulnerabilityId: OptString;
64
66
  packageName: OptString;
65
67
  packageIdentifier: OptString;
66
68
  description: OptString;
@@ -72,6 +74,7 @@ export interface AWSV2VulnerabilityData {
72
74
  imageTags: string[];
73
75
  imageDigest: OptString;
74
76
  }
77
+ export type BaseAWSVuln = AWSVulnerabilityData | AWSV2VulnerabilityData;
75
78
  export declare const vulnTypeOptions: string[];
76
79
  export interface VcsOrgKey {
77
80
  uid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/converters/vanta/types.ts"],"names":[],"mappings":";;;AAqFa,QAAA,eAAe,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/converters/vanta/types.ts"],"names":[],"mappings":";;;AAwFa,QAAA,eAAe,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { AirbyteRecord } from 'faros-airbyte-cdk';
2
2
  import { FarosClient } from 'faros-js-client';
3
3
  import { Converter, DestinationModel, DestinationRecord, StreamContext } from '../converter';
4
- import { AWSV2VulnerabilityData, AWSVulnerabilityData, CicdArtifactKey, ExtendedVulnerabilityType, FarosObjectKey, GithubVulnerabilityData, VcsRepoKey, VulnerabilityInfo } from './types';
4
+ import { AWSV2VulnerabilityData, AWSVulnerabilityData, BaseAWSVuln, CicdArtifactKey, ExtendedVulnerabilityType, FarosObjectKey, GithubVulnerabilityData, VcsRepoKey, VulnerabilityInfo } from './types';
5
5
  export declare abstract class Vulnerabilities extends Converter {
6
6
  source: string;
7
7
  readonly destinationModels: ReadonlyArray<DestinationModel>;
@@ -16,6 +16,7 @@ export declare abstract class Vulnerabilities extends Converter {
16
16
  awsV2ContainerNamesToUids: Record<string, string[]>;
17
17
  gitUidsToVulns: Record<string, GithubVulnerabilityData>;
18
18
  awsUidsToVulns: Record<string, AWSVulnerabilityData>;
19
+ duplicateAwsV2Uids: Set<string>;
19
20
  duplicateAwsUids: Set<string>;
20
21
  vcsRepositoryQuery: string;
21
22
  cicdArtifactQueryByCommitSha: string;
@@ -54,10 +55,17 @@ export declare abstract class Vulnerabilities extends Converter {
54
55
  getVCSMappingsFromGit(gitRepoNamesToUIDs: Record<string, string[]>, fc: FarosClient, ctx: StreamContext): Promise<DestinationRecord[]>;
55
56
  getAWSV2VulnStatusDetail(vuln: AWSV2VulnerabilityData): string;
56
57
  getAWSV2VulnStatusCategory(vuln: AWSV2VulnerabilityData): string;
57
- getCICDMappingsFromAWS(fc: FarosClient, ctx: StreamContext): Promise<DestinationRecord[]>;
58
- getCommitShasFromAWSV2Vulns(vulns: AWSV2VulnerabilityData[], ctx: StreamContext): [Set<string>, Record<string, AWSV2VulnerabilityData>];
58
+ getCICDMappingsFromAWSByCommitSha(fc: FarosClient, ctx: StreamContext): Promise<[DestinationRecord[], Set<string>]>;
59
+ getCICDMappingsFromAWSByRepoName(fc: FarosClient, ctx: StreamContext, vulnUidsToCheck: Set<string>): Promise<DestinationRecord[]>;
60
+ getCommitShasFromAWSVulns(vulns: BaseAWSVuln[], ctx: StreamContext): [Set<string>, Record<string, BaseAWSVuln>];
61
+ getCommitShaDataFromAWSVulns(aws_vulns: BaseAWSVuln[], fc: FarosClient, ctx: StreamContext): Promise<[
62
+ Set<string>,
63
+ Record<string, BaseAWSVuln>,
64
+ Record<string, CicdArtifactKey>
65
+ ]>;
66
+ encodeURL(url: string): string;
59
67
  getCICDMappingsFromAWSV2(aws_vulns: AWSV2VulnerabilityData[], fc: FarosClient, ctx: StreamContext): Promise<DestinationRecord[]>;
60
- getUidFromAWSV2Vuln(vuln: AWSV2VulnerabilityData): string;
68
+ getUidFromAWSVuln(vuln: BaseAWSVuln): string;
61
69
  getVulnRecordsFromAwsV2(data: AWSV2VulnerabilityData[]): DestinationRecord[];
62
70
  combineAwsVulns(aws_v1_vulns: DestinationRecord[], aws_v2_vulns: DestinationRecord[], ctx: StreamContext): DestinationRecord[];
63
71
  getSecVulnerabilityRecordFromData(data: ExtendedVulnerabilityType): DestinationRecord;
@@ -31,6 +31,7 @@ class Vulnerabilities extends converter_1.Converter {
31
31
  this.awsV2ContainerNamesToUids = {};
32
32
  this.gitUidsToVulns = {};
33
33
  this.awsUidsToVulns = {};
34
+ this.duplicateAwsV2Uids = new Set();
34
35
  this.duplicateAwsUids = new Set();
35
36
  // We read from file synchronously to get query from file
36
37
  this.vcsRepositoryQuery = (0, utils_1.getQueryFromName)('vcsRepositoryQuery');
@@ -106,6 +107,13 @@ class Vulnerabilities extends converter_1.Converter {
106
107
  }
107
108
  vuln['description'] = vuln.securityAdvisory.description;
108
109
  this.addUIDToMapping(vuln.repositoryName, vuln.uid, this.repositoryNamesToUids);
110
+ const cveId = vuln.securityAdvisory.cveId
111
+ ? vuln.securityAdvisory.cveId
112
+ : '';
113
+ const ghsaId = vuln.securityAdvisory.ghsaId
114
+ ? vuln.securityAdvisory.ghsaId
115
+ : '';
116
+ vuln['externalIds'] = [cveId, ghsaId];
109
117
  vuln_data.push(this.getSecVulnerabilityRecordFromData(vuln));
110
118
  this.gitUidsToVulns[vuln.uid] = vuln;
111
119
  }
@@ -122,9 +130,11 @@ class Vulnerabilities extends converter_1.Converter {
122
130
  for (const finding of vuln.findings) {
123
131
  // We copy vuln data and add the finding data to it
124
132
  const new_vuln = { ...vuln };
125
- const cve_str = finding['name'] ? finding['name'] : '';
126
- const uid_addition = '|' + cve_str.split(' ')[0];
127
- new_vuln.uid += uid_addition;
133
+ // In the case of AWS vuln objects as provided by Vanta,
134
+ // the name field contains the CVE string at the beginning
135
+ const pre_cve_str = finding['name'] ? finding['name'] : '';
136
+ const cve_str = pre_cve_str.split(' ')[0];
137
+ new_vuln['externalIds'] = [cve_str];
128
138
  new_vuln['description'] = finding['description']
129
139
  ? finding['description']
130
140
  : 'No description found';
@@ -204,6 +214,8 @@ class Vulnerabilities extends converter_1.Converter {
204
214
  }
205
215
  async getVCSMappingsFromGit(gitRepoNamesToUIDs, fc, ctx) {
206
216
  // Faros Client is passed in as an argument in case we want to change it in the future
217
+ // In this function we associate the repo vulns to the repositories in faros.
218
+ // We can grab all the repositories from the names in the vuln data
207
219
  const vuln_data = [];
208
220
  const allRepoNames = Object.keys(gitRepoNamesToUIDs);
209
221
  const allRepoKeys = await this.getVCSRepositoriesFromNamesBatches(allRepoNames, fc, ctx, 100);
@@ -221,13 +233,18 @@ class Vulnerabilities extends converter_1.Converter {
221
233
  source: this.source,
222
234
  };
223
235
  const vuln = this.gitUidsToVulns[uid];
236
+ if (!vuln) {
237
+ ctx.logger.debug(`Could not find vulnerability with uid "${uid}" in gitUidsToVulns`);
238
+ continue;
239
+ }
224
240
  vuln_data.push({
225
241
  model: 'vcs_RepositoryVulnerability',
226
242
  record: {
227
243
  repository: repoKey,
228
244
  vulnerability: vulnKey,
229
- url: vuln.externalURL,
245
+ url: this.encodeURL(vuln.externalURL),
230
246
  dueAt: vuln.slaDeadline,
247
+ createdAt: vuln.createdAt,
231
248
  },
232
249
  });
233
250
  }
@@ -256,7 +273,41 @@ class Vulnerabilities extends converter_1.Converter {
256
273
  return 'Open';
257
274
  }
258
275
  }
259
- async getCICDMappingsFromAWS(fc, ctx) {
276
+ async getCICDMappingsFromAWSByCommitSha(fc, ctx) {
277
+ const aws_vulns = Object.values(this.awsUidsToVulns);
278
+ const [allCommitShas, commitShasToVulns, commitShaToArtifact] = await this.getCommitShaDataFromAWSVulns(aws_vulns, fc, ctx);
279
+ const res = [];
280
+ for (const commitSha of allCommitShas) {
281
+ const CicdArtifactKey = commitShaToArtifact[commitSha];
282
+ if (CicdArtifactKey) {
283
+ const vuln = commitShasToVulns[commitSha];
284
+ res.push({
285
+ model: 'cicd_ArtifactVulnerability',
286
+ record: {
287
+ artifact: CicdArtifactKey,
288
+ vulnerability: {
289
+ uid: this.getUidFromAWSVuln(vuln),
290
+ source: this.source,
291
+ },
292
+ url: this.encodeURL(vuln.externalURL),
293
+ dueAt: vuln.slaDeadline,
294
+ createdAt: vuln.createdAt,
295
+ acknowledgedAt: vuln.createdAt,
296
+ status: null,
297
+ },
298
+ });
299
+ }
300
+ }
301
+ // Now we get the list of vulns that we did not get cicd artifacts for
302
+ const missing_uids = new Set(Object.keys(this.awsUidsToVulns));
303
+ for (const vuln of Object.values(commitShasToVulns)) {
304
+ missing_uids.delete(vuln.uid);
305
+ }
306
+ ctx.logger.info(`Total count of missing uids: ${missing_uids.size} out of ` +
307
+ `${Object.keys(this.awsUidsToVulns).length} total AWS uids.`);
308
+ return [res, missing_uids];
309
+ }
310
+ async getCICDMappingsFromAWSByRepoName(fc, ctx, vulnUidsToCheck) {
260
311
  // We iterate through the key-value pairs of awsUidsToVulns
261
312
  // We get the repository name from the vuln, and we take the most
262
313
  // recent cicd_Artifact, rather than getting the cicd_Artifact by commit sha
@@ -265,6 +316,9 @@ class Vulnerabilities extends converter_1.Converter {
265
316
  const repoNames = new Set();
266
317
  const uidsToRepoNames = {};
267
318
  for (const [uid, vuln] of Object.entries(this.awsUidsToVulns)) {
319
+ if (!vulnUidsToCheck.has(uid)) {
320
+ continue;
321
+ }
268
322
  let repoName = vuln.repositoryName;
269
323
  if (!repoName) {
270
324
  ctx.logger.debug(`Could not find repository name for vulnerability with uid "${uid}"`);
@@ -280,13 +334,14 @@ class Vulnerabilities extends converter_1.Converter {
280
334
  uidsToRepoNames[uid] = repoName;
281
335
  }
282
336
  const repoKeys = await this.getAWSCicdArtifactsFromRepoNamesByBatches(Array.from(repoNames), fc, ctx);
283
- const repoNamesToKeys = {};
337
+ // Note - for cicd Repositories, the uid is the repository name
338
+ const repoUidsToKeys = {};
284
339
  for (const repoKey of repoKeys) {
285
- repoNamesToKeys[repoKey.repository.uid] = repoKey;
340
+ repoUidsToKeys[repoKey.repository.uid] = repoKey;
286
341
  }
287
342
  for (const [uid, vuln] of Object.entries(this.awsUidsToVulns)) {
288
343
  const repoName = uidsToRepoNames[uid];
289
- const repoKey = repoNamesToKeys[repoName];
344
+ const repoKey = repoUidsToKeys[repoName];
290
345
  res.push({
291
346
  model: 'cicd_ArtifactVulnerability',
292
347
  record: {
@@ -295,7 +350,7 @@ class Vulnerabilities extends converter_1.Converter {
295
350
  uid: uid,
296
351
  source: this.source,
297
352
  },
298
- url: vuln.externalURL,
353
+ url: this.encodeURL(vuln.externalURL),
299
354
  dueAt: vuln.slaDeadline,
300
355
  createdAt: vuln.createdAt,
301
356
  acknowledgedAt: vuln.createdAt,
@@ -304,7 +359,8 @@ class Vulnerabilities extends converter_1.Converter {
304
359
  }
305
360
  return res;
306
361
  }
307
- getCommitShasFromAWSV2Vulns(vulns, ctx) {
362
+ getCommitShasFromAWSVulns(vulns, ctx) {
363
+ //
308
364
  const seenUids = new Set();
309
365
  const allCommitShas = new Set();
310
366
  const commitShasToVulns = {};
@@ -312,18 +368,17 @@ class Vulnerabilities extends converter_1.Converter {
312
368
  let totalMissed = 0;
313
369
  for (const vuln of vulns) {
314
370
  // First we check for dup uids
315
- const uid = this.getUidFromAWSV2Vuln(vuln);
371
+ const uid = this.getUidFromAWSVuln(vuln);
316
372
  const title = vuln.displayName ? vuln.displayName : uid;
317
373
  if (seenUids.has(uid)) {
318
- ctx.logger.debug('Found duplicate vuln id: ' + uid);
319
- this.duplicateAwsUids.add(uid);
374
+ ctx.logger.debug('Found duplicate vuln id (commit sha from AWS V2): ' + uid);
375
+ this.duplicateAwsV2Uids.add(uid);
320
376
  continue;
321
377
  }
322
378
  seenUids.add(uid);
323
379
  // We need to do the following for each vuln:
324
380
  // Get the image tags. For each image tag, check if it is a github commit sha
325
- // If you get the github commit sha, query the cicd_Artifact table by commit sha
326
- // If you get a cicd_Artifact, add the mapping to the cicd_ArtifactVulnerability table
381
+ // if it is, add it to the set of commit shas to use later to query for cicd artifacts
327
382
  const imageTags = vuln.imageTags;
328
383
  if (!imageTags || imageTags.length === 0) {
329
384
  totalMissed += 1;
@@ -349,14 +404,36 @@ class Vulnerabilities extends converter_1.Converter {
349
404
  ctx.logger.info(`For commit shas, total missed: ${totalMissed}, total vulns: ${vulns.length}`);
350
405
  return [allCommitShas, commitShasToVulns];
351
406
  }
352
- async getCICDMappingsFromAWSV2(aws_vulns, fc, ctx) {
353
- // Faros Client is passed in as an argument in case we want to change it in the future
354
- const [allCommitShas, commitShasToVulns] = this.getCommitShasFromAWSV2Vulns(aws_vulns, ctx);
407
+ async getCommitShaDataFromAWSVulns(aws_vulns, fc, ctx) {
408
+ const [allCommitShas, commitShasToVulns] = this.getCommitShasFromAWSVulns(aws_vulns, ctx);
355
409
  const cicdArtifactKeys = await this.getCICDArtifactFromCommitShaBatches(allCommitShas, fc, ctx);
356
410
  const commitShaToArtifact = {};
357
411
  for (const artifact of cicdArtifactKeys) {
358
412
  commitShaToArtifact[artifact.uid] = artifact;
359
413
  }
414
+ return [allCommitShas, commitShasToVulns, commitShaToArtifact];
415
+ }
416
+ encodeURL(url) {
417
+ // We split by 'findingArn=' and encode the second part and add to the first:
418
+ const split = url.split('findingArn=');
419
+ if (split.length !== 2) {
420
+ return encodeURIComponent(url);
421
+ }
422
+ const arn = split[1];
423
+ const encodedArn = encodeURIComponent(arn);
424
+ const encodedUrl = split[0] + 'findingArn=' + encodedArn;
425
+ return encodedUrl;
426
+ }
427
+ async getCICDMappingsFromAWSV2(aws_vulns, fc, ctx) {
428
+ // Within this function, we first get all the potential commit shas from
429
+ // the AWS V2 Container Vulnerability data. We create a mapping from
430
+ // commit Sha to Vuln Data in order to use it later.
431
+ // We then get the cicd_Artifact keys from the commit shas we collected.
432
+ // Within the cicdArtifactKeys, note that the "uid" is the commit sha for the artifact.
433
+ // Finally, for each commit sha we have, we can now create an association between
434
+ // the cicdArtifact and the AWS V2 container vulnerability.
435
+ // * Sidenote: Faros Client is passed in as an argument in case we want to change it in the future
436
+ const [allCommitShas, commitShasToVulns, commitShaToArtifact] = await this.getCommitShaDataFromAWSVulns(aws_vulns, fc, ctx);
360
437
  const res = [];
361
438
  for (const commitSha of allCommitShas) {
362
439
  const CicdArtifactKey = commitShaToArtifact[commitSha];
@@ -367,10 +444,10 @@ class Vulnerabilities extends converter_1.Converter {
367
444
  record: {
368
445
  artifact: CicdArtifactKey,
369
446
  vulnerability: {
370
- uid: this.getUidFromAWSV2Vuln(vuln),
447
+ uid: this.getUidFromAWSVuln(vuln),
371
448
  source: this.source,
372
449
  },
373
- url: vuln.externalURL,
450
+ url: this.encodeURL(vuln.externalURL),
374
451
  dueAt: vuln.remediateBy,
375
452
  createdAt: vuln.createdAt,
376
453
  acknowledgedAt: vuln.createdAt,
@@ -384,7 +461,7 @@ class Vulnerabilities extends converter_1.Converter {
384
461
  }
385
462
  return res;
386
463
  }
387
- getUidFromAWSV2Vuln(vuln) {
464
+ getUidFromAWSVuln(vuln) {
388
465
  // We keep the uid retreival in this function because if we choose to modify
389
466
  // the uid in the future, it will remain consistent in all cases.
390
467
  return vuln.uid;
@@ -404,7 +481,7 @@ class Vulnerabilities extends converter_1.Converter {
404
481
  else {
405
482
  sevString = sev.toString();
406
483
  }
407
- const uid = this.getUidFromAWSV2Vuln(vuln);
484
+ const uid = this.getUidFromAWSVuln(vuln);
408
485
  const vuln_copy = {
409
486
  uid,
410
487
  createdAt: vuln.createdAt,
@@ -412,30 +489,58 @@ class Vulnerabilities extends converter_1.Converter {
412
489
  severity: sevString,
413
490
  description: vuln.description,
414
491
  displayName: vuln.displayName,
492
+ vulnerabilityIds: [vuln.externalVulnerabilityId],
415
493
  };
416
494
  vuln_data.push(this.getSecVulnerabilityRecordFromData(vuln_copy));
417
495
  }
418
496
  return vuln_data;
419
497
  }
420
498
  combineAwsVulns(aws_v1_vulns, aws_v2_vulns, ctx) {
421
- const seenUids = new Set();
499
+ // We want to remove the vulns that appear in both AWS v1 and AWS v2 lists
500
+ // keeping the AWS v2 vuln if there is an overlap
501
+ const seenV2Uids = new Set();
502
+ const seenV1Uids = new Set();
422
503
  const combined = [];
423
- for (const vuln_list of [aws_v2_vulns, aws_v1_vulns]) {
424
- for (const vuln of vuln_list) {
425
- if (!seenUids.has(vuln.record.uid)) {
426
- combined.push(vuln);
427
- seenUids.add(vuln.record.uid);
504
+ let v2Overlap = 0;
505
+ let v1v2Overlap = 0;
506
+ let v1Overlap = 0;
507
+ for (const vuln of aws_v2_vulns) {
508
+ if (!seenV2Uids.has(vuln.record.uid)) {
509
+ combined.push(vuln);
510
+ seenV2Uids.add(vuln.record.uid);
511
+ }
512
+ else {
513
+ v2Overlap += 1;
514
+ this.duplicateAwsUids.add(vuln.record.uid);
515
+ }
516
+ }
517
+ for (const vuln of aws_v1_vulns) {
518
+ if (!seenV2Uids.has(vuln.record.uid) &&
519
+ !seenV1Uids.has(vuln.record.uid)) {
520
+ combined.push(vuln);
521
+ seenV1Uids.add(vuln.record.uid);
522
+ }
523
+ else {
524
+ if (seenV2Uids.has(vuln.record.uid)) {
525
+ v1v2Overlap += 1;
428
526
  }
429
527
  else {
430
- ctx.logger.info('Found duplicate vuln id: ' + vuln.record.uid);
431
- this.duplicateAwsUids.add(vuln.record.uid);
528
+ v1Overlap += 1;
432
529
  }
530
+ this.duplicateAwsUids.add(vuln.record.uid);
433
531
  }
434
532
  }
533
+ // We expect the overlap to only exist in v1/v2 overlap, rather
534
+ // than overlapping within their categories
535
+ let log_str = `AWS v1 and v2 vuln overlap: ${v1v2Overlap}`;
536
+ log_str += `, AWS v2 vuln overlap: ${v2Overlap}`;
537
+ log_str += `, AWS v1 vuln overlap: ${v1Overlap}.\n`;
538
+ log_str += `Total duplicate AWS UIDs (after combining AWS v1 and v2): ${this.duplicateAwsUids.size}`;
539
+ ctx.logger.info(log_str);
435
540
  return combined;
436
541
  }
437
542
  getSecVulnerabilityRecordFromData(data) {
438
- // The essential fields (ones which cannot be null) are uid and source
543
+ // The required fields (ones which cannot be null) are uid and source
439
544
  if (!data.uid || !this.source) {
440
545
  throw new Error('Vulnerability data must have a uid and source. Data: ' +
441
546
  JSON.stringify(data) +
@@ -449,7 +554,7 @@ class Vulnerabilities extends converter_1.Converter {
449
554
  title: data.displayName,
450
555
  description: data.description,
451
556
  severity: data.severity,
452
- url: data.externalURL,
557
+ url: this.encodeURL(data.externalURL),
453
558
  discoveredAt: data.createdAt,
454
559
  vulnerabilityIds: data.externalIds,
455
560
  },
@@ -575,20 +680,29 @@ class Vulnerabilities extends converter_1.Converter {
575
680
  this.nUpdatedCicdVulns = await this.updateCICDVulnsToResolved(ctx);
576
681
  }
577
682
  async onProcessingComplete(ctx) {
578
- // We'll need to grab vcs and cicd data from the graph to match the vulns
579
- // to the correct parts
580
- const total_vulns_to_process = this.getTotalNumberOfRecords();
683
+ // Within the onProcessingComplete function, we perform queries to match
684
+ // vulnerabilities to their associated vcs repositories and cicd artifacts.
685
+ // In order to do this, we need to find the key fields which we can
686
+ // use to query the graph. In the case of vcs Repositories, we use the
687
+ // repository name. In the case of cicd artifacts, we use the commit sha,
688
+ // and if we cannot get the commit sha for cicd artifacts, we use the cicd
689
+ // repository name. We then create the associations between the vulnerabilities
690
+ // and the vcs repositories and cicd artifacts.
691
+ // Additionally, we update the existing vulnerabilities in the graph to be resolved
692
+ // if they are not in the current set of vulnerabilities.
581
693
  ctx.logger.debug('Running onProcessing Complete. Total number of records to process: ' +
582
- total_vulns_to_process);
694
+ this.getTotalNumberOfRecords());
583
695
  const res = [];
584
- // Getting sec_Vulnerability records
696
+ // Getting sec_Vulnerability records (no association)
697
+ // We combine the records from AWS and AWS V2 because there
698
+ // is overlap between the two lists.
585
699
  res.push(...this.getVulnRecordsFromGit(this.git_vulns));
586
700
  const aws_v1_vulns = this.getVulnRecordsFromAws(this.aws_vulns);
587
701
  const aws_v2_vulns = this.getVulnRecordsFromAwsV2(this.awsv2_vulns);
588
702
  const combined_aws_vulns = this.combineAwsVulns(aws_v1_vulns, aws_v2_vulns, ctx);
589
703
  res.push(...combined_aws_vulns);
590
704
  // In the following functions we query Faros for the related VCS and CICD data.
591
- // Each vuln needs to be associated with either a VCS repository or a CICD artifact.
705
+ // Ideally, each vuln will be associated with either a VCS repository or a CICD artifact.
592
706
  if (!ctx.farosClient) {
593
707
  throw new Error('Faros client not found in context');
594
708
  }
@@ -598,7 +712,11 @@ class Vulnerabilities extends converter_1.Converter {
598
712
  // Getting cicd_ArtifactVulnerability records
599
713
  const cicdArtifactMappingsAWSV2 = await this.getCICDMappingsFromAWSV2(this.awsv2_vulns, ctx.farosClient, ctx);
600
714
  res.push(...cicdArtifactMappingsAWSV2);
601
- const cicdArtifactMappingsAWS = await this.getCICDMappingsFromAWS(ctx.farosClient, ctx);
715
+ // For AWS v1 vulns, we try to get the associations by commit sha first,
716
+ // and then by repository name if we cannot find the commit sha.
717
+ const [cicdArtifactMappingsAWSV1, missingAWSCommitShaUids] = await this.getCICDMappingsFromAWSByCommitSha(ctx.farosClient, ctx);
718
+ res.push(...cicdArtifactMappingsAWSV1);
719
+ const cicdArtifactMappingsAWS = await this.getCICDMappingsFromAWSByRepoName(ctx.farosClient, ctx, missingAWSCommitShaUids);
602
720
  res.push(...cicdArtifactMappingsAWS);
603
721
  await this.updateExistingVulnerabilities(ctx);
604
722
  this.printReport(ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"vulnerabilities.js","sourceRoot":"","sources":["../../../src/converters/vanta/vulnerabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vulnerabilities.js","sourceRoot":"","sources":["../../../src/converters/vanta/vulnerabilities.ts"],"names":[],"mappings":";;;AAGA,4CAKsB;AAYtB,mCAAmE;AAEnE;;;;EAIE;AAEF,MAAsB,eAAgB,SAAQ,qBAAS;IAAvD;;QACE,WAAM,GAAG,OAAO,CAAC;QACR,sBAAiB,GAAoC;YAC5D,mBAAmB;YACnB,6BAA6B;YAC7B,4BAA4B;SAC7B,CAAC;QACF,cAAS,GAA8B,EAAE,CAAC;QAC1C,cAAS,GAA2B,EAAE,CAAC;QACvC,gBAAW,GAA6B,EAAE,CAAC;QAC3C,oBAAe,GAAgC,EAAE,CAAC;QAClD,gBAAW,GAA4B;YACrC,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,0BAAqB,GAA6B,EAAE,CAAC;QACrD,8BAAyB,GAA6B,EAAE,CAAC;QACzD,mBAAc,GAA4C,EAAE,CAAC;QAC7D,mBAAc,GAAyC,EAAE,CAAC;QAC1D,uBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC5C,qBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1C,yDAAyD;QACzD,uBAAkB,GAAG,IAAA,wBAAgB,EAAC,oBAAoB,CAAC,CAAC;QAC5D,iCAA4B,GAAG,IAAA,wBAAgB,EAC7C,8BAA8B,CAC/B,CAAC;QACF,gCAA2B,GAAG,IAAA,wBAAgB,EAAC,6BAA6B,CAAC,CAAC;QAC9E,oCAA+B,GAAG,IAAA,wBAAgB,EAChD,iCAAiC,CAClC,CAAC;QACF,mCAA8B,GAAG,IAAA,wBAAgB,EAC/C,gCAAgC,CACjC,CAAC;QACF,8CAAyC,GAAgB,IAAI,GAAG,EAAE,CAAC;QACnE,4CAAuC,GAAgB,IAAI,GAAG,EAAE,CAAC;QACjE,qCAAgC,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1D,oCAA+B,GAAgB,IAAI,GAAG,EAAE,CAAC;QACzD,uCAAkC,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC5D,sCAAiC,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC3D,kCAA6B,GAAgB,IAAI,GAAG,EAAE,CAAC;QACvD,oCAA+B,GAAgB,IAAI,GAAG,EAAE,CAAC;QACzD,qBAAgB,GAAW,CAAC,CAAC;QAC7B,sBAAiB,GAAW,CAAC,CAAC;QAC9B,0BAAqB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC/C,mBAAc,GAAW,CAAC,CAAC;QAC3B,kBAAa,GAAgB,IAAI,GAAG,CAAC;YACnC,sBAAsB;YACtB,sBAAsB;SACvB,CAAC,CAAC;QACH,sBAAiB,GAAW,CAAC,CAAC;QAC9B,gBAAW,GAAkB,GAAG,CAAC;QACjC,oBAAe,GAAkB,IAAI,CAAC;IA85BxC,CAAC;IA55BC,gDAAgD;IAChD,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAqB;;QAErB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAI,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,0CAAE,SAAS,CAAA,EAAE,CAAC;YACvE,+EAA+E;YAC/E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,0CAAE,SAAS,CAAC,CAAC;YACzE,IAAI,WAAW,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,MAAK,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAoC,CAC3D,CAAC;QACJ,CAAC;aAAM,IAAI,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,MAAK,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAiC,CACxD,CAAC;QACJ,CAAC;aAAM,IAAI,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAS,MAAK,OAAO,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,SAAmC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe,CACb,IAAY,EACZ,GAAW,EACX,OAAiC;QAEjC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,IAA+B;QACnD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,uDAAuD;gBACvD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACxD,IAAI,CAAC,eAAe,CAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,qBAAqB,CAC3B,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;gBACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK;gBAC7B,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBACzC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBAC9B,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,SAAS,CAAC,IAAI,CACZ,IAAI,CAAC,iCAAiC,CACpC,IAAiC,CAClC,CACF,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qBAAqB,CAAC,IAA4B;QAChD,8DAA8D;QAC9D,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,mDAAmD;gBACnD,MAAM,QAAQ,GAAG,EAAC,GAAG,IAAI,EAAC,CAAC;gBAC3B,wDAAwD;gBACxD,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;oBAC9C,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;oBACxB,CAAC,CAAC,sBAAsB,CAAC;gBAC3B,SAAS,CAAC,IAAI,CACZ,IAAI,CAAC,iCAAiC,CACpC,QAAqC,CACtC,CACF,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAe,EACf,EAAe,EACf,GAAkB,EAClB,SAAiB,EACjB,IAI8B;QAE9B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,uCAAuC;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,YAAsB,EACtB,EAAe,EACf,GAAkB;QAElB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE;YAC9D,YAAY;YACZ,KAAK,EAAE,YAAY,CAAC,MAAM;SAC3B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,+DAA+D,YAAY,GAAG,CAC/E,CAAC;YACF,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAClC,UAAoB,EACpB,EAAe,EACf,GAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,4BAA4B,EAAE;YACxE,UAAU;YACV,KAAK,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,mEAAmE,UAAU,GAAG,CACjF,CAAC;YACF,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACzB,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,GAAG,CAAC,CAC9C,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,kCAAkC,CACtC,YAAsB,EACtB,EAAe,EACf,GAAkB,EAClB,SAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,YAAY,EACZ,EAAE,EACF,GAAG,EACH,SAAS,EACT,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5C,CAAC;QACF,OAAO,MAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,mCAAmC,CACvC,aAA0B,EAC1B,EAAe,EACf,GAAkB;QAElB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,UAAU,EACV,EAAE,EACF,GAAG,EACH,GAAG,EACH,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,yCAAyC,CAC7C,YAAsB,EACtB,EAAe,EACf,GAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,YAAY,EACZ,EAAE,EACF,GAAG,EACH,GAAG,EACH,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;QACF,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,SAAmB,EACnB,EAAe,EACf,GAAkB;QAElB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE;YACvE,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,MAAM;SACxB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,wEAAwE,SAAS,GAAG,CACrF,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,kBAA4C,EAC5C,EAAe,EACf,GAAkB;QAElB,sFAAsF;QACtF,6EAA6E;QAC7E,mEAAmE;QACnE,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAC/D,YAAY,EACZ,EAAE,EACF,GAAG,EACH,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7D,MAAM,aAAa,GAA+B,EAAE,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG;wBACd,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,IAAI,CAAC,MAAM;qBACpB,CAAC;oBACF,MAAM,IAAI,GAA4B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,0CAA0C,GAAG,qBAAqB,CACnE,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC;wBACb,KAAK,EAAE,6BAA6B;wBACpC,MAAM,EAAE;4BACN,UAAU,EAAE,OAAO;4BACnB,aAAa,EAAE,OAAO;4BACtB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;4BACrC,KAAK,EAAE,IAAI,CAAC,WAAW;4BACvB,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wBAAwB,CAAC,IAA4B;;QACnD,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,0BAA0B,CAAC,IAA4B;;QACrD,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,iCAAiC,CACrC,EAAe,EACf,GAAkB;QAElB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,GAC3D,MAAM,IAAI,CAAC,4BAA4B,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAyB,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK,EAAE,4BAA4B;oBACnC,MAAM,EAAE;wBACN,QAAQ,EAAE,eAAe;wBACzB,aAAa,EAAE;4BACb,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;4BACjC,MAAM,EAAE,IAAI,CAAC,MAAM;yBACpB;wBACD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;wBACrC,KAAK,EAAE,IAAI,CAAC,WAAW;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,cAAc,EAAE,IAAI,CAAC,SAAS;wBAC9B,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,sEAAsE;QACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,gCAAgC,YAAY,CAAC,IAAI,UAAU;YACzD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,kBAAkB,CAC/D,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,EAAe,EACf,GAAkB,EAClB,eAA4B;QAE5B,2DAA2D;QAC3D,iEAAiE;QACjE,4EAA4E;QAC5E,sFAAsF;QACtF,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;QACzC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;YACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,8DAA8D,GAAG,GAAG,CACrE,CAAC;gBACF,IAAI,CAAC,yCAAyC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,4EAA4E;YAC5E,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAClC,CAAC;QACD,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,yCAAyC,CAClD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACrB,EAAE,EACF,GAAG,CACJ,CAAC;QACJ,+DAA+D;QAC/D,MAAM,cAAc,GAAoC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACnD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,4BAA4B;gBACnC,MAAM,EAAE;oBACN,QAAQ,EAAE,OAAO;oBACjB,aAAa,EAAE;wBACb,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,IAAI,CAAC,MAAM;qBACpB;oBACD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;oBACrC,KAAK,EAAE,IAAI,CAAC,WAAW;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,cAAc,EAAE,IAAI,CAAC,SAAS;iBAC/B;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,yBAAyB,CACvB,KAAoB,EACpB,GAAkB;QAElB,EAAE;QACF,MAAM,QAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QACxC,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC7C,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,0BAA0B,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1D,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,8BAA8B;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;YACxD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,oDAAoD,GAAG,GAAG,CAC3D,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAElB,6CAA6C;YAC7C,6EAA6E;YAC7E,sFAAsF;YACtF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,WAAW,IAAI,CAAC,CAAC;gBACjB,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,IAAA,gCAAwB,EAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,SAAS,GAAG,GAAG,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,WAAW,IAAI,CAAC,CAAC;gBACjB,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7B,iBAAiB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,qFAAqF,KAAK,CAAC,IAAI,CAC7F,0BAA0B,CAC3B,IAAI,CACN,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,kCAAkC,WAAW,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAC9E,CAAC;QACF,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,SAAwB,EACxB,EAAe,EACf,GAAkB;QAIlB,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAAC,yBAAyB,CACvE,SAAS,EACT,GAAG,CACJ,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mCAAmC,CACrE,aAAa,EACb,EAAE,EACF,GAAG,CACJ,CAAC;QACF,MAAM,mBAAmB,GAAoC,EAAE,CAAC;QAChE,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,6EAA6E;QAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,UAAU,GAAW,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,UAAU,GAAW,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,UAAU,CAAC;QACjE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,SAAmC,EACnC,EAAe,EACf,GAAkB;QAElB,wEAAwE;QACxE,oEAAoE;QACpE,oDAAoD;QACpD,wEAAwE;QACxE,uFAAuF;QACvF,iFAAiF;QACjF,2DAA2D;QAC3D,kGAAkG;QAClG,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,GAC3D,MAAM,IAAI,CAAC,4BAA4B,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAA2B,CAAC;gBACpE,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK,EAAE,4BAA4B;oBACnC,MAAM,EAAE;wBACN,QAAQ,EAAE,eAAe;wBACzB,aAAa,EAAE;4BACb,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;4BACjC,MAAM,EAAE,IAAI,CAAC,MAAM;yBACpB;wBACD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;wBACrC,KAAK,EAAE,IAAI,CAAC,WAAW;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,cAAc,EAAE,IAAI,CAAC,SAAS;wBAC9B,MAAM,EAAE;4BACN,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;4BAC/C,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;yBAC5C;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iBAAiB,CAAC,IAAiB;QACjC,4EAA4E;QAC5E,iEAAiE;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,uBAAuB,CAAC,IAA8B;QACpD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,SAAS,GAA8B;gBAC3C,GAAG;gBACH,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC;aACjD,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CACb,YAAiC,EACjC,YAAiC,EACjC,GAAkB;QAElB,0EAA0E;QAC1E,iDAAiD;QACjD,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IACE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAChC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAChC,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,WAAW,IAAI,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,SAAS,IAAI,CAAC,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,+DAA+D;QAC/D,2CAA2C;QAC3C,IAAI,OAAO,GAAG,+BAA+B,WAAW,EAAE,CAAC;QAC3D,OAAO,IAAI,0BAA0B,SAAS,EAAE,CAAC;QACjD,OAAO,IAAI,0BAA0B,SAAS,KAAK,CAAC;QACpD,OAAO,IAAI,6DAA6D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iCAAiC,CAC/B,IAA+B;QAE/B,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,uDAAuD;gBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;gBACrC,YAAY,EAAE,IAAI,CAAC,SAAS;gBAC5B,gBAAgB,EAAE,IAAI,CAAC,WAAW;aACnC;SACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,GAAkB;QAC5B,MAAM,UAAU,GAAG;YACjB,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC7C,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;YAC7C,0CAA0C,EACxC,IAAI,CAAC,yCAAyC,CAAC,IAAI;YACrD,wCAAwC,EACtC,IAAI,CAAC,uCAAuC,CAAC,IAAI;YACnD,iCAAiC,EAC/B,IAAI,CAAC,gCAAgC,CAAC,IAAI;YAC5C,gCAAgC,EAC9B,IAAI,CAAC,+BAA+B,CAAC,IAAI;YAC3C,mCAAmC,EACjC,IAAI,CAAC,kCAAkC,CAAC,IAAI;YAC9C,kCAAkC,EAChC,IAAI,CAAC,iCAAiC,CAAC,IAAI;YAC7C,8BAA8B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI;YACvE,gCAAgC,EAC9B,IAAI,CAAC,+BAA+B,CAAC,IAAI;YAC3C,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI;YACvD,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;SAC3C,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,sCAAsC;YACpC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,GAAG,EACH,KAAa,EACb,GAAW;QAEX,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE;YACrD,KAAK,EAAE,KAAK;YACZ,EAAE,EAAE,EAAE;SACP,CAAC,CAAC;QACH,IAAI,YAAY,GAAU,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,0CAA0C;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC1B,OAAO,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE;gBACjD,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,qCAAqC,CACzC,GAAkB,EAClB,KAAa,EACb,GAAW;;QAEX,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,gBAAgB,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,0CAAE,GAAG;gBAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,GAAkB,EAClB,GAAa,EACb,UAAkB,EAClB,YAAoB,EACpB,UAAkB,EAClB,iBAAyB;QAEzB,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACvD,IAAI,cAAc,GAAG,YAAY,YAAY,GAAG,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrE,cAAc,IAAI,WAAW,CAAC,KAAK,UAAU,uBAAuB,GAAG,CAAC,CAAC,CAAC,2BAA2B,UAAU,sBAAsB,CAAC;YACxI,CAAC;YACD,cAAc,IAAI,GAAG,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YACzD,0CAA0C;YAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,GAAkB;QAC/C,MAAM,yCAAyC,GAC7C,MAAM,IAAI,CAAC,qCAAqC,CAC9C,GAAG,EACH,IAAI,CAAC,+BAA+B,EACpC,6BAA6B,CAC9B,CAAC;QACJ,MAAM,iBAAiB,GAAgB,IAAI,GAAG,CAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACjC,CAAC;QACF,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,cAAc,IAAI,yCAAyC,EAAE,CAAC;YACvE,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,qDAAqD;gBACrD,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,UAAU,yCAAyC,CAAC,MAAM,qCAAqC,qBAAqB,CAAC,MAAM,iDAAiD,CAC7K,CAAC;QACF,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,oBAAoB,CAC7B,GAAG,EACH,qBAAqB,EACrB,OAAO,EACP,uBAAuB,EACvB,oCAAoC,EACpC,EAAE,CACH,CAAC;QACF,OAAO,qBAAqB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,GAAkB;QAChD,MAAM,wCAAwC,GAC5C,MAAM,IAAI,CAAC,qCAAqC,CAC9C,GAAG,EACH,IAAI,CAAC,8BAA8B,EACnC,4BAA4B,CAC7B,CAAC;QACJ,MAAM,iBAAiB,GAAgB,IAAI,GAAG,CAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACjC,CAAC;QACF,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,cAAc,IAAI,wCAAwC,EAAE,CAAC;YACtE,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,qDAAqD;gBACrD,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,UAAU,wCAAwC,CAAC,MAAM,yCAAyC,qBAAqB,CAAC,MAAM,iDAAiD,CAChL,CAAC;QACF,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,oBAAoB,CAC7B,GAAG,EACH,qBAAqB,EACrB,OAAO,EACP,uBAAuB,EACvB,mCAAmC,EACnC,EAAE,CACH,CAAC;QACF,OAAO,qBAAqB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,GAAkB;QACpD,sFAAsF;QACtF,kFAAkF;QAClF,wFAAwF;QACxF,wFAAwF;QACxF,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,GAAkB;QAElB,wEAAwE;QACxE,2EAA2E;QAC3E,mEAAmE;QACnE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,+EAA+E;QAC/E,+CAA+C;QAC/C,mFAAmF;QACnF,yDAAyD;QACzD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,qEAAqE;YACnE,IAAI,CAAC,uBAAuB,EAAE,CACjC,CAAC;QAEF,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,qDAAqD;QACrD,2DAA2D;QAC3D,oCAAoC;QACpC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAC7C,YAAY,EACZ,YAAY,EACZ,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAEhC,+EAA+E;QAC/E,yFAAyF;QACzF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,8CAA8C;QAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAClD,IAAI,CAAC,qBAAqB,EAC1B,GAAG,CAAC,WAAW,EACf,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAEzB,6CAA6C;QAC7C,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACnE,IAAI,CAAC,WAAW,EAChB,GAAG,CAAC,WAAW,EACf,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAC;QAEvC,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,GACxD,MAAM,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACrE,GAAG,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAC;QAEvC,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,gCAAgC,CACzE,GAAG,CAAC,WAAW,EACf,GAAG,EACH,uBAAuB,CACxB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAErC,MAAM,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAn9BD,0CAm9BC"}