@protontech/drive-sdk 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/crypto/driveCrypto.d.ts +11 -0
  2. package/dist/crypto/driveCrypto.js +20 -7
  3. package/dist/crypto/driveCrypto.js.map +1 -1
  4. package/dist/crypto/interface.d.ts +10 -1
  5. package/dist/crypto/openPGPCrypto.d.ts +18 -2
  6. package/dist/crypto/openPGPCrypto.js +25 -6
  7. package/dist/crypto/openPGPCrypto.js.map +1 -1
  8. package/dist/diagnostic/telemetry.d.ts +1 -1
  9. package/dist/diagnostic/telemetry.js +1 -1
  10. package/dist/diagnostic/telemetry.js.map +1 -1
  11. package/dist/interface/download.d.ts +46 -0
  12. package/dist/interface/index.d.ts +2 -2
  13. package/dist/interface/index.js.map +1 -1
  14. package/dist/interface/nodes.d.ts +26 -1
  15. package/dist/interface/nodes.js.map +1 -1
  16. package/dist/interface/telemetry.d.ts +5 -2
  17. package/dist/interface/telemetry.js.map +1 -1
  18. package/dist/internal/apiService/apiService.js +1 -1
  19. package/dist/internal/apiService/apiService.js.map +1 -1
  20. package/dist/internal/apiService/driveTypes.d.ts +78 -165
  21. package/dist/internal/apiService/index.d.ts +1 -1
  22. package/dist/internal/apiService/index.js +2 -2
  23. package/dist/internal/apiService/index.js.map +1 -1
  24. package/dist/internal/apiService/transformers.d.ts +1 -1
  25. package/dist/internal/apiService/transformers.js +2 -2
  26. package/dist/internal/apiService/transformers.js.map +1 -1
  27. package/dist/internal/download/blockIndex.d.ts +11 -0
  28. package/dist/internal/download/blockIndex.js +35 -0
  29. package/dist/internal/download/blockIndex.js.map +1 -0
  30. package/dist/internal/download/blockIndex.test.d.ts +1 -0
  31. package/dist/internal/download/blockIndex.test.js +147 -0
  32. package/dist/internal/download/blockIndex.test.js.map +1 -0
  33. package/dist/internal/download/fileDownloader.d.ts +6 -2
  34. package/dist/internal/download/fileDownloader.js +83 -6
  35. package/dist/internal/download/fileDownloader.js.map +1 -1
  36. package/dist/internal/download/fileDownloader.test.js +69 -4
  37. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  38. package/dist/internal/download/interface.d.ts +4 -4
  39. package/dist/internal/download/seekableStream.d.ts +80 -0
  40. package/dist/internal/download/seekableStream.js +163 -0
  41. package/dist/internal/download/seekableStream.js.map +1 -0
  42. package/dist/internal/download/seekableStream.test.d.ts +1 -0
  43. package/dist/internal/download/seekableStream.test.js +149 -0
  44. package/dist/internal/download/seekableStream.test.js.map +1 -0
  45. package/dist/internal/download/telemetry.js +1 -1
  46. package/dist/internal/download/telemetry.js.map +1 -1
  47. package/dist/internal/download/telemetry.test.js +7 -7
  48. package/dist/internal/download/telemetry.test.js.map +1 -1
  49. package/dist/internal/errors.d.ts +1 -1
  50. package/dist/internal/errors.js +7 -1
  51. package/dist/internal/errors.js.map +1 -1
  52. package/dist/internal/errors.test.js +44 -10
  53. package/dist/internal/errors.test.js.map +1 -1
  54. package/dist/internal/events/index.js +1 -1
  55. package/dist/internal/events/index.js.map +1 -1
  56. package/dist/internal/nodes/apiService.js +16 -3
  57. package/dist/internal/nodes/apiService.js.map +1 -1
  58. package/dist/internal/nodes/apiService.test.js +43 -7
  59. package/dist/internal/nodes/apiService.test.js.map +1 -1
  60. package/dist/internal/nodes/cache.js +9 -2
  61. package/dist/internal/nodes/cache.js.map +1 -1
  62. package/dist/internal/nodes/cache.test.js +6 -1
  63. package/dist/internal/nodes/cache.test.js.map +1 -1
  64. package/dist/internal/nodes/cryptoService.d.ts +4 -1
  65. package/dist/internal/nodes/cryptoService.js +66 -16
  66. package/dist/internal/nodes/cryptoService.js.map +1 -1
  67. package/dist/internal/nodes/cryptoService.test.js +129 -46
  68. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  69. package/dist/internal/nodes/extendedAttributes.d.ts +2 -1
  70. package/dist/internal/nodes/extendedAttributes.js +27 -1
  71. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  72. package/dist/internal/nodes/extendedAttributes.test.js +59 -6
  73. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  74. package/dist/internal/nodes/index.test.js +1 -1
  75. package/dist/internal/nodes/index.test.js.map +1 -1
  76. package/dist/internal/nodes/interface.d.ts +18 -2
  77. package/dist/internal/nodes/nodesAccess.js +11 -1
  78. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  79. package/dist/internal/nodes/nodesManagement.js +1 -1
  80. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  81. package/dist/internal/nodes/nodesRevisions.d.ts +4 -3
  82. package/dist/internal/nodes/nodesRevisions.js +2 -2
  83. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  84. package/dist/internal/shares/cryptoService.js +7 -4
  85. package/dist/internal/shares/cryptoService.js.map +1 -1
  86. package/dist/internal/shares/cryptoService.test.js +5 -3
  87. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  88. package/dist/internal/sharing/apiService.js +5 -5
  89. package/dist/internal/sharing/apiService.js.map +1 -1
  90. package/dist/internal/sharing/cryptoService.js +8 -5
  91. package/dist/internal/sharing/cryptoService.js.map +1 -1
  92. package/dist/internal/sharing/cryptoService.test.js +7 -4
  93. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  94. package/dist/internal/upload/telemetry.js +2 -2
  95. package/dist/internal/upload/telemetry.js.map +1 -1
  96. package/dist/internal/upload/telemetry.test.js +7 -7
  97. package/dist/internal/upload/telemetry.test.js.map +1 -1
  98. package/dist/telemetry.d.ts +2 -2
  99. package/dist/telemetry.js +2 -2
  100. package/dist/telemetry.js.map +1 -1
  101. package/dist/tests/telemetry.js +1 -1
  102. package/dist/tests/telemetry.js.map +1 -1
  103. package/dist/transformers.d.ts +1 -1
  104. package/dist/transformers.js +2 -1
  105. package/dist/transformers.js.map +1 -1
  106. package/package.json +1 -1
  107. package/src/crypto/driveCrypto.ts +70 -25
  108. package/src/crypto/interface.ts +15 -0
  109. package/src/crypto/openPGPCrypto.ts +37 -5
  110. package/src/diagnostic/telemetry.ts +1 -1
  111. package/src/interface/download.ts +46 -0
  112. package/src/interface/index.ts +2 -1
  113. package/src/interface/nodes.ts +28 -1
  114. package/src/interface/telemetry.ts +6 -1
  115. package/src/internal/apiService/apiService.ts +1 -1
  116. package/src/internal/apiService/driveTypes.ts +78 -165
  117. package/src/internal/apiService/index.ts +1 -1
  118. package/src/internal/apiService/transformers.ts +1 -1
  119. package/src/internal/download/blockIndex.test.ts +158 -0
  120. package/src/internal/download/blockIndex.ts +36 -0
  121. package/src/internal/download/fileDownloader.test.ts +100 -7
  122. package/src/internal/download/fileDownloader.ts +109 -9
  123. package/src/internal/download/interface.ts +4 -4
  124. package/src/internal/download/seekableStream.test.ts +187 -0
  125. package/src/internal/download/seekableStream.ts +182 -0
  126. package/src/internal/download/telemetry.test.ts +7 -7
  127. package/src/internal/download/telemetry.ts +1 -1
  128. package/src/internal/errors.test.ts +45 -11
  129. package/src/internal/errors.ts +8 -0
  130. package/src/internal/events/index.ts +1 -1
  131. package/src/internal/nodes/apiService.test.ts +59 -15
  132. package/src/internal/nodes/apiService.ts +21 -4
  133. package/src/internal/nodes/cache.test.ts +6 -1
  134. package/src/internal/nodes/cache.ts +9 -2
  135. package/src/internal/nodes/cryptoService.test.ts +139 -47
  136. package/src/internal/nodes/cryptoService.ts +94 -9
  137. package/src/internal/nodes/extendedAttributes.test.ts +60 -7
  138. package/src/internal/nodes/extendedAttributes.ts +37 -1
  139. package/src/internal/nodes/index.test.ts +1 -1
  140. package/src/internal/nodes/interface.ts +19 -2
  141. package/src/internal/nodes/nodesAccess.ts +15 -1
  142. package/src/internal/nodes/nodesManagement.ts +1 -1
  143. package/src/internal/nodes/nodesRevisions.ts +14 -5
  144. package/src/internal/shares/cryptoService.test.ts +5 -3
  145. package/src/internal/shares/cryptoService.ts +7 -4
  146. package/src/internal/sharing/apiService.ts +6 -6
  147. package/src/internal/sharing/cryptoService.test.ts +7 -4
  148. package/src/internal/sharing/cryptoService.ts +8 -5
  149. package/src/internal/upload/telemetry.test.ts +7 -7
  150. package/src/internal/upload/telemetry.ts +2 -2
  151. package/src/telemetry.ts +2 -2
  152. package/src/tests/telemetry.ts +1 -1
  153. package/src/transformers.ts +4 -2
