@hed-hog/lms 0.0.353 → 0.0.354

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 (135) hide show
  1. package/dist/course/course-audio-transcription.service.d.ts +29 -0
  2. package/dist/course/course-audio-transcription.service.d.ts.map +1 -0
  3. package/dist/course/course-audio-transcription.service.js +291 -0
  4. package/dist/course/course-audio-transcription.service.js.map +1 -0
  5. package/dist/course/course-lesson.controller.d.ts +10 -0
  6. package/dist/course/course-lesson.controller.d.ts.map +1 -0
  7. package/dist/course/course-lesson.controller.js +62 -0
  8. package/dist/course/course-lesson.controller.js.map +1 -0
  9. package/dist/course/course-structure.controller.d.ts +41 -15
  10. package/dist/course/course-structure.controller.d.ts.map +1 -1
  11. package/dist/course/course-structure.controller.js +50 -6
  12. package/dist/course/course-structure.controller.js.map +1 -1
  13. package/dist/course/course-structure.service.d.ts +50 -15
  14. package/dist/course/course-structure.service.d.ts.map +1 -1
  15. package/dist/course/course-structure.service.js +238 -73
  16. package/dist/course/course-structure.service.js.map +1 -1
  17. package/dist/course/course-video-conversion.service.d.ts +20 -2
  18. package/dist/course/course-video-conversion.service.d.ts.map +1 -1
  19. package/dist/course/course-video-conversion.service.js +730 -10
  20. package/dist/course/course-video-conversion.service.js.map +1 -1
  21. package/dist/course/course.controller.d.ts +24 -8
  22. package/dist/course/course.controller.d.ts.map +1 -1
  23. package/dist/course/course.module.d.ts.map +1 -1
  24. package/dist/course/course.module.js +5 -3
  25. package/dist/course/course.module.js.map +1 -1
  26. package/dist/course/course.service.d.ts +24 -8
  27. package/dist/course/course.service.d.ts.map +1 -1
  28. package/dist/course/course.service.js +112 -176
  29. package/dist/course/course.service.js.map +1 -1
  30. package/dist/course/dto/create-course-lesson-frame.dto.d.ts +5 -0
  31. package/dist/course/dto/create-course-lesson-frame.dto.d.ts.map +1 -0
  32. package/dist/course/dto/create-course-lesson-frame.dto.js +30 -0
  33. package/dist/course/dto/create-course-lesson-frame.dto.js.map +1 -0
  34. package/dist/course/dto/create-course-structure-lesson.dto.d.ts +4 -2
  35. package/dist/course/dto/create-course-structure-lesson.dto.d.ts.map +1 -1
  36. package/dist/course/dto/create-course-structure-lesson.dto.js +10 -3
  37. package/dist/course/dto/create-course-structure-lesson.dto.js.map +1 -1
  38. package/dist/course/dto/create-course.dto.d.ts +1 -1
  39. package/dist/course/dto/create-course.dto.d.ts.map +1 -1
  40. package/dist/course/dto/create-course.dto.js +6 -6
  41. package/dist/course/dto/create-course.dto.js.map +1 -1
  42. package/dist/course/dto/update-course-lesson-frame.dto.d.ts +5 -0
  43. package/dist/course/dto/update-course-lesson-frame.dto.d.ts.map +1 -0
  44. package/dist/course/dto/update-course-lesson-frame.dto.js +32 -0
  45. package/dist/course/dto/update-course-lesson-frame.dto.js.map +1 -0
  46. package/dist/course/dto/update-course-resources.dto.d.ts +4 -2
  47. package/dist/course/dto/update-course-resources.dto.d.ts.map +1 -1
  48. package/dist/course/dto/update-course-resources.dto.js +10 -3
  49. package/dist/course/dto/update-course-resources.dto.js.map +1 -1
  50. package/dist/course/dto/update-transcription-segments.dto.d.ts +10 -0
  51. package/dist/course/dto/update-transcription-segments.dto.d.ts.map +1 -0
  52. package/dist/course/dto/update-transcription-segments.dto.js +38 -0
  53. package/dist/course/dto/update-transcription-segments.dto.js.map +1 -0
  54. package/dist/course/lms-setting.controller.d.ts +13 -0
  55. package/dist/course/lms-setting.controller.d.ts.map +1 -0
  56. package/dist/course/lms-setting.controller.js +53 -0
  57. package/dist/course/lms-setting.controller.js.map +1 -0
  58. package/dist/enterprise/training/training-admin.service.d.ts.map +1 -1
  59. package/dist/enterprise/training/training-admin.service.js +74 -33
  60. package/dist/enterprise/training/training-admin.service.js.map +1 -1
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +2 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/lms.module.d.ts.map +1 -1
  66. package/dist/lms.module.js +6 -0
  67. package/dist/lms.module.js.map +1 -1
  68. package/hedhog/data/route.yaml +63 -0
  69. package/hedhog/data/setting_group.yaml +76 -0
  70. package/hedhog/frontend/app/courses/[id]/_components/CourseCertificateCard.tsx.ejs +3 -0
  71. package/hedhog/frontend/app/courses/[id]/_components/CourseClassificationCard.tsx.ejs +10 -1
  72. package/hedhog/frontend/app/courses/[id]/_components/CourseContentCard.tsx.ejs +7 -2
  73. package/hedhog/frontend/app/courses/[id]/_components/CourseDangerZoneCard.tsx.ejs +5 -2
  74. package/hedhog/frontend/app/courses/[id]/_components/CourseFlagsCard.tsx.ejs +7 -1
  75. package/hedhog/frontend/app/courses/[id]/_components/CourseMediaCard.tsx.ejs +3 -0
  76. package/hedhog/frontend/app/courses/[id]/_components/CourseMultiEntityPicker.tsx.ejs +95 -50
  77. package/hedhog/frontend/app/courses/[id]/_components/CourseRelationsCard.tsx.ejs +11 -36
  78. package/hedhog/frontend/app/courses/[id]/_components/CourseSectionCard.tsx.ejs +19 -5
  79. package/hedhog/frontend/app/courses/[id]/_components/course-edit-types.ts.ejs +1 -1
  80. package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +30 -10
  81. package/hedhog/frontend/app/courses/[id]/structure/_components/CourseInstructorsSummaryCard.tsx.ejs +95 -0
  82. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-dnd.tsx.ejs +29 -11
  83. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-panel.tsx.ejs +42 -31
  84. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree.tsx.ejs +10 -1
  85. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson.tsx.ejs +51 -9
  86. package/hedhog/frontend/app/courses/[id]/structure/_components/drag-handle.tsx.ejs +25 -22
  87. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-bulk.tsx.ejs +12 -9
  88. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +315 -229
  89. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +3220 -534
  90. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-session.tsx.ejs +20 -15
  91. package/hedhog/frontend/app/courses/[id]/structure/_components/icon-action-tooltip.tsx.ejs +35 -0
  92. package/hedhog/frontend/app/courses/[id]/structure/_components/multi-select-bar.tsx.ejs +76 -67
  93. package/hedhog/frontend/app/courses/[id]/structure/_components/search-filter.tsx.ejs +13 -10
  94. package/hedhog/frontend/app/courses/[id]/structure/_components/shortcuts-help.tsx.ejs +18 -16
  95. package/hedhog/frontend/app/courses/[id]/structure/_components/sortable-tree-row.tsx.ejs +6 -0
  96. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-context-menu.tsx.ejs +1 -1
  97. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-display-settings-popover.tsx.ejs +23 -11
  98. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-helpers.ts.ejs +48 -9
  99. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-course.tsx.ejs +11 -2
  100. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-lesson.tsx.ejs +121 -15
  101. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-session.tsx.ejs +69 -14
  102. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row.tsx.ejs +11 -0
  103. package/hedhog/frontend/app/courses/[id]/structure/_components/types.ts.ejs +31 -0
  104. package/hedhog/frontend/app/courses/[id]/structure/_data/adapters/course-structure.adapter.ts.ejs +32 -6
  105. package/hedhog/frontend/app/courses/[id]/structure/_data/services/course-structure.service.ts.ejs +57 -3
  106. package/hedhog/frontend/app/courses/[id]/structure/_data/types/api-course.types.ts.ejs +46 -6
  107. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +14 -0
  108. package/hedhog/frontend/app/courses/[id]/structure/_data/use-lesson-audio-files.ts.ejs +23 -0
  109. package/hedhog/frontend/app/courses/[id]/structure/_data/use-lms-settings-query.ts.ejs +34 -0
  110. package/hedhog/frontend/app/courses/[id]/structure/_data/use-transcription-segments.ts.ejs +76 -0
  111. package/hedhog/frontend/messages/en.json +39 -3
  112. package/hedhog/frontend/messages/pt.json +39 -3
  113. package/hedhog/table/course.yaml +8 -0
  114. package/hedhog/table/course_lesson_file.yaml +12 -4
  115. package/hedhog/table/course_lesson_transcription_segment.yaml +22 -0
  116. package/hedhog/table/course_lesson_video_frame.yaml +25 -0
  117. package/package.json +9 -9
  118. package/src/course/course-audio-transcription.service.ts +393 -0
  119. package/src/course/course-lesson.controller.ts +28 -0
  120. package/src/course/course-structure.controller.ts +49 -3
  121. package/src/course/course-structure.service.ts +294 -32
  122. package/src/course/course-video-conversion.service.ts +972 -6
  123. package/src/course/course.module.ts +5 -3
  124. package/src/course/course.service.ts +87 -139
  125. package/src/course/dto/create-course-lesson-frame.dto.ts +14 -0
  126. package/src/course/dto/create-course-structure-lesson.dto.ts +19 -3
  127. package/src/course/dto/create-course.dto.ts +5 -5
  128. package/src/course/dto/update-course-lesson-frame.dto.ts +16 -0
  129. package/src/course/dto/update-course-resources.dto.ts +18 -3
  130. package/src/course/dto/update-transcription-segments.dto.ts +20 -0
  131. package/src/course/lms-setting.controller.ts +30 -0
  132. package/src/enterprise/training/training-admin.service.ts +77 -24
  133. package/src/index.ts +2 -0
  134. package/src/lms.module.ts +6 -0
  135. package/hedhog/table/course_instructor.yaml +0 -27
