airpilot 0.0.1 → 0.7.8

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 (67) hide show
  1. package/README.md +33 -17
  2. package/dist/airpilot/builders/config.d.ts +3 -0
  3. package/dist/airpilot/builders/config.d.ts.map +1 -0
  4. package/dist/airpilot/builders/config.js +168 -0
  5. package/dist/airpilot/builders/config.js.map +1 -0
  6. package/dist/airpilot/builders/content.d.ts +6 -0
  7. package/dist/airpilot/builders/content.d.ts.map +1 -0
  8. package/dist/airpilot/builders/content.js +276 -0
  9. package/dist/airpilot/builders/content.js.map +1 -0
  10. package/dist/airpilot/builders/domains.d.ts +2 -0
  11. package/dist/airpilot/builders/domains.d.ts.map +1 -0
  12. package/dist/airpilot/builders/domains.js +212 -0
  13. package/dist/airpilot/builders/domains.js.map +1 -0
  14. package/dist/airpilot/builders/scaffold.d.ts +2 -0
  15. package/dist/airpilot/builders/scaffold.d.ts.map +1 -0
  16. package/dist/airpilot/builders/scaffold.js +218 -0
  17. package/dist/airpilot/builders/scaffold.js.map +1 -0
  18. package/dist/airpilot/cli.d.ts +4 -0
  19. package/dist/airpilot/cli.d.ts.map +1 -0
  20. package/dist/airpilot/cli.js +87 -0
  21. package/dist/airpilot/cli.js.map +1 -0
  22. package/dist/airpilot/commands/init.d.ts +2 -0
  23. package/dist/airpilot/commands/init.d.ts.map +1 -0
  24. package/dist/airpilot/commands/init.js +257 -0
  25. package/dist/airpilot/commands/init.js.map +1 -0
  26. package/dist/airpilot/commands/license.d.ts +2 -0
  27. package/dist/airpilot/commands/license.d.ts.map +1 -0
  28. package/dist/airpilot/commands/license.js +213 -0
  29. package/dist/airpilot/commands/license.js.map +1 -0
  30. package/dist/airpilot/commands/sync.d.ts +3 -0
  31. package/dist/airpilot/commands/sync.d.ts.map +1 -0
  32. package/dist/airpilot/commands/sync.js +42 -0
  33. package/dist/airpilot/commands/sync.js.map +1 -0
  34. package/dist/airpilot/license.d.ts +26 -0
  35. package/dist/airpilot/license.d.ts.map +1 -0
  36. package/dist/airpilot/license.js +249 -0
  37. package/dist/airpilot/license.js.map +1 -0
  38. package/dist/airpilot/types.d.ts +69 -0
  39. package/dist/airpilot/types.d.ts.map +1 -0
  40. package/dist/airpilot/types.js +3 -0
  41. package/dist/airpilot/types.js.map +1 -0
  42. package/dist/airpilot/ui/panels.d.ts +27 -0
  43. package/dist/airpilot/ui/panels.d.ts.map +1 -0
  44. package/dist/airpilot/ui/panels.js +425 -0
  45. package/dist/airpilot/ui/panels.js.map +1 -0
  46. package/dist/airpilot/ui/prompts.d.ts +4 -0
  47. package/dist/airpilot/ui/prompts.d.ts.map +1 -0
  48. package/dist/airpilot/ui/prompts.js +52 -0
  49. package/dist/airpilot/ui/prompts.js.map +1 -0
  50. package/dist/airpilot/ui/textFormatter.d.ts +25 -0
  51. package/dist/airpilot/ui/textFormatter.d.ts.map +1 -0
  52. package/dist/airpilot/ui/textFormatter.js +174 -0
  53. package/dist/airpilot/ui/textFormatter.js.map +1 -0
  54. package/dist/airpilot/utils/backup.d.ts +4 -0
  55. package/dist/airpilot/utils/backup.d.ts.map +1 -0
  56. package/dist/airpilot/utils/backup.js +73 -0
  57. package/dist/airpilot/utils/backup.js.map +1 -0
  58. package/dist/airpilot/utils/git.d.ts +2 -0
  59. package/dist/airpilot/utils/git.d.ts.map +1 -0
  60. package/dist/airpilot/utils/git.js +74 -0
  61. package/dist/airpilot/utils/git.js.map +1 -0
  62. package/dist/airpilot/utils/version.d.ts +2 -0
  63. package/dist/airpilot/utils/version.d.ts.map +1 -0
  64. package/dist/airpilot/utils/version.js +59 -0
  65. package/dist/airpilot/utils/version.js.map +1 -0
  66. package/package.json +61 -21
  67. package/index.js +0 -44
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LicenseManager = void 0;
37
+ exports.requireLicense = requireLicense;
38
+ exports.getLicenseManager = getLicenseManager;
39
+ const fs = __importStar(require("fs-extra"));
40
+ const path = __importStar(require("path"));
41
+ const os = __importStar(require("os"));
42
+ const crypto = __importStar(require("crypto"));
43
+ class LicenseManager {
44
+ configFile;
45
+ pocLicenseKey;
46
+ planFeatures;
47
+ constructor() {
48
+ this.configFile = path.join(os.homedir(), '.airpilot');
49
+ this.pocLicenseKey = process.env.AIRPILOT_POC_LICENSE || 'airpilot-poc-demo2025-7c57b476';
50
+ this.planFeatures = {
51
+ 'free': ['init', 'init_global', 'init_project'],
52
+ 'poc': ['init', 'init_global', 'init_project', 'sync', 'cloud'],
53
+ 'pro': ['init', 'init_global', 'init_project', 'sync', 'cloud', 'analytics', 'backup'],
54
+ 'enterprise': ['init', 'init_global', 'init_project', 'sync', 'cloud', 'analytics', 'backup', 'teams', 'sso']
55
+ };
56
+ }
57
+ async _loadConfig() {
58
+ if (!(await fs.pathExists(this.configFile))) {
59
+ return {};
60
+ }
61
+ try {
62
+ const data = await fs.readJSON(this.configFile);
63
+ return typeof data === 'object' && data !== null ? data : {};
64
+ }
65
+ catch (error) {
66
+ return {};
67
+ }
68
+ }
69
+ async _saveConfig(config) {
70
+ try {
71
+ await fs.writeJSON(this.configFile, config, { spaces: 2 });
72
+ await fs.chmod(this.configFile, 0o600);
73
+ }
74
+ catch (error) {
75
+ throw new Error(`Failed to save license config: ${error}`);
76
+ }
77
+ }
78
+ _validateKeyFormat(licenseKey) {
79
+ const parts = licenseKey.split('-');
80
+ if (parts.length !== 4) {
81
+ return false;
82
+ }
83
+ const [prefix, plan, hashPart, checksum] = parts;
84
+ if (!prefix || prefix !== 'airpilot') {
85
+ return false;
86
+ }
87
+ if (!plan || !(plan in this.planFeatures)) {
88
+ return false;
89
+ }
90
+ if (!hashPart || hashPart.length < 8) {
91
+ return false;
92
+ }
93
+ if (!checksum || checksum.length !== 8) {
94
+ return false;
95
+ }
96
+ const expectedChecksum = crypto.createHash('md5')
97
+ .update(`${prefix}-${plan}-${hashPart}`)
98
+ .digest('hex')
99
+ .substring(0, 8);
100
+ return checksum === expectedChecksum;
101
+ }
102
+ _validateLicense(licenseKey) {
103
+ if (licenseKey === this.pocLicenseKey) {
104
+ return true;
105
+ }
106
+ return this._validateKeyFormat(licenseKey);
107
+ }
108
+ _extractPlanFromKey(licenseKey) {
109
+ try {
110
+ const parts = licenseKey.split('-');
111
+ return parts[1] || 'free';
112
+ }
113
+ catch (error) {
114
+ return 'free';
115
+ }
116
+ }
117
+ async installLicense(licenseKey) {
118
+ if (!this._validateLicense(licenseKey)) {
119
+ return false;
120
+ }
121
+ const plan = this._extractPlanFromKey(licenseKey);
122
+ const features = this.planFeatures[plan] || this.planFeatures['free'];
123
+ const config = {
124
+ license_key: licenseKey,
125
+ plan: plan,
126
+ features: features,
127
+ validated_at: Date.now() / 1000,
128
+ installed_at: Date.now() / 1000
129
+ };
130
+ await this._saveConfig(config);
131
+ return true;
132
+ }
133
+ async removeLicense() {
134
+ if (await fs.pathExists(this.configFile)) {
135
+ try {
136
+ await fs.unlink(this.configFile);
137
+ return true;
138
+ }
139
+ catch (error) {
140
+ return false;
141
+ }
142
+ }
143
+ return true;
144
+ }
145
+ async getCurrentPlan() {
146
+ const config = await this._loadConfig();
147
+ const plan = config.plan || 'free';
148
+ return String(plan);
149
+ }
150
+ async getFeatures() {
151
+ const config = await this._loadConfig();
152
+ const features = config.features || this.planFeatures['free'];
153
+ return Array.isArray(features) ? features : (this.planFeatures['free'] || []);
154
+ }
155
+ async hasFeature(feature) {
156
+ const features = await this.getFeatures();
157
+ return features.includes(feature);
158
+ }
159
+ async isLicensed() {
160
+ const plan = await this.getCurrentPlan();
161
+ return plan !== 'free';
162
+ }
163
+ async getLicenseInfo() {
164
+ const config = await this._loadConfig();
165
+ if (!config || Object.keys(config).length === 0) {
166
+ return {
167
+ plan: 'free',
168
+ features: this.planFeatures['free'],
169
+ licensed: false
170
+ };
171
+ }
172
+ return {
173
+ plan: config.plan || 'free',
174
+ features: config.features || this.planFeatures['free'],
175
+ licensed: (config.plan || 'free') !== 'free',
176
+ installed_at: config.installed_at,
177
+ validated_at: config.validated_at
178
+ };
179
+ }
180
+ generatePocKey() {
181
+ return this.pocLicenseKey;
182
+ }
183
+ _loadConfigSync() {
184
+ if (!fs.existsSync(this.configFile)) {
185
+ return {};
186
+ }
187
+ try {
188
+ const data = fs.readJsonSync(this.configFile);
189
+ return typeof data === 'object' && data !== null ? data : {};
190
+ }
191
+ catch (error) {
192
+ return {};
193
+ }
194
+ }
195
+ getCurrentPlanSync() {
196
+ const config = this._loadConfigSync();
197
+ const plan = config.plan || 'free';
198
+ return String(plan);
199
+ }
200
+ getFeaturesSync() {
201
+ const config = this._loadConfigSync();
202
+ const features = config.features || this.planFeatures['free'];
203
+ return Array.isArray(features) ? features : (this.planFeatures['free'] || []);
204
+ }
205
+ hasFeatureSync(feature) {
206
+ const features = this.getFeaturesSync();
207
+ return features.includes(feature);
208
+ }
209
+ }
210
+ exports.LicenseManager = LicenseManager;
211
+ function requireLicense(feature) {
212
+ return function (target, propertyName, descriptor) {
213
+ const method = descriptor.value;
214
+ descriptor.value = function (...args) {
215
+ const licenseManager = new LicenseManager();
216
+ const hasAccess = licenseManager.hasFeatureSync(feature);
217
+ if (!hasAccess) {
218
+ const panels = require('./ui/panels');
219
+ const currentPlan = licenseManager.getCurrentPlanSync();
220
+ const availableFeatures = licenseManager.getFeaturesSync().join(', ');
221
+ const content = {
222
+ items: [
223
+ { type: 'text', content: 'Premium Feature Required' },
224
+ { type: 'space' },
225
+ { type: 'text', content: `The '${feature}' feature requires a valid AirPilot license.` },
226
+ { type: 'space' },
227
+ { type: 'text', content: `Current plan: ${currentPlan.toUpperCase()}` },
228
+ { type: 'text', content: `Available features: ${availableFeatures}` },
229
+ { type: 'space' },
230
+ { type: 'header', content: 'To get a license' },
231
+ { type: 'text', content: '1. Email: shaneholloman@gmail.com' },
232
+ { type: 'text', content: '2. Subject: AirPilot License Request' },
233
+ { type: 'text', content: '3. Include your name and use case' },
234
+ { type: 'space' },
235
+ { type: 'header', content: 'Once you have your key' },
236
+ { type: 'command', command: 'air license install <your-license-key>', description: '' }
237
+ ]
238
+ };
239
+ console.log(panels.PanelRenderer.createRichPanel(content, 'License Required', 'red'));
240
+ return null;
241
+ }
242
+ return method.apply(this, args);
243
+ };
244
+ };
245
+ }
246
+ function getLicenseManager() {
247
+ return new LicenseManager();
248
+ }
249
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/airpilot/license.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ export interface VendorConfig {
2
+ enabled: boolean;
3
+ path: string;
4
+ format: 'markdown' | 'yaml' | 'json' | 'xml';
5
+ isDirectory: boolean;
6
+ }
7
+ export interface AirPilotConfig {
8
+ "// Welcome to AirPilot Global Configuration"?: string;
9
+ "// Project-level .airpilot files can override any of these settings"?: string;
10
+ enabled: boolean;
11
+ source: string;
12
+ sourceIsDirectory: boolean;
13
+ indexFileName?: string;
14
+ defaultFormat: string;
15
+ autoSync: boolean;
16
+ showStatus?: boolean;
17
+ vendors: Record<string, VendorConfig>;
18
+ customVendors?: {
19
+ vendors: Record<string, VendorConfig>;
20
+ };
21
+ cli: {
22
+ version: string;
23
+ user: {
24
+ name: string;
25
+ email: string;
26
+ preferences?: {
27
+ default_domain: string;
28
+ auto_backup: boolean;
29
+ sync_on_change: boolean;
30
+ premium_features: boolean;
31
+ };
32
+ };
33
+ paths?: {
34
+ global_air_path: string;
35
+ config_file: string;
36
+ };
37
+ features: {
38
+ real_time_sync: boolean;
39
+ cloud_backup: boolean;
40
+ analytics: boolean;
41
+ };
42
+ license?: LicenseInfo;
43
+ created?: string;
44
+ };
45
+ }
46
+ export interface LicenseInfo {
47
+ key?: string;
48
+ plan: 'free' | 'poc' | 'pro' | 'team' | 'enterprise';
49
+ features: string[];
50
+ expires?: string;
51
+ user?: {
52
+ name: string;
53
+ email: string;
54
+ };
55
+ }
56
+ export type PlanFeatures = {
57
+ [plan: string]: string[];
58
+ };
59
+ export interface CommandResult {
60
+ success: boolean;
61
+ message?: string;
62
+ error?: string;
63
+ }
64
+ export interface FileResult {
65
+ path: string;
66
+ created: boolean;
67
+ backed_up?: string;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/airpilot/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAE7B,6CAA6C,CAAC,EAAE,MAAM,CAAC;IACvD,qEAAqE,CAAC,EAAE,MAAM,CAAC;IAG/E,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACvC,CAAC;IAGF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE;gBACZ,cAAc,EAAE,MAAM,CAAC;gBACvB,WAAW,EAAE,OAAO,CAAC;gBACrB,cAAc,EAAE,OAAO,CAAC;gBACxB,gBAAgB,EAAE,OAAO,CAAC;aAC3B,CAAC;SACH,CAAC;QACF,KAAK,CAAC,EAAE;YACN,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,QAAQ,EAAE;YACR,cAAc,EAAE,OAAO,CAAC;YACxB,YAAY,EAAE,OAAO,CAAC;YACtB,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;IACrD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B,CAAC;AAGF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/airpilot/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ export declare class PanelRenderer {
2
+ static createRichPanel(content: string | any, title?: string, borderColor?: 'red' | 'green' | 'cyan' | 'blue' | 'yellow'): string;
3
+ static createPanel(content: string, title?: string, width?: number): string;
4
+ static showMainHelpPanel(): void;
5
+ static showVersionPanel(): void;
6
+ static showInitHelpPanel(): void;
7
+ static showErrorPanel(message: string, title?: string): void;
8
+ static showSuccessPanel(message: string, title?: string): void;
9
+ static showLicenseStatus(plan: string, features: string[]): void;
10
+ static showLicenseGroupHelpPanel(): void;
11
+ static showLicenseInstallHelpPanel(): void;
12
+ static showLicenseRemoveHelpPanel(): void;
13
+ static showLicenseStatusHelpPanel(): void;
14
+ static showSyncHelpPanel(): void;
15
+ static showLicenseHelpPanel(): void;
16
+ static showSyncPanel(): void;
17
+ private static stripAnsiCodes;
18
+ }
19
+ export declare function showScaffoldingPanel(airDir: string): void;
20
+ export declare function showLicenseStatusPanel(info: {
21
+ plan: string;
22
+ licensed: boolean;
23
+ features: string[];
24
+ }): void;
25
+ export declare function showGitPanel(message: string, title?: string): void;
26
+ export declare function showBackupPanel(message: string, title?: string): void;
27
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../../src/airpilot/ui/panels.ts"],"names":[],"mappings":"AAWA,qBAAa,aAAa;IAKxB,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAiB,GAAG,MAAM;IAiBzI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM;IAO/E,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAwBhC,MAAM,CAAC,gBAAgB,IAAI,IAAI;IA2B/B,MAAM,CAAC,iBAAiB,IAAI,IAAI;IA6DhC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgB,GAAG,IAAI;IAOrE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,IAAI;IAOzE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAwBhE,MAAM,CAAC,yBAAyB,IAAI,IAAI;IA+BxC,MAAM,CAAC,2BAA2B,IAAI,IAAI;IAoC1C,MAAM,CAAC,0BAA0B,IAAI,IAAI;IAgCzC,MAAM,CAAC,0BAA0B,IAAI,IAAI;IAkCzC,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAmEhC,MAAM,CAAC,oBAAoB,IAAI,IAAI;IAsCnC,MAAM,CAAC,aAAa,IAAI,IAAI;IAyB5B,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B;AAOD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAazD;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAkB1G;AAWD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAc,GAAG,IAAI,CAUzE;AAKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiB,GAAG,IAAI,CAE/E"}