@@ -62,6 +62,10 @@ class NodesCryptoService {
62
62
  : nodeParentKeys;
63
63
  }
64
64
  const { name, author: nameAuthor } = await this.decryptName(node, parentKey, nameVerificationKeys);
65
+ let membership;
66
+ if (node.membership) {
67
+ membership = await this.decryptMembership(node);
68
+ }
65
69
  let passphrase, key, passphraseSessionKey, keyAuthor;
66
70
  try {
67
71
  const keyResult = await this.decryptKey(node, parentKey, keyVerificationKeys);
@@ -83,6 +87,7 @@ class NodesCryptoService {
83
87
  error: errorMessage,
84
88
  }),
85
89
  nameAuthor,
90
+ membership,
86
91
  activeRevision: 'file' in node.encryptedCrypto ? (0, interface_1.resultError)(new Error(errorMessage)) : undefined,
87
92
  folder: undefined,
88
93
  errors: [error],
@@ -140,7 +145,7 @@ class NodesCryptoService {
140
145
  contentKeyPacketSessionKey = keySessionKeyResult.sessionKey;
141
146
  contentKeyPacketAuthor =
142
147
  keySessionKeyResult.verified &&
143
- (await this.handleClaimedAuthor(node, 'nodeContentKey', (0, ttag_1.c)('Property').t `content key`, keySessionKeyResult.verified, node.encryptedCrypto.signatureEmail));
148
+ (await this.handleClaimedAuthor(node, 'nodeContentKey', (0, ttag_1.c)('Property').t `content key`, keySessionKeyResult.verified, keySessionKeyResult.verificationErrors, node.encryptedCrypto.signatureEmail));
144
149
  }