@@ -11,12 +11,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CourseStructureService = void 0;
13
13
  const api_prisma_1 = require("@hed-hog/api-prisma");
14
+ const core_1 = require("@hed-hog/core");
14
15
  const common_1 = require("@nestjs/common");
15
16
  const instructor_service_1 = require("../instructor/instructor.service");
16
17
  const course_operations_integration_service_1 = require("./course-operations-integration.service");
17
18
  let CourseStructureService = class CourseStructureService {
18
- constructor(prisma, instructorService, operationsIntegration) {
19
+ constructor(prisma, fileService, instructorService, operationsIntegration) {
19
20
  this.prisma = prisma;
21
+ this.fileService = fileService;
20
22
  this.instructorService = instructorService;
21
23
  this.operationsIntegration = operationsIntegration;
22
24
  }
@@ -33,6 +35,17 @@ let CourseStructureService = class CourseStructureService {
33
35
  orderBy: { order: 'asc' },
34
36
  include: {
35
37
  course_lesson_file: true,
38
+ course_lesson_video_frame: {
39
+ orderBy: { id: 'asc' },
40
+ include: {
41
+ file: {
42
+ select: {
43
+ id: true,
44
+ filename: true,
45
+ },
46
+ },
47
+ },
48
+ },
36
49
  course_lesson_question: {
37
50
  orderBy: { order: 'asc' },
38
51
  },
@@ -104,15 +117,22 @@ let CourseStructureService = class CourseStructureService {
104
117
  ? String(lesson.course_lesson_question[0].question_id)
105
118
  : undefined,
106
119
  conteudoPost: parsedContent === null || parsedContent === void 0 ? void 0 : parsedContent.conteudoPost,
107
- recursos: lesson.course_lesson_file.map((fileLink) => {
108
- var _a, _b;
120
+ recursos: lesson.course_lesson_file.map((fileLink) => ({
121
+ id: String(fileLink.id),
122
+ nome: fileLink.title,
123
+ fileId: fileLink.file_id,
124
+ tamanho: '',
125
+ type: this.readLessonFileType(fileLink),
126
+ is_public: this.readLessonFileVisibility(fileLink),
127
+ })),
128
+ frames: lesson.course_lesson_video_frame.map((frame) => {
129
+ var _a, _b, _c, _d;
109
130
  return ({
110
- id: String(fileLink.id),
111
- nome: fileLink.title,
112
- fileId: fileLink.file_id,
113
- tamanho: '',
114
- tipo: (_a = fileLink.tipo) !== null && _a !== void 0 ? _a : '',
115
- publico: (_b = fileLink.publico) !== null && _b !== void 0 ? _b : true,
131
+ id: String(frame.id),
132
+ nome: (_b = (_a = frame.file) === null || _a === void 0 ? void 0 : _a.filename) !== null && _b !== void 0 ? _b : `frame-${frame.id}`,
133
+ fileId: (_c = frame.file_id) !== null && _c !== void 0 ? _c : 0,
134
+ timeSeconds: (_d = frame.time_seconds) !== null && _d !== void 0 ? _d : 0,
135
+ url: frame.file_id ? `/file/open/${frame.file_id}` : undefined,
116
136
  });
117
137
  }),
118
138
  instrutores: lesson.course_lesson_instructor.map((item) => {
@@ -163,8 +183,8 @@ let CourseStructureService = class CourseStructureService {
163
183
  id: row.id,
164
184
  nome: row.title,
165
185
  fileId: row.file_id,
166
- tipo: 'file',
167
- publico: true,
186
+ type: 'student_download',
187
+ is_public: true,
168
188
  }));
169
189
  }
170
190
  async updateCourseResources(courseId, dto) {
@@ -343,6 +363,107 @@ let CourseStructureService = class CourseStructureService {
343
363
  await this.prisma.course_lesson.delete({ where: { id: lessonId } });
344
364
  return { success: true };
345
365
  }
366
+ async deleteLessonFrame(courseId, sessionId, lessonId, frameId) {
367
+ const frame = await this.prisma.course_lesson_video_frame.findFirst({
368
+ where: {
369
+ id: frameId,
370
+ course_lesson_id: lessonId,
371
+ course_lesson: {
372
+ course_module_id: sessionId,
373
+ course_module: { course_id: courseId },
374
+ },
375
+ },
376
+ select: {
377
+ id: true,
378
+ file_id: true,
379
+ },
380
+ });
381
+ if (!frame) {
382
+ throw new common_1.NotFoundException('Lesson frame not found for this lesson');
383
+ }
384
+ await this.prisma.course_lesson_video_frame.delete({ where: { id: frameId } });
385
+ if (frame.file_id) {
386
+ await this.fileService.delete('pt', { ids: [frame.file_id] }).catch(() => undefined);
387
+ }
388
+ return { success: true };
389
+ }
390
+ async createLessonFrame(courseId, sessionId, lessonId, dto) {
391
+ const lesson = await this.prisma.course_lesson.findFirst({
392
+ where: {
393
+ id: lessonId,
394
+ course_module_id: sessionId,
395
+ course_module: { course_id: courseId },
396
+ },
397
+ select: { id: true },
398
+ });
399
+ if (!lesson) {
400
+ throw new common_1.NotFoundException('Lesson not found for this session');
401
+ }
402
+ await this.fileService.get(dto.fileId);
403
+ const created = await this.prisma.course_lesson_video_frame.create({
404
+ data: {
405
+ course_lesson_id: lessonId,
406
+ file_id: dto.fileId,
407
+ time_seconds: dto.timeSeconds,
408
+ },
409
+ select: {
410
+ id: true,
411
+ file_id: true,
412
+ time_seconds: true,
413
+ },
414
+ });
415
+ return {
416
+ success: true,
417
+ id: created.id,
418
+ fileId: created.file_id,
419
+ timeSeconds: created.time_seconds,
420
+ };
421
+ }
422
+ async updateLessonFrame(courseId, sessionId, lessonId, frameId, dto) {
423
+ const frame = await this.prisma.course_lesson_video_frame.findFirst({
424
+ where: {
425
+ id: frameId,
426
+ course_lesson_id: lessonId,
427
+ course_lesson: {
428
+ course_module_id: sessionId,
429
+ course_module: { course_id: courseId },
430
+ },
431
+ },
432
+ select: {
433
+ id: true,
434
+ file_id: true,
435
+ },
436
+ });
437
+ if (!frame) {
438
+ throw new common_1.NotFoundException('Lesson frame not found for this lesson');
439
+ }
440
+ if (dto.timeSeconds === undefined && dto.fileId === undefined) {
441
+ throw new common_1.BadRequestException('No frame update fields provided');
442
+ }
443
+ if (dto.fileId !== undefined) {
444
+ await this.fileService.get(dto.fileId);
445
+ }
446
+ const updated = await this.prisma.course_lesson_video_frame.update({
447
+ where: { id: frameId },
448
+ data: Object.assign(Object.assign({}, (dto.timeSeconds !== undefined && { time_seconds: dto.timeSeconds })), (dto.fileId !== undefined && { file_id: dto.fileId })),
449
+ select: {
450
+ id: true,
451
+ file_id: true,
452
+ time_seconds: true,
453
+ },
454
+ });
455
+ if (dto.fileId !== undefined &&
456
+ frame.file_id &&
457
+ frame.file_id !== dto.fileId) {
458
+ await this.fileService.delete('pt', { ids: [frame.file_id] }).catch(() => undefined);
459
+ }
460
+ return {
461
+ success: true,
462
+ id: updated.id,
463
+ fileId: updated.file_id,
464
+ timeSeconds: updated.time_seconds,
465
+ };
466
+ }
346
467
  async reorderSessions(courseId, dto) {
347
468
  await this.ensureCourseExists(courseId);
348
469
  // Validate that all provided IDs belong to the course
@@ -502,16 +623,7 @@ let CourseStructureService = class CourseStructureService {
502
623
  });
503
624
  if (lesson.course_lesson_file.length > 0) {
504
625
  await this.prisma.course_lesson_file.createMany({
505
- data: lesson.course_lesson_file.map((f) => {
506
- var _a, _b;
507
- return ({
508
- course_lesson_id: newLesson.id,
509
- title: f.title,
510
- file_id: f.file_id,
511
- tipo: (_a = f.tipo) !== null && _a !== void 0 ? _a : null,
512
- publico: (_b = f.publico) !== null && _b !== void 0 ? _b : true,
513
- });
514
- }),
626
+ data: lesson.course_lesson_file.map((f) => (Object.assign({ course_lesson_id: newLesson.id, title: f.title, file_id: f.file_id }, this.buildLessonFilePersistence(f.type, f.is_public)))),
515
627
  });
516
628
  }
517
629
  if (lesson.course_lesson_instructor.length > 0) {
@@ -599,16 +711,7 @@ let CourseStructureService = class CourseStructureService {
599
711
  });
600
712
  if (sourceLesson.course_lesson_file.length > 0) {
601
713
  await this.prisma.course_lesson_file.createMany({
602
- data: sourceLesson.course_lesson_file.map((f) => {
603
- var _a, _b;
604
- return ({
605
- course_lesson_id: newLesson.id,
606
- title: f.title,
607
- file_id: f.file_id,
608
- tipo: (_a = f.tipo) !== null && _a !== void 0 ? _a : null,
609
- publico: (_b = f.publico) !== null && _b !== void 0 ? _b : true,
610
- });
611
- }),
714
+ data: sourceLesson.course_lesson_file.map((f) => (Object.assign({ course_lesson_id: newLesson.id, title: f.title, file_id: f.file_id }, this.buildLessonFilePersistence(f.type, f.is_public)))),
612
715
  });
613
716
  }
614
717
  if (sourceLesson.course_lesson_instructor.length > 0) {
@@ -683,16 +786,7 @@ let CourseStructureService = class CourseStructureService {
683
786
  });
684
787
  if (lesson.course_lesson_file.length > 0) {
685
788
  await this.prisma.course_lesson_file.createMany({
686
- data: lesson.course_lesson_file.map((f) => {
687
- var _a, _b;
688
- return ({
689
- course_lesson_id: newLesson.id,
690
- title: f.title,
691
- file_id: f.file_id,
692
- tipo: (_a = f.tipo) !== null && _a !== void 0 ? _a : null,
693
- publico: (_b = f.publico) !== null && _b !== void 0 ? _b : true,
694
- });
695
- }),
789
+ data: lesson.course_lesson_file.map((f) => (Object.assign({ course_lesson_id: newLesson.id, title: f.title, file_id: f.file_id }, this.buildLessonFilePersistence(f.type, f.is_public)))),
696
790
  });
697
791
  }
698
792
  if (lesson.course_lesson_instructor.length > 0) {
@@ -725,25 +819,71 @@ let CourseStructureService = class CourseStructureService {
725
819
  }
726
820
  return { lessons: result };
727
821
  }
822
+ async getTranscriptionSegments(lessonId) {
823
+ return this.prisma.course_lesson_transcription_segment.findMany({
824
+ where: { course_lesson_id: lessonId },
825
+ orderBy: { start_seconds: 'asc' },
826
+ select: {
827
+ id: true,
828
+ start_seconds: true,
829
+ end_seconds: true,
830
+ text: true,
831
+ },
832
+ });
833
+ }
834
+ async updateTranscriptionSegments(lessonId, dto) {
835
+ var _a;
836
+ return this.prisma.$transaction([
837
+ this.prisma.course_lesson_transcription_segment.deleteMany({
838
+ where: { course_lesson_id: lessonId },
839
+ }),
840
+ this.prisma.course_lesson_transcription_segment.createMany({
841
+ data: ((_a = dto.segments) !== null && _a !== void 0 ? _a : []).map((segment) => ({
842
+ course_lesson_id: lessonId,
843
+ start_seconds: segment.startSeconds,
844
+ end_seconds: segment.endSeconds,
845
+ text: segment.text,
846
+ })),
847
+ }),
848
+ ]);
849
+ }
850
+ async getAudioFiles(lessonId) {
851
+ return this.prisma.course_lesson_file.findMany({
852
+ where: {
853
+ course_lesson_id: lessonId,
854
+ type: 'lesson_audio',
855
+ },
856
+ include: {
857
+ locale: true,
858
+ file: true,
859
+ },
860
+ orderBy: { created_at: 'asc' },
861
+ });
862
+ }
728
863
  async syncLessonRelations(lessonId, dto, client = this.prisma) {
729
864
  var _a;
730
- const instructorIds = [...new Set((_a = dto.instructorIds) !== null && _a !== void 0 ? _a : [])];
731
- if (instructorIds.length > 0) {
865
+ const shouldSyncInstructors = Object.prototype.hasOwnProperty.call(dto, 'instructorIds');
866
+ const instructorIds = shouldSyncInstructors
867
+ ? [...new Set((_a = dto.instructorIds) !== null && _a !== void 0 ? _a : [])]
868
+ : [];
869
+ if (shouldSyncInstructors && instructorIds.length > 0) {
732
870
  await this.instructorService.assertQualifiedInstructorIds(instructorIds, ['course-lessons']);
733
871
  }
734
872
  const syncWithClient = async (tx) => {
735
873
  var _a;
736
- await tx.course_lesson_instructor.deleteMany({
737
- where: { course_lesson_id: lessonId },
738
- });
739
- if (instructorIds.length > 0) {
740
- await tx.course_lesson_instructor.createMany({
741
- data: instructorIds.map((instructorId, index) => ({
742
- course_lesson_id: lessonId,
743
- instructor_id: instructorId,
744
- role: index === 0 ? 'lead' : 'assistant',
745
- })),
874
+ if (shouldSyncInstructors) {
875
+ await tx.course_lesson_instructor.deleteMany({
876
+ where: { course_lesson_id: lessonId },
746
877
  });
878
+ if (instructorIds.length > 0) {
879
+ await tx.course_lesson_instructor.createMany({
880
+ data: instructorIds.map((instructorId, index) => ({
881
+ course_lesson_id: lessonId,
882
+ instructor_id: instructorId,
883
+ role: index === 0 ? 'lead' : 'assistant',
884
+ })),
885
+ });
886
+ }
747
887
  }
748
888
  await tx.course_lesson_file.deleteMany({
749
889
  where: { course_lesson_id: lessonId },
@@ -752,14 +892,8 @@ let CourseStructureService = class CourseStructureService {
752
892
  if (recursos.length > 0) {
753
893
  await tx.course_lesson_file.createMany({
754
894
  data: recursos.map((recurso) => {
755
- var _a, _b, _c;
756
- return ({
757
- course_lesson_id: lessonId,
758
- title: recurso.nome,
759
- file_id: (_a = recurso.fileId) !== null && _a !== void 0 ? _a : null,
760
- tipo: (_b = recurso.tipo) !== null && _b !== void 0 ? _b : null,
761
- publico: (_c = recurso.publico) !== null && _c !== void 0 ? _c : true,
762
- });
895
+ var _a;
896
+ return (Object.assign({ course_lesson_id: lessonId, title: recurso.nome, file_id: (_a = recurso.fileId) !== null && _a !== void 0 ? _a : null }, this.buildLessonFilePersistence(recurso.type, recurso.is_public)));
763
897
  }),
764
898
  });
765
899
  }
@@ -846,17 +980,14 @@ let CourseStructureService = class CourseStructureService {
846
980
  ? String(lesson.course_lesson_question[0].question_id)
847
981
  : undefined,
848
982
  conteudoPost: parsedContent === null || parsedContent === void 0 ? void 0 : parsedContent.conteudoPost,
849
- recursos: lesson.course_lesson_file.map((fileLink) => {
850
- var _a, _b;
851
- return ({
852
- id: String(fileLink.id),
853
- nome: fileLink.title,
854
- fileId: fileLink.file_id,
855
- tamanho: '',
856
- tipo: (_a = fileLink.tipo) !== null && _a !== void 0 ? _a : '',
857
- publico: (_b = fileLink.publico) !== null && _b !== void 0 ? _b : true,
858
- });
859
- }),
983
+ recursos: lesson.course_lesson_file.map((fileLink) => ({
984
+ id: String(fileLink.id),
985
+ nome: fileLink.title,
986
+ fileId: fileLink.file_id,
987
+ tamanho: '',
988
+ type: this.readLessonFileType(fileLink),
989
+ is_public: this.readLessonFileVisibility(fileLink),
990
+ })),
860
991
  instrutores: lesson.course_lesson_instructor.map((item) => {
861
992
  var _a;
862
993
  return ({
@@ -924,7 +1055,7 @@ let CourseStructureService = class CourseStructureService {
924
1055
  descricaoPrivada: (_a = data.descricaoPrivada) !== null && _a !== void 0 ? _a : '',
925
1056
  };
926
1057
  if (data.tipo === 'video') {
927
- payload.videoProvedor = (_b = data.videoProvedor) !== null && _b !== void 0 ? _b : 'youtube';
1058
+ payload.videoProvedor = (_b = data.videoProvedor) !== null && _b !== void 0 ? _b : 'file_storage';
928
1059
  payload.videoUrl = (_c = data.videoUrl) !== null && _c !== void 0 ? _c : '';
929
1060
  payload.duracaoAutomatica = (_d = data.duracaoAutomatica) !== null && _d !== void 0 ? _d : false;
930
1061
  payload.transcricao = (_e = data.transcricao) !== null && _e !== void 0 ? _e : '';
@@ -950,6 +1081,39 @@ let CourseStructureService = class CourseStructureService {
950
1081
  return null;
951
1082
  }
952
1083
  }
1084
+ normalizeLessonFileType(value) {
1085
+ if (value === 'video_original') {
1086
+ return 'video_original';
1087
+ }
1088
+ if (value === null || value === void 0 ? void 0 : value.startsWith('video_profile:')) {
1089
+ const profileId = Number(value.replace('video_profile:', ''));
1090
+ if (Number.isInteger(profileId) && profileId > 0) {
1091
+ return `video_profile:${profileId}`;
1092
+ }
1093
+ }
1094
+ if (value === 'lesson_audio') {
1095
+ return 'lesson_audio';
1096
+ }
1097
+ if (value === 'student_download' || value === 'file' || value === 'download') {
1098
+ return 'student_download';
1099
+ }
1100
+ return 'supplementary_material';
1101
+ }
1102
+ readLessonFileType(fileLink) {
1103
+ return this.normalizeLessonFileType(fileLink === null || fileLink === void 0 ? void 0 : fileLink.type);
1104
+ }
1105
+ readLessonFileVisibility(fileLink) {
1106
+ var _a;
1107
+ return Boolean((_a = fileLink === null || fileLink === void 0 ? void 0 : fileLink.is_public) !== null && _a !== void 0 ? _a : true);
1108
+ }
1109
+ buildLessonFilePersistence(typeValue, isPublicValue) {
1110
+ const normalizedType = this.normalizeLessonFileType(typeValue);
1111
+ const normalizedIsPublic = Boolean(isPublicValue !== null && isPublicValue !== void 0 ? isPublicValue : true);
1112
+ return {
1113
+ type: normalizedType,
1114
+ is_public: normalizedIsPublic,
1115
+ };
1116
+ }
953
1117
  personName(person) {
954
1118
  var _a;
955
1119
  return ((_a = person === null || person === void 0 ? void 0 : person.name) === null || _a === void 0 ? void 0 : _a.trim()) || 'Instructor';
@@ -962,6 +1126,7 @@ exports.CourseStructureService = CourseStructureService;
962
1126
  exports.CourseStructureService = CourseStructureService = __decorate([
963
1127
  (0, common_1.Injectable)(),
964
1128
  __metadata("design:paramtypes", [api_prisma_1.PrismaService,
1129
+ core_1.FileService,
965
1130
  instructor_service_1.InstructorService,
966
1131
  course_operations_integration_service_1.CourseOperationsIntegrationService])
967
1132
  ], CourseStructureService);
@@ -1 +1 @@
1
- {"version":3,"file":"course-structure.service.js","sourceRoot":"","sources":["../../src/course/course-structure.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"course-structure.service.js","sourceRoot":"","sources":["../../src/course/course-structure.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAoD;AACpD,wCAA4C;AAC5C,2CAAoF;AACpF,yEAAqE;AACrE,mGAA6F;AAwBtF,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YACmB,MAAqB,EACrB,WAAwB,EACxB,iBAAoC,EACpC,qBAAyD;QAHzD,WAAM,GAAN,MAAM,CAAe;QACrB,gBAAW,GAAX,WAAW,CAAa;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,0BAAqB,GAArB,qBAAqB,CAAoC;IACzE,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,QAAgB;;QACjC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,GAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACjC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBACzB,OAAO,EAAE;oBACP,aAAa,EAAE;wBACb,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;wBACzB,OAAO,EAAE;4BACP,kBAAkB,EAAE,IAAI;4BACxB,yBAAyB,EAAE;gCACzB,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;gCACtB,OAAO,EAAE;oCACP,IAAI,EAAE;wCACJ,MAAM,EAAE;4CACN,EAAE,EAAE,IAAI;4CACR,QAAQ,EAAE,IAAI;yCACf;qCACF;iCACF;6BACF;4BACD,sBAAsB,EAAE;gCACtB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;6BAC1B;4BACD,wBAAwB,EAAE;gCACxB,OAAO,EAAE;oCACP,UAAU,EAAE;wCACV,OAAO,EAAE;4CACP,MAAM,EAAE;gDACN,MAAM,EAAE;oDACN,IAAI,EAAE,IAAI;iDACX;6CACF;yCACF;qCACF;iCACF;gCACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;6BACvB;yBACF;qBACF;iBACF;aACF,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;gBACvB,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC3D,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CACzE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC7E,CAAC;QACF,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAC9C,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,KAAK,GAAG,CAAC,CAAC;gBACvD,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,OAAO,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC;gBACrC,SAAS,EAAE,KAAK;aACjB,CAAC,CAAA;SAAA,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;YACzC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,CAAC,CAAC;YAE5E,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,KAAK,GAAG,CAAC,CAAC;gBACvD,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,gBAAgB,EAAE,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE;gBAC1C,gBAAgB,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,gBAAgB,mCAAI,EAAE;gBACvD,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,aAAa,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa;gBAC3C,QAAQ,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ;gBACjC,iBAAiB,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,iBAAiB;gBACnD,WAAW,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW;gBACvC,oBAAoB,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,oBAAoB;gBACzD,cAAc,EACZ,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,KAAI,IAAI;oBACnC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;oBACtC,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,IAAI;wBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;wBACtD,CAAC,CAAC,SAAS;gBACjB,YAAY,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY;gBACzC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACrD,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,IAAI,EAAE,QAAQ,CAAC,KAAK;oBACpB,MAAM,EAAE,QAAQ,CAAC,OAAO;oBACxB,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oBACvC,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;iBACnD,CAAC,CAAC;gBACH,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;oBAAC,OAAA,CAAC;wBACvD,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACpB,IAAI,EAAE,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,mCAAI,SAAS,KAAK,CAAC,EAAE,EAAE;wBACjD,MAAM,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,CAAC;wBAC1B,WAAW,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,CAAC;wBACpC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;qBAC/D,CAAC,CAAA;iBAAA,CAAC;gBACH,WAAW,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;oBAAC,OAAA,CAAC;wBAC1D,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAC;qBAC/C,CAAC,CAAA;iBAAA,CAAC;gBACH,gBAAgB,EAAE,MAAA,MAAA,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,MAAM,mCAAI,IAAI;gBAChE,kBAAkB,EAAE,MAAA,MAAA,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,QAAQ,mCAAI,IAAI;gBACpE,oBAAoB,EAClB,MAAA,MAAA,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,UAAU,mCAAI,IAAI;aACrD,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO;YACL,OAAO;YACP,KAAK;YACL,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC5C,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CAAC;YACH,KAAK,EAAE,YAAY;gBACjB,CAAC,CAAC;oBACE,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3B,IAAI,EAAE,MAAA,YAAY,CAAC,IAAI,mCAAI,EAAE;oBAC7B,IAAI,EAAE,MAAA,YAAY,CAAC,IAAI,mCAAI,EAAE;oBAC7B,MAAM,EAAE,YAAY,CAAC,KAAK;oBAC1B,SAAS,EAAE,MAAA,YAAY,CAAC,WAAW,mCAAI,EAAE;oBACzC,YAAY,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,WAAW;oBACvD,QAAQ,EAAE,eAAe;oBACzB,mBAAmB,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,mCAAI,IAAI;oBACrD,qBAAqB,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,mCAAI,IAAI;oBACzD,qBAAqB,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,mCAAI,IAAI;iBAC1D;gBACH,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAEvC;;;0BAGqB,QAAQ;;KAE7B,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,KAAK;YACf,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,QAAgB,EAAE,GAA6B;;QACzE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,QAAQ,mCAAI,EAAE,CAAC;QAEpC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;;YAC1C,MAAM,EAAE,CAAC,WAAW,CAAA;;4BAEE,QAAQ;OAC7B,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,EAAE,CAAC,WAAW,CAAA;;oBAER,QAAQ,KAAK,OAAO,CAAC,IAAI,KAAK,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI;SAC/D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,GAAoC;;QACxE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YACrD,IAAI,EAAE;gBACJ,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,WAAW,EAAE,MAAA,GAAG,CAAC,SAAS,mCAAI,IAAI;gBAClC,gBAAgB,EAAE,GAAG,CAAC,OAAO;gBAC7B,KAAK,EAAE,SAAS;aACjB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,OAAO,CAAC,KAAK,mCAAI,SAAS,CAAC;YACxD,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,OAAO,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,CAAC;YACtC,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,SAAiB,EACjB,GAAoC;;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7C,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YACrD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACxB,IAAI,gDACC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GACnD,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,GAC/D,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CACpE;SACF,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,OAAO,CAAC,KAAK,mCAAI,CAAC,CAAC;YAChD,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,OAAO,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,CAAC;YACtC,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,SAAiB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7C,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAErE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,SAAiB,EACjB,GAAmC;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7C,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;;YAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE;oBACJ,gBAAgB,EAAE,SAAS;oBAC3B,KAAK,EAAE,GAAG,CAAC,MAAM;oBACjB,WAAW,EAAE,MAAA,GAAG,CAAC,gBAAgB,mCAAI,IAAI;oBACzC,IAAI,EAAE,UAAU;oBAChB,gBAAgB,EAAE,GAAG,CAAC,OAAO,GAAG,EAAE;oBAClC,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;iBACpC;aACF,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CACzE,CAAC,QAAQ,CAAC,EACV,EAAE,CACH,CAAC;YAEF,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,EAAE;gBACvD,QAAQ;gBACR,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,SAAS,EAAE,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,SAAS,mCAAI,IAAI;gBACxD,WAAW,EAAE,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI;gBACzC,YAAY,EAAE,MAAM,CAAC,KAAK;gBAC1B,WAAW,EAAE,GAAG,CAAC,MAAM;gBACvB,iBAAiB,EAAE,MAAA,GAAG,CAAC,gBAAgB,mCAAI,IAAI;aAChD,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,GAAmC;;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ;gBACZ,gBAAgB,EAAE,SAAS;gBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YACrD,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;YACvB,IAAI,4EACC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GACnD,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI;gBACxC,WAAW,EAAE,GAAG,CAAC,gBAAgB;aAClC,CAAC,GACC,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GACtE,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI;gBAC/B,gBAAgB,EAAE,GAAG,CAAC,OAAO,GAAG,EAAE;aACnC,CAAC,KACF,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;oBAC7B,IAAI,EAAE,MAAA,GAAG,CAAC,IAAI,mCAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;oBACrD,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;oBACxC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;oBAC9C,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;iBACvC,CAAC,GACH;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,SAAiB,EACjB,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ;gBACZ,gBAAgB,EAAE,SAAS;gBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEpE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,OAAe;QAEf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC;YAClE,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,gBAAgB,EAAE,QAAQ;gBAC1B,aAAa,EAAE;oBACb,gBAAgB,EAAE,SAAS;oBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;iBACvC;aACF;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,wCAAwC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE/E,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,GAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ;gBACZ,gBAAgB,EAAE,SAAS;gBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;YACD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC;YACjE,IAAI,EAAE;gBACJ,gBAAgB,EAAE,QAAQ;gBAC1B,OAAO,EAAE,GAAG,CAAC,MAAM;gBACnB,YAAY,EAAE,GAAG,CAAC,WAAW;aAC9B;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;aACnB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,WAAW,EAAE,OAAO,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,GAA+B;QAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC;YAClE,KAAK,EAAE;gBACL,EAAE,EAAE,OAAO;gBACX,gBAAgB,EAAE,QAAQ;gBAC1B,aAAa,EAAE;oBACb,gBAAgB,EAAE,SAAS;oBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;iBACvC;aACF;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,wCAAwC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9D,MAAM,IAAI,4BAAmB,CAAC,iCAAiC,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC;YACjE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;YACtB,IAAI,kCACC,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,GACpE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CACzD;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;aACnB;SACF,CAAC,CAAC;QAEH,IACE,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,EAC5B,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvF,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,WAAW,EAAE,OAAO,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,GAAuB;QAC7D,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAExC,sDAAsD;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;YACxD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC9B,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,4BAAmB,CAAC,WAAW,EAAE,8BAA8B,QAAQ,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC5B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;SAC3B,CAAC,CACH,CACF,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,SAAiB,EAAE,GAAsB;QAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;YACxD,KAAK,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,4BAAmB,CAAC,UAAU,EAAE,+BAA+B,SAAS,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC5B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;SAC3B,CAAC,CACH,CACF,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,GAAkB;;QAElB,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ;gBACZ,gBAAgB,EAAE,SAAS;gBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,uDAAuD;QACvD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE;SACpD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,0BAAiB,CAAC,0CAA0C,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAClC,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACxD,KAAK,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;gBAC7D,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBACzB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;aACrB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAA,GAAG,CAAC,OAAO,mCAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG;gBACjB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,QAAQ;gBACR,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC/B,KAAK,EAAE,EAAE,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;aAC3B,CAAC,CACH,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACxD,KAAK,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,WAAW,EAAE;gBAC5C,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBACzB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;aACrB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAA,GAAG,CAAC,OAAO,mCAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG;gBACjB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,QAAQ;gBACR,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;oBAC/B,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;oBACvB,IAAI,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,WAAW,EAAE;iBAC5C,CAAC;gBACF,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;oBAC/B,KAAK,EAAE,EAAE,EAAE,EAAE;oBACb,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;iBAC3B,CAAC,CACH;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;;QACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7C,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;iBACF;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;oBACzB,OAAO,EAAE;wBACP,kBAAkB,EAAE,IAAI;wBACxB,sBAAsB,EAAE,IAAI;wBAC5B,wBAAwB,EAAE,IAAI;qBAC/B;iBACF;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YACvD,IAAI,EAAE;gBACJ,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,YAAY,YAAY,CAAC,KAAK,EAAE;gBACvC,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,KAAK,EAAE,SAAS;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;YAC1E,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBACvD,IAAI,EAAE;oBACJ,gBAAgB,EAAE,SAAS,CAAC,EAAE;oBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAO,IAAI,CAAC,MAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC;oBACvD,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBACzC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,OAAO,EAAE,CAAC,CAAC,OAAO,IACf,IAAI,CAAC,0BAA0B,CAAE,CAAS,CAAC,IAAI,EAAG,CAAS,CAAC,SAAS,CAAC,EACzE,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC;oBACpD,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChD,gBAAgB,EAAE,SAAS,CAAC,EAAE;wBAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC;oBAClD,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9C,gBAAgB,EAAE,SAAS,CAAC,EAAE;wBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChE,QAAQ;gBACR,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACtB,SAAS;gBACT,WAAW,EAAE,MAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI;gBAC/C,YAAY,EAAE,SAAS,CAAC,KAAK;gBAC7B,WAAW,EAAE,SAAS,CAAC,KAAK;gBAC5B,iBAAiB,EAAE,SAAS,CAAC,WAAW;aACzC,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,SAAS,CAAC,KAAK,mCAAI,SAAS,CAAC;gBAC1D,MAAM,EAAE,SAAS,CAAC,KAAK;gBACvB,OAAO,EAAE,MAAA,SAAS,CAAC,gBAAgB,mCAAI,CAAC;gBACxC,SAAS,EAAE,KAAK;aACjB;YACD,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAgB;;QACzE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ;gBACZ,gBAAgB,EAAE,SAAS;gBAC3B,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;YACD,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE;4BACN,MAAM,EAAE;gCACN,KAAK,EAAE,IAAI;6BACZ;yBACF;qBACF;iBACF;gBACD,kBAAkB,EAAE,IAAI;gBACxB,sBAAsB,EAAE,IAAI;gBAC5B,wBAAwB,EAAE,IAAI;aAC/B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;YAC1E,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QAEhE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YACvD,IAAI,EAAE;gBACJ,gBAAgB,EAAE,SAAS;gBAC3B,KAAK,EAAE,YAAY,YAAY,CAAC,KAAK,EAAE;gBACvC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,KAAK,EAAE,SAAS;aACjB;SACF,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAO,IAAI,CAAC,MAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC;gBACvD,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAC/C,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,OAAO,EAAE,CAAC,CAAC,OAAO,IACf,IAAI,CAAC,0BAA0B,CAAE,CAAS,CAAC,IAAI,EAAG,CAAS,CAAC,SAAS,CAAC,EACzE,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC;gBACpD,IAAI,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtD,gBAAgB,EAAE,SAAS,CAAC,EAAE;oBAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC;gBAClD,IAAI,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpD,gBAAgB,EAAE,SAAS,CAAC,EAAE;oBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE;YAChE,QAAQ;YACR,QAAQ,EAAE,SAAS,CAAC,EAAE;YACtB,SAAS;YACT,WAAW,EAAE,MAAA,MAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,MAAM,0CAAE,KAAK,mCAAI,IAAI;YAC9D,YAAY,EAAE,MAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,KAAK,mCAAI,IAAI;YACvD,WAAW,EAAE,SAAS,CAAC,KAAK;YAC5B,iBAAiB,EAAE,SAAS,CAAC,WAAW;SACzC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,eAAuB,EAAE,GAAoB;;QAChF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE;SACpD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,0BAAiB,CAAC,0CAA0C,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC7D,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE;gBACzB,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACvC;YACD,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;YACzB,OAAO,EAAE;gBACP,kBAAkB,EAAE,IAAI;gBACxB,sBAAsB,EAAE,IAAI;gBAC5B,wBAAwB,EAAE,IAAI;aAC/B;SACF,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,4BAAmB,CAAC,2CAA2C,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;YAC1E,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAA,MAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBACvD,IAAI,EAAE;oBACJ,gBAAgB,EAAE,eAAe;oBACjC,KAAK,EAAE,YAAY,MAAM,CAAC,KAAK,EAAE;oBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAO,IAAI,CAAC,MAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC;oBACvD,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBACzC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,OAAO,EAAE,CAAC,CAAC,OAAO,IACf,IAAI,CAAC,0BAA0B,CAAE,CAAS,CAAC,IAAI,EAAG,CAAS,CAAC,SAAS,CAAC,EACzE,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC;oBACpD,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChD,gBAAgB,EAAE,SAAS,CAAC,EAAE;wBAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC;oBAClD,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9C,gBAAgB,EAAE,SAAS,CAAC,EAAE;wBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChE,QAAQ;gBACR,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACtB,SAAS;gBACT,YAAY,EAAE,YAAY,CAAC,KAAK;gBAChC,WAAW,EAAE,SAAS,CAAC,KAAK;gBAC5B,iBAAiB,EAAE,SAAS,CAAC,WAAW;aACzC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,QAAgB;QAC7C,OAAQ,IAAI,CAAC,MAAc,CAAC,mCAAmC,CAAC,QAAQ,CAAC;YACvE,KAAK,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;YACrC,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YACjC,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,QAAgB,EAChB,GAAmC;;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7B,IAAI,CAAC,MAAc,CAAC,mCAAmC,CAAC,UAAU,CAAC;gBAClE,KAAK,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;aACtC,CAAC;YACD,IAAI,CAAC,MAAc,CAAC,mCAAmC,CAAC,UAAU,CAAC;gBAClE,IAAI,EAAE,CAAC,MAAA,GAAG,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC3C,gBAAgB,EAAE,QAAQ;oBAC1B,aAAa,EAAE,OAAO,CAAC,YAAY;oBACnC,WAAW,EAAE,OAAO,CAAC,UAAU;oBAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC,CAAC;aACJ,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAQ,IAAI,CAAC,MAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACtD,KAAK,EAAE;gBACL,gBAAgB,EAAE,QAAQ;gBAC1B,IAAI,EAAE,cAAc;aACrB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;aACX;YACD,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,QAAgB,EAChB,GAKC,EACD,SAAc,IAAI,CAAC,MAAM;;QAEzB,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAChE,GAAG,EACH,eAAe,CAChB,CAAC;QACF,MAAM,aAAa,GAAG,qBAAqB;YACzC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAA,GAAG,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,qBAAqB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CACvD,aAAa,EACb,CAAC,gBAAgB,CAAC,CACnB,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,EAAE,EAAO,EAAE,EAAE;;YACvC,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;oBAC3C,KAAK,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;iBACtC,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;wBAC3C,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;4BAChD,gBAAgB,EAAE,QAAQ;4BAC1B,aAAa,EAAE,YAAY;4BAC3B,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;yBACzC,CAAC,CAAC;qBACJ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC;gBACrC,KAAK,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,QAAQ,mCAAI,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAO,EAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC;oBAC9C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;wBAAC,OAAA,iBAC9B,gBAAgB,EAAE,QAAQ,EAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,OAAO,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,IAC5B,IAAI,CAAC,0BAA0B,CAAE,OAAe,CAAC,IAAI,EAAG,OAAe,CAAC,SAAS,CAAC,EACrF,CAAA;qBAAA,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC;gBACzC,KAAK,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;aACtC,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACjD,MAAM,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC;oBACrC,IAAI,EAAE;wBACJ,gBAAgB,EAAE,QAAQ;wBAC1B,WAAW,EAAE,GAAG,CAAC,cAAc;wBAC/B,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAA,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAO,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;YACxD,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;YACvB,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,MAAM,EAAE;wBACN,EAAE,EAAE,IAAI;wBACR,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE;4BACN,MAAM,EAAE;gCACN,KAAK,EAAE,IAAI;6BACZ;yBACF;qBACF;iBACF;gBACD,kBAAkB,EAAE,IAAI;gBACxB,sBAAsB,EAAE;oBACtB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;iBAC1B;gBACD,wBAAwB,EAAE;oBACxB,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,OAAO,EAAE;gCACP,MAAM,EAAE;oCACN,MAAM,EAAE;wCACN,IAAI,EAAE,IAAI;qCACX;iCACF;6BACF;yBACF;qBACF;oBACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;iBACvB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC;YACpE,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,CAAC,CAAC;QAE5E,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC;YAC/C,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,gBAAgB,EAAE,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE;YAC1C,gBAAgB,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,gBAAgB,mCAAI,EAAE;YACvD,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACrE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACzC,aAAa,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa;YAC3C,QAAQ,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ;YACjC,iBAAiB,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,iBAAiB;YACnD,WAAW,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW;YACvC,oBAAoB,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,oBAAoB;YACzD,cAAc,EACZ,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,KAAI,IAAI;gBACnC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;gBACtC,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,IAAI;oBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACtD,CAAC,CAAC,SAAS;YACjB,YAAY,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY;YACzC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACrD,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,EAAE,QAAQ,CAAC,KAAK;gBACpB,MAAM,EAAE,QAAQ,CAAC,OAAO;gBACxB,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACvC,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;aACnD,CAAC,CAAC;YACH,WAAW,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBAC1D,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAC;iBAC/C,CAAC,CAAA;aAAA,CAAC;YACH,gBAAgB,EAAE,MAAA,MAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI;YACzD,kBAAkB,EAAE,MAAA,MAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,QAAQ,mCAAI,IAAI;YAC7D,oBAAoB,EAAE,MAAA,MAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,UAAU,mCAAI,IAAI;SAClE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YACjD,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;YACvB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB;;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YACrD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC9B,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,SAAc,IAAI,CAAC,MAAM;;QACxE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAChD,KAAK,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE;YACtC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEO,iBAAiB,CAAC,IAAkB;QAC1C,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CACvB,IAAY,EACZ,UAAmB;QAEnB,IACE,UAAU,KAAK,OAAO;YACtB,UAAU,KAAK,SAAS;YACxB,UAAU,KAAK,MAAM;YACrB,UAAU,KAAK,WAAW,EAC1B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QACrC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,IAUxB;;QACC,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,gBAAgB,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,EAAE;SAC9C,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,cAAc,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC;YACvC,OAAO,CAAC,iBAAiB,GAAG,MAAA,IAAI,CAAC,iBAAiB,mCAAI,KAAK,CAAC;YAC5D,OAAO,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACtC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtD,OAAO,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEO,kBAAkB,CAAC,OAAuB;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,KAAqB;QACnD,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,iBAAiB,SAAS,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,KAAK,kBAAkB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YAC7E,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAEO,kBAAkB,CAAC,QAAa;QACtC,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAEO,wBAAwB,CAAC,QAAa;;QAC5C,OAAO,OAAO,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,mCAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,0BAA0B,CAChC,SAAyB,EACzB,aAAuB;QAEvB,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,CAAC,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,kBAAkB;SAC9B,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,MAEX;;QACN,OAAO,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,IAAI,EAAE,KAAI,YAAY,CAAC;IAC9C,CAAC;IAEO,UAAU,CAAC,MAAiB,EAAE,KAAa;QACjD,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACnE,CAAC;CACF,CAAA;AA10CY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAGgB,0BAAa;QACR,kBAAW;QACL,sCAAiB;QACb,0EAAkC;GALjE,sBAAsB,CA00ClC"}
@@ -1,17 +1,23 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
- import { FileService } from '@hed-hog/core';
2
+ import { FileService, NotificationService, SettingService } from '@hed-hog/core';
3
3
  import { IJobHandler, QueueHandlerRegistry, QueueJobService } from '@hed-hog/queue';
4
4
  import { OnModuleInit } from '@nestjs/common';
5
5
  export declare const LMS_VIDEO_CONVERSION_JOB = "lms.video.convert";
6
6
  export declare class CourseVideoConversionService implements OnModuleInit, IJobHandler {
7
7
  private readonly prisma;
8
8
  private readonly fileService;
9
+ private readonly settingService;
10
+ private readonly notificationService;
9
11
  private readonly registry;
10
12
  private readonly queueJob;
11
13
  private readonly logger;
12
- constructor(prisma: PrismaService, fileService: FileService, registry: QueueHandlerRegistry, queueJob: QueueJobService);
14
+ private createProgressEvent;
15
+ private resolveNotificationProgress;
16
+ private updateAsyncNotification;
17
+ constructor(prisma: PrismaService, fileService: FileService, settingService: SettingService, notificationService: NotificationService, registry: QueueHandlerRegistry, queueJob: QueueJobService);
13
18
  onModuleInit(): void;
14
19
  enqueueConversion(params: {
20
+ userId: number;
15
21
  courseId: number;
16
22
  sessionId: number;
17
23
  lessonId: number;
@@ -24,10 +30,22 @@ export declare class CourseVideoConversionService implements OnModuleInit, IJobH
24
30
  id: number;
25
31
  payload: Record<string, any>;
26
32
  }): Promise<any>;
33
+ private extractAndUploadLessonFrames;
34
+ private extractAndUploadLessonAudio;
35
+ private extractFramesFromVideo;
27
36
  private getCourseProfiles;
28
37
  private upsertLessonFile;
38
+ private normalizeLessonFileType;
29
39
  private convert;
40
+ private getFfmpegCommand;
41
+ private getFfprobeCommand;
42
+ private findWindowsWingetFfprobe;
43
+ private findFfprobeExecutableInside;
44
+ private probeDurationSeconds;
45
+ private findWindowsWingetFfmpeg;
46
+ private findFfmpegExecutableInside;
30
47
  private getPositiveIntegerEnv;
48
+ private resolveFrameIntervalSeconds;
31
49
  private calculateMBps;
32
50
  private splitFfmpegParams;
33
51
  private profileResourceType;
@@ -1 +1 @@
1
- {"version":3,"file":"course-video-conversion.service.d.ts","sourceRoot":"","sources":["../../src/course/course-video-conversion.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAMH,YAAY,EAEf,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAU5D,qBACa,4BAA6B,YAAW,YAAY,EAAE,WAAW;IAK1E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;gBAIrD,MAAM,EAAE,aAAa,EAErB,WAAW,EAAE,WAAW,EAExB,QAAQ,EAAE,oBAAoB,EAE9B,QAAQ,EAAE,eAAe;IAG5C,YAAY;IAKN,iBAAiB,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;KACxB;;;;IAkFK,MAAM,CAAC,GAAG,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;YAoJF,iBAAiB;YAiBjB,gBAAgB;YA4BhB,OAAO;IAqBrB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"course-video-conversion.service.d.ts","sourceRoot":"","sources":["../../src/course/course-video-conversion.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAMH,YAAY,EAEf,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAqB5D,qBACa,4BAA6B,YAAW,YAAY,EAAE,WAAW;IAmF1E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAEpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA5F3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;YAE1D,mBAAmB;IA+BjC,OAAO,CAAC,2BAA2B;YAwBrB,uBAAuB;gBAyBlB,MAAM,EAAE,aAAa,EAErB,WAAW,EAAE,WAAW,EAExB,cAAc,EAAE,cAAc,EAE9B,mBAAmB,EAAE,mBAAmB,EAExC,QAAQ,EAAE,oBAAoB,EAE9B,QAAQ,EAAE,eAAe;IAG5C,YAAY;IAKN,iBAAiB,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;KACxB;;;;IA8GK,MAAM,CAAC,GAAG,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;YAoeF,4BAA4B;YAsF5B,2BAA2B;YAwK3B,sBAAsB;YAyCtB,iBAAiB;YAiBjB,gBAAgB;IA8B9B,OAAO,CAAC,uBAAuB;YAoBjB,OAAO;IA2BrB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,2BAA2B;YAyBrB,oBAAoB;IA0BlC,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;CAQrB"}