appshot-cli 0.1.0 → 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.
- package/README.md +377 -5
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +4 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/gradients.d.ts +3 -0
- package/dist/commands/gradients.d.ts.map +1 -0
- package/dist/commands/gradients.js +343 -0
- package/dist/commands/gradients.js.map +1 -0
- package/dist/commands/style.d.ts +3 -0
- package/dist/commands/style.d.ts.map +1 -0
- package/dist/commands/style.js +375 -0
- package/dist/commands/style.js.map +1 -0
- package/dist/core/compose.d.ts.map +1 -1
- package/dist/core/compose.js +128 -52
- package/dist/core/compose.js.map +1 -1
- package/dist/core/devices.d.ts.map +1 -1
- package/dist/core/devices.js +413 -31
- package/dist/core/devices.js.map +1 -1
- package/dist/core/gradient-presets.d.ts +25 -0
- package/dist/core/gradient-presets.d.ts.map +1 -0
- package/dist/core/gradient-presets.js +222 -0
- package/dist/core/gradient-presets.js.map +1 -0
- package/dist/core/text-utils.d.ts +39 -0
- package/dist/core/text-utils.d.ts.map +1 -0
- package/dist/core/text-utils.js +137 -0
- package/dist/core/text-utils.js.map +1 -0
- package/dist/types.d.ts +16 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import pc from 'picocolors';
|
|
6
|
+
import { loadConfig } from '../core/files.js';
|
|
7
|
+
export default function styleCmd() {
|
|
8
|
+
const cmd = new Command('style')
|
|
9
|
+
.description('Configure device positioning and caption styling')
|
|
10
|
+
.option('--device <name>', 'device name (iphone, ipad, mac, watch)')
|
|
11
|
+
.option('--reset', 'reset device styling to defaults')
|
|
12
|
+
.action(async (opts) => {
|
|
13
|
+
try {
|
|
14
|
+
console.log(pc.bold('Device Style Configuration'));
|
|
15
|
+
console.log(pc.dim('Configure how devices appear in screenshots\n'));
|
|
16
|
+
// Load current configuration
|
|
17
|
+
const config = await loadConfig();
|
|
18
|
+
// Get device to configure
|
|
19
|
+
let device = opts.device;
|
|
20
|
+
if (!device) {
|
|
21
|
+
const deviceAnswer = await inquirer.prompt([{
|
|
22
|
+
type: 'list',
|
|
23
|
+
name: 'device',
|
|
24
|
+
message: 'Which device would you like to style?',
|
|
25
|
+
choices: Object.keys(config.devices)
|
|
26
|
+
}]);
|
|
27
|
+
device = deviceAnswer.device;
|
|
28
|
+
}
|
|
29
|
+
if (!config.devices[device]) {
|
|
30
|
+
console.error(pc.red(`Device "${device}" not found in configuration`));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
const currentDevice = config.devices[device];
|
|
34
|
+
// Reset option
|
|
35
|
+
if (opts.reset) {
|
|
36
|
+
delete currentDevice.framePosition;
|
|
37
|
+
delete currentDevice.frameScale;
|
|
38
|
+
delete currentDevice.captionSize;
|
|
39
|
+
delete currentDevice.captionPosition;
|
|
40
|
+
await saveConfig(config);
|
|
41
|
+
console.log(pc.green('✓'), `Reset styling for ${device}`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Show current settings
|
|
45
|
+
console.log(pc.cyan('Current settings:'));
|
|
46
|
+
console.log(` Auto frame selection: ${currentDevice.autoFrame !== false ? 'Enabled' : 'Disabled'}`);
|
|
47
|
+
console.log(` Frame position: ${formatFramePosition(currentDevice.framePosition)}`);
|
|
48
|
+
console.log(` Frame scale: ${currentDevice.frameScale ? `${currentDevice.frameScale * 100}%` : 'Auto'}`);
|
|
49
|
+
console.log(` Partial frame: ${currentDevice.partialFrame ? `Yes (${currentDevice.frameOffset || 25}% cut)` : 'No'}`);
|
|
50
|
+
console.log(` Caption size: ${currentDevice.captionSize || 'Default'}`);
|
|
51
|
+
console.log(` Caption position: ${currentDevice.captionPosition || 'Default'}\n`);
|
|
52
|
+
// Auto frame selection first
|
|
53
|
+
const autoFrameAnswer = await inquirer.prompt([{
|
|
54
|
+
type: 'confirm',
|
|
55
|
+
name: 'autoFrame',
|
|
56
|
+
message: 'Enable automatic frame selection based on screenshot dimensions?',
|
|
57
|
+
default: currentDevice.autoFrame !== false
|
|
58
|
+
}]);
|
|
59
|
+
// If auto frame is disabled, let user select a specific frame
|
|
60
|
+
let preferredFrame;
|
|
61
|
+
if (!autoFrameAnswer.autoFrame) {
|
|
62
|
+
// Import frame registry to show available options
|
|
63
|
+
const { frameRegistry } = await import('../core/devices.js');
|
|
64
|
+
// Filter frames for current device type
|
|
65
|
+
const deviceFrames = frameRegistry.filter(f => {
|
|
66
|
+
const frameName = f.name.toLowerCase();
|
|
67
|
+
if (device === 'iphone')
|
|
68
|
+
return frameName.includes('iphone');
|
|
69
|
+
if (device === 'ipad')
|
|
70
|
+
return frameName.includes('ipad');
|
|
71
|
+
if (device === 'mac')
|
|
72
|
+
return frameName.includes('mac') || frameName.includes('imac');
|
|
73
|
+
if (device === 'watch')
|
|
74
|
+
return frameName.includes('watch');
|
|
75
|
+
return false;
|
|
76
|
+
});
|
|
77
|
+
// Create choices from available frames
|
|
78
|
+
const frameChoices = deviceFrames.map(f => ({
|
|
79
|
+
name: `${f.displayName || f.name} (${f.orientation})`,
|
|
80
|
+
value: f.name
|
|
81
|
+
}));
|
|
82
|
+
if (frameChoices.length === 0) {
|
|
83
|
+
console.error(pc.red(`No frames available for device "${device}"`));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
const frameChoiceAnswer = await inquirer.prompt([{
|
|
87
|
+
type: 'list',
|
|
88
|
+
name: 'preferredFrame',
|
|
89
|
+
message: 'Select preferred frame:',
|
|
90
|
+
choices: frameChoices,
|
|
91
|
+
default: currentDevice.preferredFrame || frameChoices[0].value
|
|
92
|
+
}]);
|
|
93
|
+
preferredFrame = frameChoiceAnswer.preferredFrame;
|
|
94
|
+
}
|
|
95
|
+
// Partial frame settings
|
|
96
|
+
const partialAnswer = await inquirer.prompt([{
|
|
97
|
+
type: 'confirm',
|
|
98
|
+
name: 'partialFrame',
|
|
99
|
+
message: 'Use partial frame (cut off bottom portion)?',
|
|
100
|
+
default: currentDevice.partialFrame || false
|
|
101
|
+
}]);
|
|
102
|
+
let frameOffset = currentDevice.frameOffset;
|
|
103
|
+
if (partialAnswer.partialFrame) {
|
|
104
|
+
const offsetAnswer = await inquirer.prompt([{
|
|
105
|
+
type: 'list',
|
|
106
|
+
name: 'frameOffset',
|
|
107
|
+
message: 'How much to cut off from the bottom?',
|
|
108
|
+
choices: [
|
|
109
|
+
{ name: 'Subtle (15%)', value: 15 },
|
|
110
|
+
{ name: 'Standard (25%)', value: 25 },
|
|
111
|
+
{ name: 'Dramatic (35%)', value: 35 },
|
|
112
|
+
{ name: 'Half (50%)', value: 50 },
|
|
113
|
+
{ name: 'Custom...', value: 'custom' }
|
|
114
|
+
],
|
|
115
|
+
default: currentDevice.frameOffset || 25
|
|
116
|
+
}]);
|
|
117
|
+
if (offsetAnswer.frameOffset === 'custom') {
|
|
118
|
+
const customOffsetAnswer = await inquirer.prompt([{
|
|
119
|
+
type: 'number',
|
|
120
|
+
name: 'offset',
|
|
121
|
+
message: 'Enter percentage to cut off (10-50):',
|
|
122
|
+
default: 25,
|
|
123
|
+
validate: (value) => (value !== undefined && value >= 10 && value <= 50) || 'Please enter a value between 10 and 50'
|
|
124
|
+
}]);
|
|
125
|
+
frameOffset = customOffsetAnswer.offset;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
frameOffset = offsetAnswer.frameOffset;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Frame positioning
|
|
132
|
+
const positionAnswer = await inquirer.prompt([{
|
|
133
|
+
type: 'list',
|
|
134
|
+
name: 'framePosition',
|
|
135
|
+
message: 'How should the device frame be positioned vertically?',
|
|
136
|
+
choices: [
|
|
137
|
+
{ name: 'Centered (default)', value: 'center' },
|
|
138
|
+
{ name: 'Top aligned', value: 'top' },
|
|
139
|
+
{ name: 'Bottom aligned', value: 'bottom' },
|
|
140
|
+
{ name: 'Custom offset...', value: 'custom' }
|
|
141
|
+
],
|
|
142
|
+
default: currentDevice.framePosition || 'center'
|
|
143
|
+
}]);
|
|
144
|
+
let framePosition = positionAnswer.framePosition;
|
|
145
|
+
if (framePosition === 'custom') {
|
|
146
|
+
const offsetAnswer = await inquirer.prompt([{
|
|
147
|
+
type: 'number',
|
|
148
|
+
name: 'offset',
|
|
149
|
+
message: 'Enter vertical position (0=top, 50=center, 100=bottom):',
|
|
150
|
+
default: 50,
|
|
151
|
+
validate: (value) => (value !== undefined && value >= 0 && value <= 100) || 'Please enter a value between 0 and 100'
|
|
152
|
+
}]);
|
|
153
|
+
framePosition = offsetAnswer.offset;
|
|
154
|
+
}
|
|
155
|
+
// Frame scaling
|
|
156
|
+
const scaleAnswer = await inquirer.prompt([{
|
|
157
|
+
type: 'list',
|
|
158
|
+
name: 'frameScale',
|
|
159
|
+
message: 'How large should the device appear?',
|
|
160
|
+
choices: [
|
|
161
|
+
{ name: 'Small (75%)', value: 0.75 },
|
|
162
|
+
{ name: 'Medium (90% - default)', value: 0.9 },
|
|
163
|
+
{ name: 'Large (110%)', value: 1.1 },
|
|
164
|
+
{ name: 'Extra Large (130%)', value: 1.3 },
|
|
165
|
+
{ name: 'Custom...', value: 'custom' },
|
|
166
|
+
{ name: 'Auto (based on device)', value: null }
|
|
167
|
+
],
|
|
168
|
+
default: currentDevice.frameScale || 0.9
|
|
169
|
+
}]);
|
|
170
|
+
let frameScale = scaleAnswer.frameScale;
|
|
171
|
+
if (frameScale === 'custom') {
|
|
172
|
+
const customScaleAnswer = await inquirer.prompt([{
|
|
173
|
+
type: 'number',
|
|
174
|
+
name: 'scale',
|
|
175
|
+
message: 'Enter scale percentage (50-200):',
|
|
176
|
+
default: 100,
|
|
177
|
+
validate: (value) => (value !== undefined && value >= 50 && value <= 200) || 'Please enter a value between 50 and 200'
|
|
178
|
+
}]);
|
|
179
|
+
frameScale = customScaleAnswer.scale / 100;
|
|
180
|
+
}
|
|
181
|
+
// Caption customization
|
|
182
|
+
const captionAnswer = await inquirer.prompt([{
|
|
183
|
+
type: 'confirm',
|
|
184
|
+
name: 'customizeCaption',
|
|
185
|
+
message: 'Customize caption settings for this device?',
|
|
186
|
+
default: false
|
|
187
|
+
}]);
|
|
188
|
+
let captionSize;
|
|
189
|
+
let captionPosition;
|
|
190
|
+
let captionBox = undefined;
|
|
191
|
+
if (captionAnswer.customizeCaption) {
|
|
192
|
+
// Caption size
|
|
193
|
+
const sizeAnswer = await inquirer.prompt([{
|
|
194
|
+
type: 'list',
|
|
195
|
+
name: 'captionSize',
|
|
196
|
+
message: 'Caption text size:',
|
|
197
|
+
choices: [
|
|
198
|
+
{ name: 'Small (36px)', value: 36 },
|
|
199
|
+
{ name: 'Medium (48px)', value: 48 },
|
|
200
|
+
{ name: 'Large (64px - default)', value: 64 },
|
|
201
|
+
{ name: 'Extra Large (80px)', value: 80 },
|
|
202
|
+
{ name: 'Custom...', value: 'custom' },
|
|
203
|
+
{ name: 'Use global default', value: null }
|
|
204
|
+
],
|
|
205
|
+
default: currentDevice.captionSize || config.caption.fontsize
|
|
206
|
+
}]);
|
|
207
|
+
const sizeChoice = sizeAnswer.captionSize;
|
|
208
|
+
if (sizeChoice === 'custom') {
|
|
209
|
+
const customSizeAnswer = await inquirer.prompt([{
|
|
210
|
+
type: 'number',
|
|
211
|
+
name: 'size',
|
|
212
|
+
message: 'Enter font size in pixels:',
|
|
213
|
+
default: 64,
|
|
214
|
+
validate: (value) => (value !== undefined && value >= 12 && value <= 120) || 'Please enter a value between 12 and 120'
|
|
215
|
+
}]);
|
|
216
|
+
captionSize = customSizeAnswer.size;
|
|
217
|
+
}
|
|
218
|
+
else if (sizeChoice !== null) {
|
|
219
|
+
captionSize = sizeChoice;
|
|
220
|
+
}
|
|
221
|
+
// Caption position
|
|
222
|
+
const posAnswer = await inquirer.prompt([{
|
|
223
|
+
type: 'list',
|
|
224
|
+
name: 'captionPosition',
|
|
225
|
+
message: 'Caption position:',
|
|
226
|
+
choices: [
|
|
227
|
+
{ name: 'Above device frame (default)', value: 'above' },
|
|
228
|
+
{ name: 'Overlay on gradient', value: 'overlay' },
|
|
229
|
+
{ name: 'Use global default', value: null }
|
|
230
|
+
],
|
|
231
|
+
default: currentDevice.captionPosition || config.caption.position || 'above'
|
|
232
|
+
}]);
|
|
233
|
+
captionPosition = posAnswer.captionPosition || undefined;
|
|
234
|
+
// Caption box settings
|
|
235
|
+
const boxAnswer = await inquirer.prompt([{
|
|
236
|
+
type: 'confirm',
|
|
237
|
+
name: 'customizeBox',
|
|
238
|
+
message: 'Configure caption box behavior (auto-sizing, max lines)?',
|
|
239
|
+
default: false
|
|
240
|
+
}]);
|
|
241
|
+
if (boxAnswer.customizeBox) {
|
|
242
|
+
captionBox = {};
|
|
243
|
+
// Auto-size
|
|
244
|
+
const autoSizeAnswer = await inquirer.prompt([{
|
|
245
|
+
type: 'confirm',
|
|
246
|
+
name: 'autoSize',
|
|
247
|
+
message: 'Auto-size caption box based on content?',
|
|
248
|
+
default: true
|
|
249
|
+
}]);
|
|
250
|
+
captionBox.autoSize = autoSizeAnswer.autoSize;
|
|
251
|
+
// Max lines
|
|
252
|
+
const maxLinesAnswer = await inquirer.prompt([{
|
|
253
|
+
type: 'number',
|
|
254
|
+
name: 'maxLines',
|
|
255
|
+
message: 'Maximum number of caption lines:',
|
|
256
|
+
default: 3,
|
|
257
|
+
validate: (value) => (value !== undefined && value >= 1 && value <= 10) || 'Please enter 1-10 lines'
|
|
258
|
+
}]);
|
|
259
|
+
captionBox.maxLines = maxLinesAnswer.maxLines;
|
|
260
|
+
// Line height
|
|
261
|
+
const lineHeightAnswer = await inquirer.prompt([{
|
|
262
|
+
type: 'list',
|
|
263
|
+
name: 'lineHeight',
|
|
264
|
+
message: 'Line spacing:',
|
|
265
|
+
choices: [
|
|
266
|
+
{ name: 'Compact (1.2)', value: 1.2 },
|
|
267
|
+
{ name: 'Normal (1.4)', value: 1.4 },
|
|
268
|
+
{ name: 'Relaxed (1.6)', value: 1.6 },
|
|
269
|
+
{ name: 'Loose (1.8)', value: 1.8 }
|
|
270
|
+
],
|
|
271
|
+
default: 1.4
|
|
272
|
+
}]);
|
|
273
|
+
captionBox.lineHeight = lineHeightAnswer.lineHeight;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Update configuration
|
|
277
|
+
// Auto frame settings
|
|
278
|
+
if (autoFrameAnswer.autoFrame) {
|
|
279
|
+
currentDevice.autoFrame = true;
|
|
280
|
+
delete currentDevice.preferredFrame; // Remove preferred frame if auto is enabled
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
currentDevice.autoFrame = false;
|
|
284
|
+
currentDevice.preferredFrame = preferredFrame;
|
|
285
|
+
}
|
|
286
|
+
// Partial frame settings
|
|
287
|
+
if (partialAnswer.partialFrame) {
|
|
288
|
+
currentDevice.partialFrame = true;
|
|
289
|
+
currentDevice.frameOffset = frameOffset;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
delete currentDevice.partialFrame;
|
|
293
|
+
delete currentDevice.frameOffset;
|
|
294
|
+
}
|
|
295
|
+
if (framePosition !== 'center') {
|
|
296
|
+
currentDevice.framePosition = framePosition;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
delete currentDevice.framePosition;
|
|
300
|
+
}
|
|
301
|
+
if (frameScale !== null && frameScale !== 0.9) {
|
|
302
|
+
currentDevice.frameScale = frameScale;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
delete currentDevice.frameScale;
|
|
306
|
+
}
|
|
307
|
+
if (captionSize && captionSize !== config.caption.fontsize) {
|
|
308
|
+
currentDevice.captionSize = captionSize;
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
delete currentDevice.captionSize;
|
|
312
|
+
}
|
|
313
|
+
if (captionPosition && captionPosition !== (config.caption.position || 'above')) {
|
|
314
|
+
currentDevice.captionPosition = captionPosition;
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
delete currentDevice.captionPosition;
|
|
318
|
+
}
|
|
319
|
+
if (captionBox && Object.keys(captionBox).length > 0) {
|
|
320
|
+
currentDevice.captionBox = captionBox;
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
delete currentDevice.captionBox;
|
|
324
|
+
}
|
|
325
|
+
// Save configuration
|
|
326
|
+
await saveConfig(config);
|
|
327
|
+
// Success message
|
|
328
|
+
console.log('\n' + pc.green('✓'), 'Device styling updated!');
|
|
329
|
+
console.log(pc.dim('Run "appshot build" to generate screenshots with new styling'));
|
|
330
|
+
// Show what changed
|
|
331
|
+
if (!autoFrameAnswer.autoFrame || framePosition !== 'center' || frameScale || captionSize || captionPosition || currentDevice.partialFrame) {
|
|
332
|
+
console.log('\n' + pc.cyan('Applied settings:'));
|
|
333
|
+
if (!autoFrameAnswer.autoFrame) {
|
|
334
|
+
console.log(` • Auto frame: Disabled (using ${preferredFrame})`);
|
|
335
|
+
}
|
|
336
|
+
if (framePosition !== 'center') {
|
|
337
|
+
console.log(` • Frame position: ${formatFramePosition(framePosition)}`);
|
|
338
|
+
}
|
|
339
|
+
if (frameScale) {
|
|
340
|
+
console.log(` • Frame scale: ${frameScale * 100}%`);
|
|
341
|
+
}
|
|
342
|
+
if (currentDevice.partialFrame) {
|
|
343
|
+
console.log(` • Partial frame: Yes (${currentDevice.frameOffset}% cut)`);
|
|
344
|
+
}
|
|
345
|
+
if (captionSize) {
|
|
346
|
+
console.log(` • Caption size: ${captionSize}px`);
|
|
347
|
+
}
|
|
348
|
+
if (captionPosition) {
|
|
349
|
+
console.log(` • Caption position: ${captionPosition}`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
console.error(pc.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
355
|
+
process.exit(1);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
return cmd;
|
|
359
|
+
}
|
|
360
|
+
function formatFramePosition(position) {
|
|
361
|
+
if (position === undefined || position === 'center')
|
|
362
|
+
return 'Centered';
|
|
363
|
+
if (position === 'top')
|
|
364
|
+
return 'Top aligned';
|
|
365
|
+
if (position === 'bottom')
|
|
366
|
+
return 'Bottom aligned';
|
|
367
|
+
if (typeof position === 'number')
|
|
368
|
+
return `${position}% from top`;
|
|
369
|
+
return String(position);
|
|
370
|
+
}
|
|
371
|
+
async function saveConfig(config) {
|
|
372
|
+
const configPath = path.join(process.cwd(), '.appshot', 'config.json');
|
|
373
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/commands/style.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiB/E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkbxF"}
|