@redhat-cloud-services/frontend-components-config-utilities 3.2.7 → 4.0.3

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 (59) hide show
  1. package/babel-transform-imports.js.map +1 -1
  2. package/cookieTransform.d.ts +0 -1
  3. package/cookieTransform.js +5 -1
  4. package/cookieTransform.js.map +1 -1
  5. package/extension-mapper.js.map +1 -1
  6. package/extensions-plugin.js.map +1 -1
  7. package/fec-logger.js.map +1 -1
  8. package/federated-modules.js.map +1 -1
  9. package/generate-pf-shared-assets-list.js.map +1 -1
  10. package/index.js.map +1 -1
  11. package/jsVarName.js.map +1 -1
  12. package/package.json +39 -38
  13. package/proxy.d.ts +1 -1
  14. package/proxy.js +16 -120
  15. package/proxy.js.map +1 -1
  16. package/search-ignored-styles.js.map +1 -1
  17. package/serve-federated.js.map +1 -1
  18. package/serveLocalFile.js.map +1 -1
  19. package/README.md +0 -198
  20. package/standalone/helpers/checkout.d.ts +0 -5
  21. package/standalone/helpers/checkout.js +0 -72
  22. package/standalone/helpers/checkout.js.map +0 -1
  23. package/standalone/helpers/index.d.ts +0 -8
  24. package/standalone/helpers/index.js +0 -58
  25. package/standalone/helpers/index.js.map +0 -1
  26. package/standalone/helpers/router.d.ts +0 -3
  27. package/standalone/helpers/router.js +0 -20
  28. package/standalone/helpers/router.js.map +0 -1
  29. package/standalone/index.d.ts +0 -1
  30. package/standalone/index.js +0 -18
  31. package/standalone/index.js.map +0 -1
  32. package/standalone/services/backofficeProxy.d.ts +0 -7
  33. package/standalone/services/backofficeProxy.js +0 -55
  34. package/standalone/services/backofficeProxy.js.map +0 -1
  35. package/standalone/services/default/chrome.d.ts +0 -24
  36. package/standalone/services/default/chrome.js +0 -141
  37. package/standalone/services/default/chrome.js.map +0 -1
  38. package/standalone/services/default/config.d.ts +0 -13
  39. package/standalone/services/default/config.js +0 -16
  40. package/standalone/services/default/config.js.map +0 -1
  41. package/standalone/services/default/entitlements.d.ts +0 -19
  42. package/standalone/services/default/entitlements.js +0 -46
  43. package/standalone/services/default/entitlements.js.map +0 -1
  44. package/standalone/services/default/index.d.ts +0 -56
  45. package/standalone/services/default/index.js +0 -16
  46. package/standalone/services/default/index.js.map +0 -1
  47. package/standalone/services/default/keycloak/realm_export.json +0 -4879
  48. package/standalone/services/default/landing.d.ts +0 -14
  49. package/standalone/services/default/landing.js +0 -21
  50. package/standalone/services/default/landing.js.map +0 -1
  51. package/standalone/services/index.d.ts +0 -91
  52. package/standalone/services/index.js +0 -14
  53. package/standalone/services/index.js.map +0 -1
  54. package/standalone/services/rbac.d.ts +0 -29
  55. package/standalone/services/rbac.js +0 -66
  56. package/standalone/services/rbac.js.map +0 -1
  57. package/standalone/startService.d.ts +0 -13
  58. package/standalone/startService.js +0 -86
  59. package/standalone/startService.js.map +0 -1