145
150
  catch (error) {
146
151
  void this.reportDecryptionError(node, 'nodeContentKey', error);
@@ -179,6 +184,7 @@ class NodesCryptoService {
179
184
  name,
180
185
  keyAuthor: finalKeyAuthor,
181
186
  nameAuthor,
187
+ membership,
182
188
  activeRevision,
183
189
  folder,
184
190
  errors: errors.length ? errors : undefined,
@@ -198,16 +204,16 @@ class NodesCryptoService {
198
204
  passphrase: key.passphrase,
199
205
  key: key.key,
200
206
  passphraseSessionKey: key.passphraseSessionKey,
201
- author: await this.handleClaimedAuthor(node, 'nodeKey', (0, ttag_1.c)('Property').t `key`, key.verified, node.encryptedCrypto.signatureEmail, verificationKeys.length === 0),
207
+ author: await this.handleClaimedAuthor(node, 'nodeKey', (0, ttag_1.c)('Property').t `key`, key.verified, key.verificationErrors, node.encryptedCrypto.signatureEmail, verificationKeys.length === 0),
202
208
  };
203
209
  }
204
210
  async decryptName(node, parentKey, verificationKeys) {
205
211
  const nameSignatureEmail = node.encryptedCrypto.nameSignatureEmail;
206
212
  try {
207
- const { name, verified } = await this.driveCrypto.decryptNodeName(node.encryptedName, parentKey, verificationKeys);
213
+ const { name, verified, verificationErrors } = await this.driveCrypto.decryptNodeName(node.encryptedName, parentKey, verificationKeys);
208
214
  return {
209
215
  name: (0, interface_1.resultOk)(name),
210
- author: await this.handleClaimedAuthor(node, 'nodeName', (0, ttag_1.c)('Property').t `name`, verified, nameSignatureEmail, verificationKeys.length === 0),
216
+ author: await this.handleClaimedAuthor(node, 'nodeName', (0, ttag_1.c)('Property').t `name`, verified, verificationErrors, nameSignatureEmail, verificationKeys.length === 0),
211
217
  };
212
218
  }
213
219
  catch (error) {
@@ -225,15 +231,56 @@ class NodesCryptoService {
225
231
  async getNameSessionKey(node, parentKey) {
226
232
  return this.driveCrypto.decryptSessionKey(node.encryptedName, parentKey);
227
233
  }
234
+ async decryptMembership(node) {
235
+ if (!node.membership) {
236
+ return undefined;
237
+ }
238
+ let sharedBy;
239
+ if (node.encryptedCrypto.membership) {
240
+ let inviterEmailKeys;
241
+ try {
242
+ inviterEmailKeys = await this.account.getPublicKeys(node.encryptedCrypto.membership.inviterEmail);
243
+ }
244
+ catch (error) {
245
+ this.logger.error('Failed to get inviter email keys', error);
246
+ sharedBy = (0, interface_1.resultError)({
247
+ claimedAuthor: node.encryptedCrypto.membership.inviterEmail,
248
+ error: (0, ttag_1.c)('Error').t `Failed to get inviter keys`,
249
+ });
250
+ }
251
+ try {
252
+ const { verified, verificationErrors } = await this.driveCrypto.verifyInvitation(node.encryptedCrypto.membership.base64MemberSharePassphraseKeyPacket, node.encryptedCrypto.membership.armoredInviterSharePassphraseKeyPacketSignature, inviterEmailKeys || []);
253
+ sharedBy = await this.handleClaimedAuthor(node, 'membershipInviter', (0, ttag_1.c)('Property').t `membership`, verified, verificationErrors, node.encryptedCrypto.membership.inviterEmail);
254
+ }
255
+ catch (error) {
256
+ void this.reportVerificationError(node, 'membershipInviter');
257
+ this.logger.error('Failed to verify invitation', error);
258
+ sharedBy = (0, interface_1.resultError)({
259
+ claimedAuthor: node.encryptedCrypto.membership.inviterEmail,
260
+ error: (0, ttag_1.c)('Error').t `Failed to verify invitation`,
261
+ });
262
+ }
263
+ }
264
+ else {
265
+ sharedBy = (0, interface_1.resultError)({
266
+ error: (0, ttag_1.c)('Error').t `Missing inviter email`,
267
+ });
268
+ }
269
+ return {
270
+ role: node.membership.role,
271
+ inviteTime: node.membership.inviteTime,
272
+ sharedBy,
273
+ };
274
+ }
228
275
  async decryptHashKey(node, nodeKey, addressKeys) {
229
276
  if (!('folder' in node.encryptedCrypto)) {
230
277
  // This is developer error.
231
278
  throw new Error('Node is not a folder');
232
279
  }
233
- const { hashKey, verified } = await this.driveCrypto.decryptNodeHashKey(node.encryptedCrypto.folder.armoredHashKey, nodeKey, addressKeys);
280
+ const { hashKey, verified, verificationErrors } = await this.driveCrypto.decryptNodeHashKey(node.encryptedCrypto.folder.armoredHashKey, nodeKey, addressKeys);
234
281
  return {
235
282
  hashKey,
236
- author: await this.handleClaimedAuthor(node, 'nodeHashKey', (0, ttag_1.c)('Property').t `hash key`, verified, node.encryptedCrypto.signatureEmail),
283
+ author: await this.handleClaimedAuthor(node, 'nodeHashKey', (0, ttag_1.c)('Property').t `hash key`, verified, verificationErrors, node.encryptedCrypto.signatureEmail),
237
284
  };
238
285
  }
239
286
  async decryptRevision(nodeUid, encryptedRevision, nodeKey) {
@@ -257,10 +304,10 @@ class NodesCryptoService {
257
304
  author: (0, interface_1.resultOk)(signatureEmail),
258
305
  };
259
306
  }
260
- const { extendedAttributes, verified } = await this.driveCrypto.decryptExtendedAttributes(encryptedExtendedAttributes, nodeKey, addressKeys);
307
+ const { extendedAttributes, verified, verificationErrors } = await this.driveCrypto.decryptExtendedAttributes(encryptedExtendedAttributes, nodeKey, addressKeys);
261
308
  return {
262
309
  extendedAttributes,
263
- author: await this.handleClaimedAuthor(node, 'nodeExtendedAttributes', (0, ttag_1.c)('Property').t `attributes`, verified, signatureEmail),
310
+ author: await this.handleClaimedAuthor(node, 'nodeExtendedAttributes', (0, ttag_1.c)('Property').t `attributes`, verified, verificationErrors, signatureEmail),
264
311
  };
265
312
  }
266
313
  async createFolder(parentKeys, address, name, extendedAttributes) {
@@ -328,14 +375,14 @@ class NodesCryptoService {
328
375
  nameSignatureEmail: email,
329
376
  };
330
377
  }
331
- async handleClaimedAuthor(node, field, signatureType, verified, claimedAuthor, notAvailableVerificationKeys = false) {
332
- const author = handleClaimedAuthor(signatureType, verified, claimedAuthor, notAvailableVerificationKeys);
378
+ async handleClaimedAuthor(node, field, signatureType, verified, verificationErrors, claimedAuthor, notAvailableVerificationKeys = false) {
379
+ const author = handleClaimedAuthor(signatureType, verified, verificationErrors, claimedAuthor, notAvailableVerificationKeys);
333
380
  if (!author.ok) {
334
- void this.reportVerificationError(node, field, claimedAuthor);
381
+ void this.reportVerificationError(node, field, verificationErrors, claimedAuthor);
335
382
  }
336
383
  return author;
337
384
  }
338
- async reportVerificationError(node, field, claimedAuthor) {
385
+ async reportVerificationError(node, field, verificationErrors, claimedAuthor) {
339
386
  if (this.reportedVerificationErrors.has(node.uid)) {
340
387
  return;
341
388
  }
@@ -351,12 +398,14 @@ class NodesCryptoService {
351
398
  this.logger.error('Failed to check if claimed author matches default share', error);
352
399
  }
353
400
  this.logger.warn(`Failed to verify ${field} for node ${node.uid} (from before 2024: ${fromBefore2024}, matching address: ${addressMatchingDefaultShare})`);
354
- this.telemetry.logEvent({
401
+ this.telemetry.recordMetric({
355
402
  eventName: 'verificationError',
356
403
  volumeType,
357
404
  field,
358
405
  addressMatchingDefaultShare,
359
406
  fromBefore2024,
407
+ error: verificationErrors?.map((e) => e.message).join(', '),
408
+ uid: node.uid,
360
409
  });
361
410
  this.reportedVerificationErrors.add(node.uid);
362
411
  }
@@ -374,12 +423,13 @@ class NodesCryptoService {
374
423
  this.logger.error('Failed to get metric context', error);
375
424
  }
376
425
  this.logger.error(`Failed to decrypt node ${node.uid} (from before 2024: ${fromBefore2024})`, error);
377
- this.telemetry.logEvent({
426
+ this.telemetry.recordMetric({
378
427
  eventName: 'decryptionError',
379
428
  volumeType,
380
429
  field,
381
430
  fromBefore2024,
382
431
  error,
432
+ uid: node.uid,
383
433
  });
384
434
  this.reportedDecryptionErrors.add(node.uid);
385
435
  }
@@ -388,7 +438,7 @@ exports.NodesCryptoService = NodesCryptoService;
388
438
  /**
389
439
  * @param signatureType - Must be translated before calling this function.
390
440
  */
391
- function handleClaimedAuthor(signatureType, verified, claimedAuthor, notAvailableVerificationKeys = false) {
441
+ function handleClaimedAuthor(signatureType, verified, verificationErrors, claimedAuthor, notAvailableVerificationKeys = false) {
392
442
  if (!claimedAuthor && notAvailableVerificationKeys) {
393
443
  return (0, interface_1.resultOk)(null);
394
444
  }
@@ -397,7 +447,7 @@ function handleClaimedAuthor(signatureType, verified, claimedAuthor, notAvailabl
397
447
  }
398
448
  return (0, interface_1.resultError)({
399
449
  claimedAuthor: claimedAuthor,
400
- error: (0, errors_2.getVerificationMessage)(verified, signatureType, notAvailableVerificationKeys),
450
+ error: (0, errors_2.getVerificationMessage)(verified, verificationErrors, signatureType, notAvailableVerificationKeys),
401
451
  });
402
452
  }
403
453
  //# sourceMappingURL=cryptoService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cryptoService.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cryptoService.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAEzB,yCAAmG;AACnG,+CAYyB;AACzB,yCAA+C;AAC/C,sCAAoE;AACpE,kCAAuC;AAYvC;;;;;;;;;GASG;AACH,MAAa,kBAAkB;IAOf;IACA;IACA;IACA;IATJ,MAAM,CAAS;IAEf,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvD,YACY,SAA+B,EAC/B,WAAwB,EACxB,OAA2B,EAC3B,YAA2B;QAH3B,cAAS,GAAT,SAAS,CAAsB;QAC/B,gBAAW,GAAX,WAAW,CAAa;QACxB,YAAO,GAAP,OAAO,CAAoB;QAC3B,iBAAY,GAAZ,YAAY,CAAe;QAEnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CACb,IAAmB,EACnB,SAAqB;QAErB,MAAM,kBAAkB,GAAG;YACvB,GAAG,IAAI;YACP,eAAe,EAAE,SAAS;SAC7B,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc;YAC1D,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;YACvE,CAAC,CAAC,EAAE,CAAC;QAET,mEAAmE;QACnE,iEAAiE;QACjE,uEAAuE;QACvE,cAAc;QACd,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC;QAEtG,IAAI,oBAAoB,CAAC;QACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;QACnE,IAAI,kBAAkB,KAAK,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YAC7D,oBAAoB,GAAG,mBAAmB,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,oBAAoB,GAAG,kBAAkB;gBACrC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACtD,CAAC,CAAC,cAAc,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAEnG,IAAI,UAAU,CAAC;QACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,UAAU,EAAE,GAAG,EAAE,oBAAoB,EAAE,SAAS,CAAC;QACrD,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAC9E,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;YAClC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;YACpB,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;YACtD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QACjC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,+BAA+B,OAAO,EAAE,CAAC;YAC1E,OAAO;gBACH,IAAI,EAAE;oBACF,GAAG,kBAAkB;oBACrB,IAAI;oBACJ,SAAS,EAAE,IAAA,uBAAW,EAAC;wBACnB,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc;wBAClD,KAAK,EAAE,YAAY;qBACtB,CAAC;oBACF,UAAU;oBACV,UAAU;oBACV,cAAc,EAAE,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,uBAAW,EAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACjG,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,CAAC,KAAK,CAAC;iBAClB;aACJ,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,OAAO,CAAC;QACZ,IAAI,aAAa,CAAC;QAClB,IAAI,MAAM,CAAC;QACX,IAAI,8BAA8B,CAAC;QACnC,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBAC/E,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;gBAChC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;YACzC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,wCAAwC,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc;oBAChF,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjE,IAAI,EACJ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,yBAAyB,EACrD,GAAG,EACH,wCAAwC,EACxC,IAAI,CAAC,eAAe,CAAC,cAAc,CACtC,CAAC;gBACF,MAAM,GAAG;oBACL,kBAAkB,EAAE,wBAAwB,CAAC,kBAAkB;iBAClE,CAAC;gBACF,8BAA8B,GAAG,wBAAwB,CAAC,MAAM,CAAC;YACrE,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QAED,IAAI,cAAoE,CAAC;QACzE,IAAI,0BAA0B,CAAC;QAC/B,IAAI,sBAAsB,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC;gBACD,cAAc,GAAG,IAAA,oBAAQ,EACrB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,CACjF,CAAC;YACN,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,YAAY,GAAG,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,sCAAsC,OAAO,EAAE,CAAC;gBACjF,cAAc,GAAG,IAAA,uBAAW,EAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CACzE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,EAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gCAAgC,EAC1D,GAAG;gBACH,sDAAsD;gBACtD,wDAAwD;gBACxD,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,CAChC,CAAC;gBAEF,0BAA0B,GAAG,mBAAmB,CAAC,UAAU,CAAC;gBAC5D,sBAAsB;oBAClB,mBAAmB,CAAC,QAAQ;wBAC5B,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAC3B,IAAI,EACJ,gBAAgB,EAChB,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,aAAa,EAC5B,mBAAmB,CAAC,QAAQ,EAC5B,mBAAmB,CAAC,kBAAkB,EACtC,IAAI,CAAC,eAAe,CAAC,cAAc,CACtC,CAAC,CAAC;YACX,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,YAAY,GAAG,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,kCAAkC,OAAO,EAAE,CAAC;gBAC7E,sBAAsB,GAAG,IAAA,uBAAW,EAAC;oBACjC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc;oBAClD,KAAK,EAAE,YAAY;iBACtB,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAChB,cAAc,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,cAAc,IAAI,sBAAsB,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC;YAC1E,cAAc,GAAG,sBAAsB,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,cAAc,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACxD,cAAc,GAAG,aAAa,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,cAAc,IAAI,8BAA8B,IAAI,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC;YAC1F,cAAc,GAAG,8BAA8B,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,cAAc,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,OAAO;YACH,IAAI,EAAE;gBACF,GAAG,kBAAkB;gBACrB,IAAI;gBACJ,SAAS,EAAE,cAAc;gBACzB,UAAU;gBACV,UAAU;gBACV,cAAc;gBACd,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aAC7C;YACD,IAAI,EAAE;gBACF,UAAU;gBACV,GAAG;gBACH,oBAAoB;gBACpB,0BAA0B;gBAC1B,OAAO;aACV;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,UAAU,CACpB,IAAmB,EACnB,SAAqB,EACrB,gBAA6B;QAM7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CACzC,IAAI,CAAC,eAAe,CAAC,UAAU,EAC/B,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAC1C,IAAI,CAAC,eAAe,CAAC,8BAA8B,EACnD,CAAC,SAAS,CAAC,EACX,gBAAgB,CACnB,CAAC;QAEF,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,MAAM,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAClC,IAAI,EACJ,SAAS,EACT,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,KAAK,EACpB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,kBAAkB,EACtB,IAAI,CAAC,eAAe,CAAC,cAAc,EACnC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAChC;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,WAAW,CACrB,IAAmB,EACnB,SAAqB,EACrB,gBAA6B;QAK7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;QAEnE,IAAI,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACjF,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,gBAAgB,CACnB,CAAC;YAEF,OAAO;gBACH,IAAI,EAAE,IAAA,oBAAQ,EAAC,IAAI,CAAC;gBACpB,MAAM,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAClC,IAAI,EACJ,UAAU,EACV,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,MAAM,EACrB,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAChC;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAC;YAC5C,OAAO;gBACH,IAAI,EAAE,IAAA,uBAAW,EAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1C,MAAM,EAAE,IAAA,uBAAW,EAAC;oBAChB,aAAa,EAAE,kBAAkB;oBACjC,KAAK,EAAE,YAAY;iBACtB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAA+B,EAAE,SAAqB;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAmB;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,gBAAyC,CAAC;YAC9C,IAAI,CAAC;gBACD,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACtG,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gBAC7D,QAAQ,GAAG,IAAA,uBAAW,EAAC;oBACnB,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY;oBAC3D,KAAK,EAAE,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,4BAA4B;iBAClD,CAAC,CAAC;YACP,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC5E,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,oCAAoC,EACpE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,+CAA+C,EAC/E,gBAAgB,IAAI,EAAE,CACzB,CAAC;gBAEF,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACrC,IAAI,EACJ,mBAAmB,EACnB,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,YAAY,EAC3B,QAAQ,EACR,kBAAkB,EAClB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAC/C,CAAC;YACN,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACxD,QAAQ,GAAG,IAAA,uBAAW,EAAC;oBACnB,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY;oBAC3D,KAAK,EAAE,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,6BAA6B;iBACnD,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,IAAA,uBAAW,EAAC;gBACnB,KAAK,EAAE,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,uBAAuB;aAC7C,CAAC,CAAC;QACP,CAAC;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YACtC,QAAQ;SACX,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,IAAmB,EACnB,OAAmB,EACnB,WAAwB;QAKxB,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,2BAA2B;YAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CACvF,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,EAC1C,OAAO,EACP,WAAW,CACd,CAAC;QAEF,OAAO;YACH,OAAO;YACP,MAAM,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAClC,IAAI,EACJ,aAAa,EACb,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,UAAU,EACzB,QAAQ,EACR,kBAAkB,EAClB,IAAI,CAAC,eAAe,CAAC,cAAc,CACtC;SACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,OAAe,EACf,iBAAoC,EACpC,OAAmB;QAEnB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc;YACrD,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACpE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACtF,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,CAAC,YAAY,EAAE,EAC9D,iBAAiB,CAAC,yBAAyB,EAC3C,OAAO,EACP,gBAAgB,EAChB,iBAAiB,CAAC,cAAc,CACnC,CAAC;QAEF,OAAO;YACH,GAAG,EAAE,iBAAiB,CAAC,GAAG;YAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,YAAY,EAAE,iBAAiB,CAAC,YAAY;YAC5C,WAAW,EAAE,iBAAiB,CAAC,WAAW;YAC1C,aAAa;YACb,kBAAkB;YAClB,UAAU,EAAE,iBAAiB,CAAC,UAAU;SAC3C,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACnC,IAAyC,EACzC,2BAA+C,EAC/C,OAAmB,EACnB,WAAwB,EACxB,cAAuB;QAKvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC/B,OAAO;gBACH,MAAM,EAAE,IAAA,oBAAQ,EAAC,cAAc,CAAW;aAC7C,CAAC;QACN,CAAC;QAED,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CACzG,2BAA2B,EAC3B,OAAO,EACP,WAAW,CACd,CAAC;QAEF,OAAO;YACH,kBAAkB;YAClB,MAAM,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAClC,IAAI,EACJ,wBAAwB,EACxB,IAAA,QAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAA,YAAY,EAC3B,QAAQ,EACR,kBAAkB,EAClB,cAAc,CACjB;SACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CACd,UAAoD,EACpD,OAAkD,EAClD,IAAY,EACZ,kBAA2B;QAW3B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACtC,MAAM,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;SAChE,CAAC,CAAC;QAEH,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEnG,MAAM,EAAE,yBAAyB,EAAE,GAAG,kBAAkB;YACpD,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;YAC1G,CAAC,CAAC,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC;QAE/C,OAAO;YACH,eAAe,EAAE;gBACb,aAAa,EAAE,eAAe;gBAC9B,IAAI;gBACJ,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;gBACzC,qBAAqB,EAAE,QAAQ,CAAC,SAAS,CAAC,iBAAiB;gBAC3D,8BAA8B,EAAE,QAAQ,CAAC,SAAS,CAAC,0BAA0B;gBAC7E,MAAM,EAAE;oBACJ,yBAAyB,EAAE,yBAAyB;oBACpD,cAAc;iBACjB;gBACD,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;aAC5B;YACD,IAAI,EAAE;gBACF,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;gBACzC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG;gBAC3B,oBAAoB,EAAE,QAAQ,CAAC,SAAS,CAAC,oBAAoB;gBAC7D,OAAO;aACV;SACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,UAAqD,EACrD,kBAA8B,EAC9B,OAAkD,EAClD,OAAe;QAMf,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAEtC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9D,OAAO,EACP,kBAAkB,EAClB,UAAU,CAAC,GAAG,EACd,UAAU,CACb,CAAC;QAEF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO;YAC3B,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YACxE,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO;YACH,cAAc,EAAE,KAAK;YACrB,eAAe;YACf,IAAI;SACP,CAAC;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CACV,IAAiC,EACjC,IAA0F,EAC1F,UAAoD,EACpD,OAAkD;QASlD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,wBAAe,CAAC,4CAA4C,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,wBAAe,CAAC,qEAAqE,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACtC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9D,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,GAAG,EACd,UAAU,CACb,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5F,MAAM,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAC9F,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,EACzB,CAAC,UAAU,CAAC,GAAG,CAAC,EAChB,UAAU,CACb,CAAC;QAEF,OAAO;YACH,aAAa,EAAE,eAAe;YAC9B,IAAI;YACJ,qBAAqB,EAAE,iBAAiB;YACxC,8BAA8B,EAAE,0BAA0B;YAC1D,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,KAAK;SAC5B,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC7B,IAAyC,EACzC,KAAmC,EACnC,aAAqB,EACrB,QAA6B,EAC7B,kBAA4B,EAC5B,aAAsB,EACtB,4BAA4B,GAAG,KAAK;QAEpC,MAAM,MAAM,GAAG,mBAAmB,CAC9B,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,4BAA4B,CAC/B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACjC,IAAyC,EACzC,KAAmC,EACnC,kBAA4B,EAC5B,aAAsB;QAEtB,IAAI,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO;QACX,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QAElE,IAAI,2BAA2B,EAAE,UAAU,CAAC;QAC5C,IAAI,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,CAAC;YAC1E,2BAA2B,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,oBAAoB,KAAK,aAAa,IAAI,CAAC,GAAG,uBAAuB,cAAc,uBAAuB,2BAA2B,GAAG,CAC3I,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACxB,SAAS,EAAE,mBAAmB;YAC9B,UAAU;YACV,KAAK;YACL,2BAA2B;YAC3B,cAAc;YACd,KAAK,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3D,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,IAAmB,EAAE,KAAkC,EAAE,KAAc;QACvG,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QAElE,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,GAAG,uBAAuB,cAAc,GAAG,EAAE,KAAK,CAAC,CAAC;QAErG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACxB,SAAS,EAAE,iBAAiB;YAC5B,UAAU;YACV,KAAK;YACL,cAAc;YACd,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;CACJ;AA7oBD,gDA6oBC;AAED;;GAEG;AACH,SAAS,mBAAmB,CACxB,aAAqB,EACrB,QAA6B,EAC7B,kBAA4B,EAC5B,aAAsB,EACtB,4BAA4B,GAAG,KAAK;IAEpC,IAAI,CAAC,aAAa,IAAI,4BAA4B,EAAE,CAAC;QACjD,OAAO,IAAA,oBAAQ,EAAC,IAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,KAAK,4BAAmB,CAAC,gBAAgB,EAAE,CAAC;QACpD,OAAO,IAAA,oBAAQ,EAAC,aAAa,IAAK,IAAsB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAA,uBAAW,EAAC;QACf,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,IAAA,+BAAsB,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,4BAA4B,CAAC;KAC3G,CAAC,CAAC;AACP,CAAC"}