@capgo/cli 7.28.1 → 7.29.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
- "version": "7.28.1",
3
+ "version": "7.29.1",
4
4
  "description": "A CLI to upload to capgo servers",
5
5
  "author": "Martin martin@capgo.app",
6
6
  "license": "Apache 2.0",
@@ -1,5 +1,6 @@
1
1
  interface SaveCredentialsOptions {
2
2
  platform?: 'ios' | 'android';
3
+ appId?: string;
3
4
  certificate?: string;
4
5
  provisioningProfile?: string;
5
6
  provisioningProfileProd?: string;
@@ -20,7 +21,7 @@ interface SaveCredentialsOptions {
20
21
  * Save build credentials locally
21
22
  *
22
23
  * SECURITY NOTE:
23
- * - Credentials are saved to ~/.capgo/credentials.json on YOUR local machine only
24
+ * - Credentials are saved to ~/.capgo-credentials/credentials.json on YOUR local machine only
24
25
  * - When you run a build, credentials are sent to Capgo's build servers
25
26
  * - Credentials are NEVER stored permanently on Capgo servers
26
27
  * - They are automatically deleted after build completion (max 24 hours)
@@ -29,11 +30,14 @@ export declare function saveCredentialsCommand(options: SaveCredentialsOptions):
29
30
  /**
30
31
  * List saved credentials (masked for security)
31
32
  */
32
- export declare function listCredentialsCommand(): Promise<void>;
33
+ export declare function listCredentialsCommand(options?: {
34
+ appId?: string;
35
+ }): Promise<void>;
33
36
  /**
34
37
  * Clear saved credentials
35
38
  */
36
39
  export declare function clearCredentialsCommand(options: {
40
+ appId?: string;
37
41
  platform?: 'ios' | 'android';
38
42
  }): Promise<void>;
39
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"credentials-command.d.ts","sourceRoot":"","sources":["../../../src/build/credentials-command.ts"],"names":[],"mappings":"AAaA,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyH3F;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgE5D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BtG"}
1
+ {"version":3,"file":"credentials-command.d.ts","sourceRoot":"","sources":["../../../src/build/credentials-command.ts"],"names":[],"mappings":"AAcA,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+H3F;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyExF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CtH"}
@@ -4,7 +4,7 @@
4
4
  * This module provides utilities for managing build credentials locally on your machine.
5
5
  *
6
6
  * IMPORTANT SECURITY NOTICE:
7
- * - Credentials are stored LOCALLY in ~/.capgo/credentials.json on YOUR machine only
7
+ * - Credentials are stored LOCALLY in ~/.capgo-credentials/credentials.json on YOUR machine only
8
8
  * - When you request a build, credentials are sent to Capgo's build servers
9
9
  * - Credentials are NEVER stored permanently on Capgo servers
10
10
  * - Credentials are used only during the build process and are automatically deleted
@@ -13,7 +13,7 @@
13
13
  * - Capgo does NOT keep any build artifacts - everything goes directly to the stores
14
14
  *
15
15
  * Security best practices:
16
- * - Ensure ~/.capgo/ directory has restricted file permissions
16
+ * - Ensure ~/.capgo-credentials/ directory has restricted file permissions
17
17
  * - Never commit credentials.json to version control
18
18
  * - Use separate credentials for CI/CD vs local development
19
19
  * - Rotate credentials regularly
@@ -27,37 +27,48 @@ export interface CredentialFile {
27
27
  ANDROID_KEYSTORE_PATH?: string;
28
28
  PLAY_CONFIG_JSON_PATH?: string;
29
29
  }
30
+ /**
31
+ * Per-app credentials structure
32
+ * Each app can have its own iOS and Android credentials
33
+ */
30
34
  export interface SavedCredentials {
31
35
  ios?: Partial<BuildCredentials>;
32
36
  android?: Partial<BuildCredentials>;
33
37
  }
34
38
  /**
35
- * Load saved credentials from ~/.capgo/credentials.json
39
+ * All credentials file structure
40
+ * Maps appId -> credentials for that app
36
41
  */
37
- export declare function loadSavedCredentials(): Promise<SavedCredentials | null>;
42
+ export interface AllCredentials {
43
+ [appId: string]: SavedCredentials;
44
+ }
38
45
  /**
39
- * Save credentials to ~/.capgo/credentials.json
46
+ * Load saved credentials for a specific app from ~/.capgo/credentials.json
40
47
  */
41
- export declare function saveCredentials(credentials: SavedCredentials): Promise<void>;
48
+ export declare function loadSavedCredentials(appId?: string): Promise<SavedCredentials | null>;
42
49
  /**
43
50
  * Merge saved credentials with provided credentials
44
51
  * Provided credentials take precedence
45
52
  */
46
- export declare function mergeCredentials(platform: 'ios' | 'android', provided?: BuildCredentials): Promise<BuildCredentials | undefined>;
53
+ export declare function mergeCredentials(appId: string, platform: 'ios' | 'android', provided?: BuildCredentials): Promise<BuildCredentials | undefined>;
47
54
  /**
48
55
  * Convert file paths to base64 credentials
49
56
  */
50
57
  export declare function convertFilesToCredentials(platform: 'ios' | 'android', files: CredentialFile, passwords?: Partial<BuildCredentials>): Promise<BuildCredentials>;
51
58
  /**
52
- * Update saved credentials for a specific platform
59
+ * Update saved credentials for a specific app and platform
60
+ */
61
+ export declare function updateSavedCredentials(appId: string, platform: 'ios' | 'android', credentials: Partial<BuildCredentials>): Promise<void>;
62
+ /**
63
+ * Clear saved credentials for a specific app and/or platform
53
64
  */
54
- export declare function updateSavedCredentials(platform: 'ios' | 'android', credentials: Partial<BuildCredentials>): Promise<void>;
65
+ export declare function clearSavedCredentials(appId?: string, platform?: 'ios' | 'android'): Promise<void>;
55
66
  /**
56
- * Clear saved credentials for a specific platform
67
+ * Get saved credentials for a specific app and platform
57
68
  */
58
- export declare function clearSavedCredentials(platform?: 'ios' | 'android'): Promise<void>;
69
+ export declare function getSavedCredentials(appId: string, platform: 'ios' | 'android'): Promise<Partial<BuildCredentials> | null>;
59
70
  /**
60
- * Get saved credentials for a specific platform
71
+ * List all apps that have saved credentials
61
72
  */
62
- export declare function getSavedCredentials(platform: 'ios' | 'android'): Promise<Partial<BuildCredentials> | null>;
73
+ export declare function listAllApps(): Promise<string[]>;
63
74
  //# sourceMappingURL=credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/build/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAQjD,MAAM,WAAW,cAAc;IAE7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACpC;AAUD;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAYvC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,KAAK,EAAE,cAAc,EACrB,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACxC,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAGhH"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/build/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAQjD,MAAM,WAAW,cAAc;IAE7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAClC;AAuBD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAa3F;AAUD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAYvC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,KAAK,EAAE,cAAc,EACrB,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACxC,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BvG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAG/H;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/build/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAU3C;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAE/B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAGlC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,GAAG,IAAI,CAAA;CACT;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAgID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0LnI;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/build/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAU3C;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAE/B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAGlC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,GAAG,IAAI,CAAA;CACT;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAgID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqMnI;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG"}