@@ -1,14 +0,0 @@
1
- import express from 'express';
2
- type ServiceConfig = {
3
- path: string;
4
- register: (options: {
5
- app: express.Application;
6
- config: {
7
- landing: {
8
- path: string;
9
- };
10
- };
11
- }) => void;
12
- };
13
- declare const landingConfig: ServiceConfig;
14
- export default landingConfig;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var express_1 = __importDefault(require("express"));
7
- var path_1 = __importDefault(require("path"));
8
- var landingConfig = {
9
- path: 'https://github.com/redhatinsights/landing-page-frontend-build',
10
- register: function (_a) {
11
- var app = _a.app, config = _a.config;
12
- var staticLanding = express_1.default.static(config.landing.path);
13
- app.get('(/beta)?/*.html', function (req, res) {
14
- var diskPath = path_1.default.join(config.landing.path, req.url.replace('/beta', ''));
15
- res.sendFile(diskPath);
16
- });
17
- app.use('(/beta)?/apps/landing', staticLanding);
18
- },
19
- };
20
- exports.default = landingConfig;
21
- //# sourceMappingURL=landing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"landing.js","sourceRoot":"","sources":["../../../src/standalone/services/default/landing.ts"],"names":[],"mappings":";;;;;AAAA,oDAA8B;AAC9B,8CAAwB;AAcxB,IAAM,aAAa,GAAkB;IACnC,IAAI,EAAE,+DAA+D;IACrE,QAAQ,YAAC,EAAe;YAAb,GAAG,SAAA,EAAE,MAAM,YAAA;QACpB,IAAM,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAG1D,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAC,GAAG,EAAE,GAAG;YAClC,IAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9E,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -1,91 +0,0 @@
1
- declare const _default: {
2
- defaultServices: {
3
- chrome: ({ port }: {
4
- path?: string | undefined;
5
- port?: number | undefined;
6
- }) => {
7
- services: {
8
- keycloak: {
9
- args: string[];
10
- };
11
- };
12
- path: string;
13
- keycloakUri: string;
14
- context: string[];
15
- target: string;
16
- };
17
- config: {
18
- path: string;
19
- register({ app, config, }: {
20
- app: import("express").Application;
21
- config: {
22
- config: {
23
- path: string;
24
- };
25
- };
26
- }): void;
27
- };
28
- entitlements: ({ env }: {
29
- env: string;
30
- }) => {
31
- assets: {
32
- 'entitlements-config': string;
33
- };
34
- register({ app, config, }: {
35
- app: import("express").Application;
36
- config: {
37
- entitlements: {
38
- assets: {
39
- 'entitlements-config': string;
40
- };
41
- };
42
- };
43
- }): void;
44
- };
45
- landing: {
46
- path: string;
47
- register: (options: {
48
- app: import("express").Application;
49
- config: {
50
- landing: {
51
- path: string;
52
- };
53
- };
54
- }) => void;
55
- };
56
- };
57
- rbac: {
58
- assets: {
59
- 'rbac-config': string;
60
- };
61
- services: ({ port, env, assets }: {
62
- port: number;
63
- env: string;
64
- assets: {
65
- [key: string]: string;
66
- };
67
- }) => {
68
- redis: {
69
- startMessage: string;
70
- args: string[];
71
- };
72
- postgres: {
73
- startMessage: string;
74
- args: string[];
75
- };
76
- rbac: {
77
- startMessage: string;
78
- dependsOn: string[];
79
- args: string[];
80
- };
81
- };
82
- context: string;
83
- target: string;
84
- };
85
- backofficeProxy: {
86
- register({ app }: {
87
- app: import("express").Application;
88
- }): void;
89
- };
90
- };
91
- export default _default;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var default_1 = __importDefault(require("./default"));
7
- var rbac_1 = __importDefault(require("./rbac"));
8
- var backofficeProxy_1 = __importDefault(require("./backofficeProxy"));
9
- exports.default = {
10
- defaultServices: default_1.default,
11
- rbac: rbac_1.default,
12
- backofficeProxy: backofficeProxy_1.default,
13
- };
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/standalone/services/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAAwC;AACxC,gDAA0B;AAC1B,sEAAgD;AAEhD,kBAAe;IACb,eAAe,mBAAA;IACf,IAAI,gBAAA;IACJ,eAAe,2BAAA;CAChB,CAAC"}
@@ -1,29 +0,0 @@
1
- declare const _default: {
2
- assets: {
3
- 'rbac-config': string;
4
- };
5
- services: ({ port, env, assets }: {
6
- port: number;
7
- env: string;
8
- assets: {
9
- [key: string]: string;
10
- };
11
- }) => {
12
- redis: {
13
- startMessage: string;
14
- args: string[];
15
- };
16
- postgres: {
17
- startMessage: string;
18
- args: string[];
19
- };
20
- rbac: {
21
- startMessage: string;
22
- dependsOn: string[];
23
- args: string[];
24
- };
25
- };
26
- context: string;
27
- target: string;
28
- };
29
- export default _default;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var path_1 = __importDefault(require("path"));
7
- function getRbacConfigFolder(env) {
8
- if (env.startsWith('prod')) {
9
- return 'prod';
10
- }
11
- else if (env.startsWith('qa')) {
12
- return 'qa';
13
- }
14
- return 'ci';
15
- }
16
- var rbacPort = process.env['RBAC_PORT'] ? process.env['RBAC_PORT'] : 4012;
17
- var services = function (_a) {
18
- var port = _a.port, env = _a.env, assets = _a.assets;
19
- return ({
20
- redis: {
21
- startMessage: 'Ready to accept connections',
22
- args: ['redis:5.0.4'],
23
- },
24
- postgres: {
25
- startMessage: 'database system is ready to accept connections',
26
- args: ["-e POSTGRES_DB=postgres", "-e POSTGRES_USER=postgres", "-e POSTGRES_PASSWORD=postgres", 'postgres:9.6'],
27
- },
28
- rbac: {
29
- startMessage: 'Booting worker',
30
- dependsOn: ["rbac_redis", "rbac_postgres"],
31
- args: [
32
- "-p ".concat(rbacPort, ":8080"),
33
- "-e API_PATH_PREFIX=api/rbac/",
34
- "-e DATABASE_SERVICE_NAME=POSTGRES_SQL",
35
- "-e DATABASE_ENGINE=postgresql",
36
- "-e DATABASE_NAME=postgres",
37
- "-e DATABASE_USER=postgres",
38
- "-e DATABASE_PASSWORD=postgres",
39
- "-e DATABASE_HOST=rbac_postgres",
40
- "-e REDIS_HOST=rbac_redis",
41
- "-e DJANGO_LOG_HANDLERS=console",
42
- "-e DJANGO_READ_DOT_ENV_FILE=True",
43
- "-e PRINCIPAL_PROXY_SERVICE_PROTOCOL=http",
44
- "--add-host host.docker.internal:host-gateway",
45
- "-e PRINCIPAL_PROXY_SERVICE_HOST=host.docker.internal",
46
- "-e PRINCIPAL_PROXY_SERVICE_PORT=".concat(port),
47
- "-e PRINCIPAL_PROXY_SERVICE_PATH=/api/insights-services",
48
- "-e DISABLE_MIGRATE=False",
49
- "-e DJANGO_DEBUG=True",
50
- "-e APP_HOME=/opt/app-root/src/rbac",
51
- "-v ".concat(path_1.default.resolve(assets['rbac-config'], 'configs', getRbacConfigFolder(env), 'permissions'), ":/opt/app-root/src/rbac/management/role/permissions:ro"),
52
- "-v ".concat(path_1.default.resolve(assets['rbac-config'], 'configs', getRbacConfigFolder(env), 'roles'), ":/opt/app-root/src/rbac/management/role/definitions:ro"),
53
- "quay.io/cloudservices/rbac",
54
- ],
55
- },
56
- });
57
- };
58
- exports.default = {
59
- assets: {
60
- 'rbac-config': 'https://github.com/redhatinsights/rbac-config',
61
- },
62
- services: services,
63
- context: '/api/rbac/v1',
64
- target: "http://localhost:".concat(rbacPort),
65
- };
66
- //# sourceMappingURL=rbac.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../src/standalone/services/rbac.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;AAExB,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE5E,IAAM,QAAQ,GAAG,UAAC,EAAuF;QAArF,IAAI,UAAA,EAAE,GAAG,SAAA,EAAE,MAAM,YAAA;IAAyE,OAAA,CAAC;QAC7G,KAAK,EAAE;YACL,YAAY,EAAE,6BAA6B;YAC3C,IAAI,EAAE,CAAC,aAAa,CAAC;SACtB;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,gDAAgD;YAC9D,IAAI,EAAE,CAAC,yBAAyB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,cAAc,CAAC;SAChH;QAED,IAAI,EAAE;YACJ,YAAY,EAAE,gBAAgB;YAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;YAC1C,IAAI,EAAE;gBACJ,aAAM,QAAQ,UAAO;gBACrB,8BAA8B;gBAC9B,uCAAuC;gBACvC,+BAA+B;gBAC/B,2BAA2B;gBAC3B,2BAA2B;gBAC3B,+BAA+B;gBAC/B,gCAAgC;gBAChC,0BAA0B;gBAC1B,gCAAgC;gBAChC,kCAAkC;gBAClC,0CAA0C;gBAC1C,8CAA8C;gBAC9C,sDAAsD;gBACtD,0CAAmC,IAAI,CAAE;gBACzC,wDAAwD;gBACxD,0BAA0B;gBAE1B,sBAAsB;gBACtB,oCAAoC;gBACpC,aAAM,cAAI,CAAC,OAAO,CAChB,MAAM,CAAC,aAAa,CAAC,EACrB,SAAS,EACT,mBAAmB,CAAC,GAAG,CAAC,EACxB,aAAa,CACd,2DAAwD;gBACzD,aAAM,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,2DAAwD;gBAC/I,4BAA4B;aAC7B;SACF;KACF,CAAC;AA5C4G,CA4C5G,CAAC;AAEH,kBAAe;IACb,MAAM,EAAE;QACN,aAAa,EAAE,+CAA+C;KAC/D;IACD,QAAQ,UAAA;IACR,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,2BAAoB,QAAQ,CAAE;CACvC,CAAC"}
@@ -1,13 +0,0 @@
1
- export declare function startService(services: {
2
- [service: string]: {
3
- services: {
4
- [subService: string]: {
5
- startMessage: string;
6
- };
7
- };
8
- };
9
- }, name: string, subService: {
10
- args: string[];
11
- dependsOn: string[];
12
- }): Promise<void>;
13
- export declare function stopService(name: string): void;
@@ -1,86 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.stopService = exports.startService = void 0;
40
- var child_process_1 = require("child_process");
41
- var helpers_1 = require("./helpers");
42
- function startService(services, name, subService) {
43
- return __awaiter(this, void 0, void 0, function () {
44
- var args, _i, _a, dep, _b, project, subService_1, startMessage;
45
- return __generator(this, function (_c) {
46
- switch (_c.label) {
47
- case 0:
48
- args = subService.args.filter(Boolean).join(' \\\n');
49
- (0, child_process_1.execSync)("docker container rm --force ".concat(name));
50
- _i = 0, _a = subService.dependsOn || [];
51
- _c.label = 1;
52
- case 1:
53
- if (!(_i < _a.length)) return [3, 7];
54
- dep = _a[_i];
55
- _b = dep.split('_'), project = _b[0], subService_1 = _b[1];
56
- startMessage = services[project].services[subService_1].startMessage;
57
- console.log('Waiting for', dep);
58
- _c.label = 2;
59
- case 2:
60
- if (!!(0, child_process_1.execSync)("docker logs ".concat(dep, " 2>&1")).toString().includes(startMessage)) return [3, 4];
61
- console.log('Waiting for', dep);
62
- return [4, new Promise(function (res) { return setTimeout(res, 1000); })];
63
- case 3:
64
- _c.sent();
65
- return [3, 2];
66
- case 4: return [4, new Promise(function (res) { return setTimeout(res, 500); })];
67
- case 5:
68
- _c.sent();
69
- _c.label = 6;
70
- case 6:
71
- _i++;
72
- return [3, 1];
73
- case 7:
74
- (0, child_process_1.execSync)("docker run --detach --name ".concat(name, " --network ").concat(helpers_1.NET, " --pull always ").concat(args), { stdio: 'inherit' });
75
- return [2];
76
- }
77
- });
78
- });
79
- }
80
- exports.startService = startService;
81
- function stopService(name) {
82
- console.log('stopping', name);
83
- (0, child_process_1.execSync)("docker stop ".concat(name));
84
- }
85
- exports.stopService = stopService;
86
- //# sourceMappingURL=startService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startService.js","sourceRoot":"","sources":["../src/standalone/startService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAyC;AACzC,qCAAgC;AAEhC,SAAsB,YAAY,CAChC,QAQC,EACD,IAAY,EACZ,UAAmD;;;;;;oBAE7C,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAE3D,IAAA,wBAAQ,EAAC,sCAA+B,IAAI,CAAE,CAAC,CAAC;0BAGJ,EAA1B,KAAA,UAAU,CAAC,SAAS,IAAI,EAAE;;;yBAA1B,CAAA,cAA0B,CAAA;oBAAjC,GAAG;oBACN,KAAwB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAArC,OAAO,QAAA,EAAE,oBAAU,CAAmB;oBACrC,YAAY,GAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAU,CAAC,aAA3C,CAA4C;oBAEhE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;;;yBACzB,CAAC,IAAA,wBAAQ,EAAC,sBAAe,GAAG,UAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC3E,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;oBAChC,WAAM,IAAI,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,EAArB,CAAqB,CAAC,EAAA;;oBAAjD,SAAiD,CAAC;;wBAGpD,WAAM,IAAI,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAApB,CAAoB,CAAC,EAAA;;oBAAhD,SAAgD,CAAC;;;oBAVjC,IAA0B,CAAA;;;oBAc5C,IAAA,wBAAQ,EAAC,qCAA8B,IAAI,wBAAc,aAAG,4BAAkB,IAAI,CAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;;;;;CAC7G;AAjCD,oCAiCC;AAED,SAAgB,WAAW,CAAC,IAAY;IAEtC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAA,wBAAQ,EAAC,sBAAe,IAAI,CAAE,CAAC,CAAC;AAClC,CAAC;AAJD,kCAIC"}