grm-shared-library 1.1.117 → 1.1.118
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.
- package/dist/cjs/modules/dms/dtos/audio-file-upload-options.dto.js +85 -0
- package/dist/cjs/modules/dms/dtos/audio-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/document-file-upload-options.dto.js +43 -0
- package/dist/cjs/modules/dms/dtos/document-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/image-file-upload-options.dto.js +52 -0
- package/dist/cjs/modules/dms/dtos/image-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/multi-file-upload.dto.js +31 -0
- package/dist/cjs/modules/dms/dtos/multi-file-upload.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/video-file-upload-options.dto.js +65 -0
- package/dist/cjs/modules/dms/dtos/video-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/audio-file-upload-options.dto.js +85 -0
- package/dist/esm/modules/dms/dtos/audio-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/document-file-upload-options.dto.js +43 -0
- package/dist/esm/modules/dms/dtos/document-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/image-file-upload-options.dto.js +52 -0
- package/dist/esm/modules/dms/dtos/image-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/multi-file-upload.dto.js +31 -0
- package/dist/esm/modules/dms/dtos/multi-file-upload.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/video-file-upload-options.dto.js +65 -0
- package/dist/esm/modules/dms/dtos/video-file-upload-options.dto.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,31 +8,53 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { IsString, IsOptional, IsArray, IsBoolean, IsEnum, IsNumber, IsNotEmpty } from 'class-validator';
|
|
11
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
11
12
|
import { FileType } from '../interfaces/multi-file-upload';
|
|
12
13
|
export class MultiFileUploadOptionsDto {
|
|
13
14
|
}
|
|
14
15
|
__decorate([
|
|
16
|
+
ApiProperty({
|
|
17
|
+
description: 'ID of the user uploading the files',
|
|
18
|
+
example: 1,
|
|
19
|
+
}),
|
|
15
20
|
IsNotEmpty(),
|
|
16
21
|
IsNumber(),
|
|
17
22
|
__metadata("design:type", Number)
|
|
18
23
|
], MultiFileUploadOptionsDto.prototype, "userId", void 0);
|
|
19
24
|
__decorate([
|
|
25
|
+
ApiProperty({
|
|
26
|
+
description: 'ID of the organization the files belong to',
|
|
27
|
+
example: 12,
|
|
28
|
+
}),
|
|
20
29
|
IsNotEmpty(),
|
|
21
30
|
IsNumber(),
|
|
22
31
|
__metadata("design:type", Number)
|
|
23
32
|
], MultiFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
24
33
|
__decorate([
|
|
34
|
+
ApiPropertyOptional({
|
|
35
|
+
description: 'Tags to apply to all uploaded files',
|
|
36
|
+
example: ['project-alpha', 'marketing', '2024'],
|
|
37
|
+
type: [String],
|
|
38
|
+
}),
|
|
25
39
|
IsOptional(),
|
|
26
40
|
IsArray(),
|
|
27
41
|
IsString({ each: true }),
|
|
28
42
|
__metadata("design:type", Array)
|
|
29
43
|
], MultiFileUploadOptionsDto.prototype, "tags", void 0);
|
|
30
44
|
__decorate([
|
|
45
|
+
ApiPropertyOptional({
|
|
46
|
+
description: 'Description for the batch of uploaded files',
|
|
47
|
+
example: 'Marketing materials for Q4 2024 campaign',
|
|
48
|
+
}),
|
|
31
49
|
IsOptional(),
|
|
32
50
|
IsString(),
|
|
33
51
|
__metadata("design:type", String)
|
|
34
52
|
], MultiFileUploadOptionsDto.prototype, "description", void 0);
|
|
35
53
|
__decorate([
|
|
54
|
+
ApiPropertyOptional({
|
|
55
|
+
description: 'Whether all files should be publicly accessible',
|
|
56
|
+
example: false,
|
|
57
|
+
}),
|
|
36
58
|
IsOptional(),
|
|
37
59
|
IsBoolean(),
|
|
38
60
|
__metadata("design:type", Boolean)
|
|
@@ -40,10 +62,19 @@ __decorate([
|
|
|
40
62
|
export class FileUploadItemDto {
|
|
41
63
|
}
|
|
42
64
|
__decorate([
|
|
65
|
+
ApiProperty({
|
|
66
|
+
description: 'Type of file being uploaded',
|
|
67
|
+
enum: FileType,
|
|
68
|
+
example: FileType.IMAGE,
|
|
69
|
+
}),
|
|
43
70
|
IsEnum(FileType),
|
|
44
71
|
__metadata("design:type", String)
|
|
45
72
|
], FileUploadItemDto.prototype, "type", void 0);
|
|
46
73
|
__decorate([
|
|
74
|
+
ApiPropertyOptional({
|
|
75
|
+
description: 'Type-specific options for the file upload (ImageFileUploadOptionsDto, DocumentFileUploadOptionsDto, VideoFileUploadOptionsDto, or AudioFileUploadOptionsDto)',
|
|
76
|
+
example: { generateThumbnail: true, alt: 'Product image' },
|
|
77
|
+
}),
|
|
47
78
|
IsOptional(),
|
|
48
79
|
__metadata("design:type", Object)
|
|
49
80
|
], FileUploadItemDto.prototype, "options", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,MAAM,OAAO,yBAAyB;
|
|
1
|
+
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,MAAM,OAAO,yBAAyB;CA0CrC;AAnCG;IANC,WAAW,CAAC;QACT,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,CAAC;KACb,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAQhB;IANC,WAAW,CAAC;QACT,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,EAAE;KACd,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa;AAUxB;IARC,mBAAmB,CAAC;QACjB,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;QAC/C,IAAI,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC;IACD,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;uDACT;AAQhB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,0CAA0C;KACtD,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;8DACU;AAQrB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,KAAK;KACjB,CAAC;IACD,UAAU,EAAE;IACZ,SAAS,EAAE;;2DACO;AAGvB,MAAM,OAAO,iBAAiB;CAe7B;AARG;IANC,WAAW,CAAC;QACT,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC;;+CACD;AAOhB;IALC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8JAA8J;QAC3K,OAAO,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE;KAC7D,CAAC;IACD,UAAU,EAAE;;kDACC"}
|
|
@@ -8,60 +8,109 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { IsArray, IsBoolean, IsNumber, IsOptional, IsString, IsIn, IsNotEmpty } from "class-validator";
|
|
11
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
11
12
|
export class VideoFileUploadOptionsDto {
|
|
12
13
|
}
|
|
13
14
|
__decorate([
|
|
15
|
+
ApiPropertyOptional({
|
|
16
|
+
description: 'Destination folder path for the video',
|
|
17
|
+
example: 'videos/training/2024',
|
|
18
|
+
}),
|
|
14
19
|
IsString(),
|
|
15
20
|
IsOptional(),
|
|
16
21
|
__metadata("design:type", String)
|
|
17
22
|
], VideoFileUploadOptionsDto.prototype, "folder", void 0);
|
|
18
23
|
__decorate([
|
|
24
|
+
ApiPropertyOptional({
|
|
25
|
+
description: 'Maximum file size allowed in megabytes',
|
|
26
|
+
example: 100,
|
|
27
|
+
}),
|
|
19
28
|
IsNumber(),
|
|
20
29
|
IsOptional(),
|
|
21
30
|
__metadata("design:type", Number)
|
|
22
31
|
], VideoFileUploadOptionsDto.prototype, "maxSizeInMB", void 0);
|
|
23
32
|
__decorate([
|
|
33
|
+
ApiPropertyOptional({
|
|
34
|
+
description: 'Allowed MIME types for video files',
|
|
35
|
+
example: ['video/mp4', 'video/webm', 'video/quicktime'],
|
|
36
|
+
type: [String],
|
|
37
|
+
}),
|
|
24
38
|
IsString({ each: true }),
|
|
25
39
|
IsOptional(),
|
|
26
40
|
__metadata("design:type", Array)
|
|
27
41
|
], VideoFileUploadOptionsDto.prototype, "allowedMimeTypes", void 0);
|
|
28
42
|
__decorate([
|
|
43
|
+
ApiPropertyOptional({
|
|
44
|
+
description: 'Whether the video should be publicly accessible',
|
|
45
|
+
example: false,
|
|
46
|
+
}),
|
|
29
47
|
IsBoolean(),
|
|
30
48
|
IsOptional(),
|
|
31
49
|
__metadata("design:type", Boolean)
|
|
32
50
|
], VideoFileUploadOptionsDto.prototype, "isPublic", void 0);
|
|
33
51
|
__decorate([
|
|
52
|
+
ApiPropertyOptional({
|
|
53
|
+
description: 'Tags for categorizing and searching the video',
|
|
54
|
+
example: ['training', 'tutorial', 'onboarding'],
|
|
55
|
+
type: [String],
|
|
56
|
+
}),
|
|
34
57
|
IsArray(),
|
|
35
58
|
IsString({ each: true }),
|
|
36
59
|
IsOptional(),
|
|
37
60
|
__metadata("design:type", Array)
|
|
38
61
|
], VideoFileUploadOptionsDto.prototype, "tags", void 0);
|
|
39
62
|
__decorate([
|
|
63
|
+
ApiPropertyOptional({
|
|
64
|
+
description: 'Title of the video',
|
|
65
|
+
example: 'Employee Onboarding Tutorial - Part 1',
|
|
66
|
+
}),
|
|
40
67
|
IsString(),
|
|
41
68
|
IsOptional(),
|
|
42
69
|
__metadata("design:type", String)
|
|
43
70
|
], VideoFileUploadOptionsDto.prototype, "title", void 0);
|
|
44
71
|
__decorate([
|
|
72
|
+
ApiPropertyOptional({
|
|
73
|
+
description: 'Detailed description of the video content',
|
|
74
|
+
example: 'Comprehensive guide for new employees covering company policies',
|
|
75
|
+
}),
|
|
45
76
|
IsString(),
|
|
46
77
|
IsOptional(),
|
|
47
78
|
__metadata("design:type", String)
|
|
48
79
|
], VideoFileUploadOptionsDto.prototype, "description", void 0);
|
|
49
80
|
__decorate([
|
|
81
|
+
ApiPropertyOptional({
|
|
82
|
+
description: 'Whether to automatically generate a thumbnail from the video',
|
|
83
|
+
example: true,
|
|
84
|
+
}),
|
|
50
85
|
IsBoolean(),
|
|
51
86
|
IsOptional(),
|
|
52
87
|
__metadata("design:type", Boolean)
|
|
53
88
|
], VideoFileUploadOptionsDto.prototype, "generateThumbnail", void 0);
|
|
54
89
|
__decorate([
|
|
90
|
+
ApiPropertyOptional({
|
|
91
|
+
description: 'Whether to generate a short preview clip',
|
|
92
|
+
example: true,
|
|
93
|
+
}),
|
|
55
94
|
IsBoolean(),
|
|
56
95
|
IsOptional(),
|
|
57
96
|
__metadata("design:type", Boolean)
|
|
58
97
|
], VideoFileUploadOptionsDto.prototype, "generatePreview", void 0);
|
|
59
98
|
__decorate([
|
|
99
|
+
ApiPropertyOptional({
|
|
100
|
+
description: 'Whether to enable video transcoding to multiple formats',
|
|
101
|
+
example: true,
|
|
102
|
+
}),
|
|
60
103
|
IsBoolean(),
|
|
61
104
|
IsOptional(),
|
|
62
105
|
__metadata("design:type", Boolean)
|
|
63
106
|
], VideoFileUploadOptionsDto.prototype, "enableTranscoding", void 0);
|
|
64
107
|
__decorate([
|
|
108
|
+
ApiPropertyOptional({
|
|
109
|
+
description: 'Target quality levels for transcoded videos',
|
|
110
|
+
example: ['1080p', '720p', '480p'],
|
|
111
|
+
enum: ['1080p', '720p', '480p', '360p', '240p'],
|
|
112
|
+
isArray: true,
|
|
113
|
+
}),
|
|
65
114
|
IsArray(),
|
|
66
115
|
IsString({ each: true }),
|
|
67
116
|
IsOptional(),
|
|
@@ -69,21 +118,37 @@ __decorate([
|
|
|
69
118
|
__metadata("design:type", Array)
|
|
70
119
|
], VideoFileUploadOptionsDto.prototype, "targetQualities", void 0);
|
|
71
120
|
__decorate([
|
|
121
|
+
ApiPropertyOptional({
|
|
122
|
+
description: 'Whether to enable adaptive streaming capabilities',
|
|
123
|
+
example: true,
|
|
124
|
+
}),
|
|
72
125
|
IsBoolean(),
|
|
73
126
|
IsOptional(),
|
|
74
127
|
__metadata("design:type", Boolean)
|
|
75
128
|
], VideoFileUploadOptionsDto.prototype, "enableStreaming", void 0);
|
|
76
129
|
__decorate([
|
|
130
|
+
ApiPropertyOptional({
|
|
131
|
+
description: 'Whether to preserve the original filename',
|
|
132
|
+
example: false,
|
|
133
|
+
}),
|
|
77
134
|
IsBoolean(),
|
|
78
135
|
IsOptional(),
|
|
79
136
|
__metadata("design:type", Boolean)
|
|
80
137
|
], VideoFileUploadOptionsDto.prototype, "preserveOriginalName", void 0);
|
|
81
138
|
__decorate([
|
|
139
|
+
ApiProperty({
|
|
140
|
+
description: 'ID of the user uploading the video',
|
|
141
|
+
example: 1,
|
|
142
|
+
}),
|
|
82
143
|
IsNotEmpty(),
|
|
83
144
|
IsNumber(),
|
|
84
145
|
__metadata("design:type", Number)
|
|
85
146
|
], VideoFileUploadOptionsDto.prototype, "userId", void 0);
|
|
86
147
|
__decorate([
|
|
148
|
+
ApiProperty({
|
|
149
|
+
description: 'ID of the organization the video belongs to',
|
|
150
|
+
example: 12,
|
|
151
|
+
}),
|
|
87
152
|
IsNotEmpty(),
|
|
88
153
|
IsNumber(),
|
|
89
154
|
__metadata("design:type", Number)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,OAAO,yBAAyB;CA+HrC;AAxHG;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,sBAAsB;KAClC,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;yDACG;AAQhB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,GAAG;KACf,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACQ;AASrB;IAPC,mBAAmB,CAAC;QACjB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,iBAAiB,CAAC;QACvD,IAAI,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC;IACD,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;mEACe;AAQ5B;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,KAAK;KACjB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;2DACM;AAUnB;IARC,mBAAmB,CAAC;QACjB,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;QAC/C,IAAI,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC;IACD,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;uDACG;AAQhB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,uCAAuC;KACnD,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;wDACE;AAQf;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,iEAAiE;KAC7E,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACQ;AAQrB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;oEACe;AAQ5B;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;kEACa;AAQ1B;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;oEACe;AAY5B;IAVC,mBAAmB,CAAC;QACjB,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/C,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;IACZ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kEACE;AAQlE;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;kEACa;AAQ1B;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,KAAK;KACjB,CAAC;IACD,SAAS,EAAE;IACX,UAAU,EAAE;;uEACkB;AAQ/B;IANC,WAAW,CAAC;QACT,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,CAAC;KACb,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAQhB;IANC,WAAW,CAAC;QACT,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,EAAE;KACd,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa"}
|