@alauda-fe/common 1.0.1-beta.0 → 1.0.2

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.
@@ -1,7 +1,7 @@
1
1
  import { ValueOf } from 'ts-essentials';
2
2
  import { StringMap } from '../commons';
3
3
  import { Condition, KubernetesResource, ObjectMeta } from './core';
4
- import { ConfigMapKeyRef, Node, NodeTaint, SecretKeyRef } from './raw';
4
+ import { ConfigMapKeyRef, Node, NodeStatus, NodeTaint, SecretKeyRef } from './raw';
5
5
  /**
6
6
  * 只保留common中需要用到的crd 扩展类
7
7
  */
@@ -399,6 +399,105 @@ export interface TKEMachineSpec {
399
399
  annotations?: StringMap;
400
400
  taints?: NodeTaint[];
401
401
  }
402
+ export interface ClusterCredential extends KubernetesResource {
403
+ clusterName: string;
404
+ caCert: string;
405
+ token: string;
406
+ }
407
+ export interface TKEMachine extends KubernetesResource {
408
+ spec?: TKEMachineSpec;
409
+ status?: NodeStatus;
410
+ }
411
+ export interface Machine extends KubernetesResource {
412
+ spec?: MachineSpec;
413
+ status?: MachineStatus;
414
+ }
415
+ export interface MachineSpec {
416
+ cluster: string;
417
+ provider: string;
418
+ providerSpec: unknown;
419
+ }
420
+ export interface MachineStatus {
421
+ userDataSecret?: {
422
+ name?: string;
423
+ };
424
+ nodeRef?: {
425
+ name?: string;
426
+ };
427
+ lastUpdate: string;
428
+ errReason: string;
429
+ errMessage: string;
430
+ phase: string;
431
+ conditions: Condition[];
432
+ }
433
+ export interface ClusterView extends KubernetesResource {
434
+ spec?: void;
435
+ status?: ClusterViewStatus;
436
+ }
437
+ export interface ClusterViewStatus {
438
+ provisionType: 'SelfHosted' | 'ProviderHosted' | 'Imported' | 'Registered';
439
+ clusterType: string;
440
+ supportWindows: boolean;
441
+ registryAddress: string;
442
+ conditions: Condition[];
443
+ projects: Array<{
444
+ name: string;
445
+ displayName: string;
446
+ }>;
447
+ controlPlaneEndpoints: {
448
+ default: string;
449
+ advertise: string;
450
+ public?: string;
451
+ };
452
+ nodesInfo: {
453
+ readyNodes: number;
454
+ notReadyNodes: number;
455
+ architectures: string[];
456
+ totalCPUCores: number;
457
+ totalMemories: number;
458
+ totalNvidiaCores: number;
459
+ totalVGPUCores: number;
460
+ totalVGPUMemoryUnits: number;
461
+ extraResources: unknown;
462
+ criVersions: string[];
463
+ };
464
+ clusterNetwork: {
465
+ haLoadBalancerType?: 'Alive' | 'ThirdParty';
466
+ cniType: string;
467
+ protocolStack: 'IPv4' | 'IPv6' | 'Dual-Stack';
468
+ serviceCIDRs: string[];
469
+ podCIDRs: string[];
470
+ extraInfo: Record<string, string>;
471
+ vrid?: number;
472
+ maxNodes?: number;
473
+ };
474
+ managedBy?: {
475
+ pluginName: string;
476
+ entrypoint: string;
477
+ };
478
+ gpuPluginType?: 'Virtual' | 'Physical';
479
+ highAvailable: boolean;
480
+ needUpgrade: boolean;
481
+ upgradable: boolean;
482
+ version: string;
483
+ phase: string;
484
+ extraArgs: Record<string, Record<string, string>>;
485
+ publicAlternativeNames: string[];
486
+ }
487
+ export interface ProviderNetworkSpec {
488
+ defaultInterface: string;
489
+ customInterfaces: Array<{
490
+ interface: string;
491
+ nodes: string[];
492
+ }>;
493
+ excludeNodes: string[];
494
+ }
495
+ export interface ProviderNetwork extends KubernetesResource {
496
+ spec: ProviderNetworkSpec;
497
+ status?: {
498
+ ready: boolean;
499
+ };
500
+ }
402
501
  export interface LocaleDisplay {
403
502
  zh: string;
404
503
  en: string;
@@ -78,7 +78,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_ng_containe
78
78
  i0.ɵɵtextInterpolate1("(", item_r14.clusterDisplayName, ")");
79
79
  } }
80
80
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_aui_tag_9_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelementStart(0, "aui-tag", 41);
81
+ i0.ɵɵelementStart(0, "aui-tag", 42);
82
82
  i0.ɵɵtext(1);
83
83
  i0.ɵɵelementEnd();
84
84
  } if (rf & 2) {
@@ -93,11 +93,11 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_Template(rf
93
93
  i0.ɵɵtext(4);
94
94
  i0.ɵɵpipe(5, "translate");
95
95
  i0.ɵɵelementEnd();
96
- i0.ɵɵelementStart(6, "span");
96
+ i0.ɵɵelementStart(6, "span", 40);
97
97
  i0.ɵɵtext(7);
98
98
  i0.ɵɵtemplate(8, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_ng_container_8_Template, 2, 1, "ng-container", 7);
99
99
  i0.ɵɵelementEnd();
100
- i0.ɵɵtemplate(9, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_aui_tag_9_Template, 2, 1, "aui-tag", 40);
100
+ i0.ɵɵtemplate(9, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_aui_tag_9_Template, 2, 1, "aui-tag", 41);
101
101
  i0.ɵɵelementEnd()();
102
102
  } if (rf & 2) {
103
103
  const item_r14 = i0.ɵɵnextContext().$implicit;
@@ -113,7 +113,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_8_Template(rf
113
113
  i0.ɵɵproperty("ngIf", item_r14.clusterArch);
114
114
  } }
115
115
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_9_label_1_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵelementStart(0, "label", 44);
116
+ i0.ɵɵelementStart(0, "label", 45);
117
117
  i0.ɵɵtext(1);
118
118
  i0.ɵɵpipe(2, "translate");
119
119
  i0.ɵɵelementEnd();
@@ -123,12 +123,12 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_9_label_1_Tem
123
123
  } }
124
124
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_9_Template(rf, ctx) { if (rf & 1) {
125
125
  i0.ɵɵelementStart(0, "div");
126
- i0.ɵɵtemplate(1, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_9_label_1_Template, 3, 3, "label", 42);
126
+ i0.ɵɵtemplate(1, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_9_label_1_Template, 3, 3, "label", 43);
127
127
  i0.ɵɵelementStart(2, "span", 39);
128
128
  i0.ɵɵtext(3);
129
129
  i0.ɵɵpipe(4, "translate");
130
130
  i0.ɵɵelementEnd();
131
- i0.ɵɵelement(5, "aui-icon", 43);
131
+ i0.ɵɵelement(5, "aui-icon", 44);
132
132
  i0.ɵɵtext(6);
133
133
  i0.ɵɵpipe(7, "translate");
134
134
  i0.ɵɵelementEnd();
@@ -156,7 +156,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_10_ng_contain
156
156
  i0.ɵɵtextInterpolate1("(Istio ", item_r14.serviceMeshIstioVersion, ")");
157
157
  } }
158
158
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_10_Template(rf, ctx) { if (rf & 1) {
159
- i0.ɵɵelementStart(0, "div", 45)(1, "span", 39);
159
+ i0.ɵɵelementStart(0, "div", 46)(1, "span", 39);
160
160
  i0.ɵɵtext(2);
161
161
  i0.ɵɵpipe(3, "translate");
162
162
  i0.ɵɵelementEnd();
@@ -185,7 +185,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_ng_contain
185
185
  i0.ɵɵtextInterpolate1("(", item_r14.clusterDisplayName, ")");
186
186
  } }
187
187
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_aui_tag_7_Template(rf, ctx) { if (rf & 1) {
188
- i0.ɵɵelementStart(0, "aui-tag", 41);
188
+ i0.ɵɵelementStart(0, "aui-tag", 42);
189
189
  i0.ɵɵtext(1);
190
190
  i0.ɵɵelementEnd();
191
191
  } if (rf & 2) {
@@ -194,7 +194,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_aui_tag_7_
194
194
  i0.ɵɵtextInterpolate1(" ", item_r14.clusterArch, " ");
195
195
  } }
196
196
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_Template(rf, ctx) { if (rf & 1) {
197
- i0.ɵɵelementStart(0, "div", 45)(1, "span", 39);
197
+ i0.ɵɵelementStart(0, "div", 46)(1, "span", 39);
198
198
  i0.ɵɵtext(2);
199
199
  i0.ɵɵpipe(3, "translate");
200
200
  i0.ɵɵelementEnd();
@@ -202,7 +202,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_Template(r
202
202
  i0.ɵɵtext(5);
203
203
  i0.ɵɵtemplate(6, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_ng_container_6_Template, 2, 1, "ng-container", 7);
204
204
  i0.ɵɵelementEnd();
205
- i0.ɵɵtemplate(7, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_aui_tag_7_Template, 2, 1, "aui-tag", 40);
205
+ i0.ɵɵtemplate(7, ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_aui_tag_7_Template, 2, 1, "aui-tag", 41);
206
206
  i0.ɵɵelementEnd();
207
207
  } if (rf & 2) {
208
208
  const item_r14 = i0.ɵɵnextContext().$implicit;
@@ -216,7 +216,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_11_Template(r
216
216
  i0.ɵɵproperty("ngIf", item_r14.clusterArch);
217
217
  } }
218
218
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_12_Template(rf, ctx) { if (rf & 1) {
219
- i0.ɵɵelementStart(0, "div", 45)(1, "span", 39);
219
+ i0.ɵɵelementStart(0, "div", 46)(1, "span", 39);
220
220
  i0.ɵɵtext(2);
221
221
  i0.ɵɵpipe(3, "translate");
222
222
  i0.ɵɵelementEnd();
@@ -231,7 +231,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_12_Template(r
231
231
  i0.ɵɵtextInterpolate1("", item_r14.cluster, " ");
232
232
  } }
233
233
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_13_Template(rf, ctx) { if (rf & 1) {
234
- i0.ɵɵelementStart(0, "div", 45)(1, "span", 39);
234
+ i0.ɵɵelementStart(0, "div", 46)(1, "span", 39);
235
235
  i0.ɵɵtext(2);
236
236
  i0.ɵɵelementEnd();
237
237
  i0.ɵɵelementStart(3, "span");
@@ -246,7 +246,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_13_Template(r
246
246
  i0.ɵɵtextInterpolate1("", item_r14.serviceMeshIstioVersion || i0.ɵɵpipeBind1(5, 2, "not_deployed"), " ");
247
247
  } }
248
248
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_14_Template(rf, ctx) { if (rf & 1) {
249
- i0.ɵɵelementStart(0, "div", 46)(1, "span", 39);
249
+ i0.ɵɵelementStart(0, "div", 47)(1, "span", 39);
250
250
  i0.ɵɵtext(2);
251
251
  i0.ɵɵpipe(3, "translate");
252
252
  i0.ɵɵelementEnd();
@@ -263,9 +263,9 @@ function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_14_Template(r
263
263
  } }
264
264
  const _c3 = function (a0) { return { $implicit: a0 }; };
265
265
  function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_15_Template(rf, ctx) { if (rf & 1) {
266
- i0.ɵɵelementStart(0, "div", 47);
266
+ i0.ɵɵelementStart(0, "div", 48);
267
267
  i0.ɵɵlistener("click", function ResourceDataGridComponent_ng_container_14_div_1_div_2_div_15_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
268
- i0.ɵɵelementContainer(1, 48);
268
+ i0.ɵɵelementContainer(1, 49);
269
269
  i0.ɵɵelementEnd();
270
270
  } if (rf & 2) {
271
271
  const item_r14 = i0.ɵɵnextContext().$implicit;
@@ -340,7 +340,7 @@ function ResourceDataGridComponent_ng_container_14_div_1_Template(rf, ctx) { if
340
340
  } }
341
341
  function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template(rf, ctx) { if (rf & 1) {
342
342
  const _r54 = i0.ɵɵgetCurrentView();
343
- i0.ɵɵelementStart(0, "acl-resource-no-data", 49);
343
+ i0.ɵɵelementStart(0, "acl-resource-no-data", 50);
344
344
  i0.ɵɵlistener("refresh", function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template_acl_resource_no_data_refresh_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r53 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r53.reload.emit()); })("clear", function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Template_acl_resource_no_data_clear_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r55 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r55.keywordChange("")); });
345
345
  i0.ɵɵelementEnd();
346
346
  } if (rf & 2) {
@@ -348,7 +348,7 @@ function ResourceDataGridComponent_ng_container_14_acl_resource_no_data_2_Templa
348
348
  i0.ɵɵproperty("isFiltered", !!ctx_r10.keyword)("type", ctx_r10.type);
349
349
  } }
350
350
  function ResourceDataGridComponent_ng_container_14_acl_zero_state_4_Template(rf, ctx) { if (rf & 1) {
351
- i0.ɵɵelement(0, "acl-zero-state", 50);
351
+ i0.ɵɵelement(0, "acl-zero-state", 51);
352
352
  } }
353
353
  function ResourceDataGridComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
354
354
  i0.ɵɵelementContainerStart(0);
@@ -371,8 +371,8 @@ function ResourceDataGridComponent_ng_container_14_Template(rf, ctx) { if (rf &
371
371
  i0.ɵɵproperty("ngIf", ctx_r3.popupLite && !((tmp_2_0 = i0.ɵɵpipeBind1(5, 5, ctx_r3.displayData$)) == null ? null : tmp_2_0.length));
372
372
  } }
373
373
  function ResourceDataGridComponent_div_18_Template(rf, ctx) { if (rf & 1) {
374
- i0.ɵɵelementStart(0, "div", 51);
375
- i0.ɵɵelement(1, "acl-loading-mask", 52);
374
+ i0.ɵɵelementStart(0, "div", 52);
375
+ i0.ɵɵelement(1, "acl-loading-mask", 53);
376
376
  i0.ɵɵelementEnd();
377
377
  } if (rf & 2) {
378
378
  const ctx_r4 = i0.ɵɵnextContext();
@@ -502,7 +502,7 @@ export class ResourceDataGridComponent {
502
502
  } if (rf & 2) {
503
503
  let _t;
504
504
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.grid = _t.first);
505
- } }, inputs: { context: "context", popupLite: "popupLite", data: "data", type: "type", fields: "fields", actionTemplateRef: "actionTemplateRef", selectedUid: "selectedUid", loading: "loading" }, outputs: { selectItem: "selectItem", filter: "filter", reload: "reload" }, ngContentSelectors: _c8, decls: 19, vars: 32, consts: [[1, "header"], [1, "header__title", 3, "ngClass"], [1, "header__desc"], ["class", "header__custom", 4, "ngIf"], ["class", "tw-flex-1", 4, "ngIf"], ["size", "small", 3, "searchButton", "placeholder", "keyword", "clearable", "keywordChange"], ["class", "header__display-mode", 4, "ngIf"], [4, "ngIf"], ["class", "loading", 4, "ngIf"], [1, "header__custom"], [1, "tw-flex-1"], [1, "header__display-mode"], [1, "switch-btn", 3, "ngClass", "click"], ["icon", "list"], ["icon", "grid"], ["class", "grid", 3, "ngClass", 4, "ngIf"], [3, "isFiltered", "type", "refresh", "clear", 4, "ngIf"], ["context", "table", 4, "ngIf"], [1, "grid", 3, "ngClass"], ["grid", ""], ["class", "grid__item", 3, "ngClass", "auiTooltip", "auiTooltipDisabled", "click", 4, "ngFor", "ngForOf"], [1, "grid__item", 3, "ngClass", "auiTooltip", "auiTooltipDisabled", "click"], ["class", "check-triangle-badge", "icon", "check", 4, "ngIf"], [1, "grid__field", "grid__field-icon"], [3, "type", "color", "displayMode"], [1, "grid__field", "grid__field-name"], [1, "name"], [4, "ngFor", "ngForOf"], ["class", "des", 4, "ngIf"], ["class", "grid__field flex grid__field-cluster", 4, "ngIf"], [3, "class", 4, "ngIf"], ["class", "grid__field grid__field-servicemesh", 4, "ngIf"], ["class", "grid__field grid__field-time", 4, "ngIf"], ["class", "grid__field grid__field-action", 3, "click", 4, "ngIf"], ["icon", "check", 1, "check-triangle-badge"], [3, "ngClass"], [1, "des"], [1, "grid__field", "flex", "grid__field-cluster"], [1, "belonged-cluster", 3, "auiTooltip"], [1, "with-colon"], ["type", "primary", "size", "mini", 4, "ngIf"], ["type", "primary", "size", "mini"], ["class", "tw-text-help-text tw-mr-8", 4, "ngIf"], [3, "icon", "background"], [1, "tw-text-help-text", "tw-mr-8"], [1, "grid__field", "grid__field-servicemesh"], [1, "grid__field", "grid__field-time"], [1, "grid__field", "grid__field-action", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "isFiltered", "type", "refresh", "clear"], ["context", "table"], [1, "loading"], ["type", "content", 3, "loading"]], template: function ResourceDataGridComponent_Template(rf, ctx) { if (rf & 1) {
505
+ } }, inputs: { context: "context", popupLite: "popupLite", data: "data", type: "type", fields: "fields", actionTemplateRef: "actionTemplateRef", selectedUid: "selectedUid", loading: "loading" }, outputs: { selectItem: "selectItem", filter: "filter", reload: "reload" }, ngContentSelectors: _c8, decls: 19, vars: 32, consts: [[1, "header"], [1, "header__title", 3, "ngClass"], [1, "header__desc"], ["class", "header__custom", 4, "ngIf"], ["class", "tw-flex-1", 4, "ngIf"], ["size", "small", 3, "searchButton", "placeholder", "keyword", "clearable", "keywordChange"], ["class", "header__display-mode", 4, "ngIf"], [4, "ngIf"], ["class", "loading", 4, "ngIf"], [1, "header__custom"], [1, "tw-flex-1"], [1, "header__display-mode"], [1, "switch-btn", 3, "ngClass", "click"], ["icon", "list"], ["icon", "grid"], ["class", "grid", 3, "ngClass", 4, "ngIf"], [3, "isFiltered", "type", "refresh", "clear", 4, "ngIf"], ["context", "table", 4, "ngIf"], [1, "grid", 3, "ngClass"], ["grid", ""], ["class", "grid__item", 3, "ngClass", "auiTooltip", "auiTooltipDisabled", "click", 4, "ngFor", "ngForOf"], [1, "grid__item", 3, "ngClass", "auiTooltip", "auiTooltipDisabled", "click"], ["class", "check-triangle-badge", "icon", "check", 4, "ngIf"], [1, "grid__field", "grid__field-icon"], [3, "type", "color", "displayMode"], [1, "grid__field", "grid__field-name"], [1, "name"], [4, "ngFor", "ngForOf"], ["class", "des", 4, "ngIf"], ["class", "grid__field flex grid__field-cluster", 4, "ngIf"], [3, "class", 4, "ngIf"], ["class", "grid__field grid__field-servicemesh", 4, "ngIf"], ["class", "grid__field grid__field-time", 4, "ngIf"], ["class", "grid__field grid__field-action", 3, "click", 4, "ngIf"], ["icon", "check", 1, "check-triangle-badge"], [3, "ngClass"], [1, "des"], [1, "grid__field", "flex", "grid__field-cluster"], [1, "belonged-cluster", "tw-flex", 3, "auiTooltip"], [1, "with-colon"], [1, "tw-text-ellipsis", "tw-overflow-hidden"], ["type", "primary", "size", "mini", 4, "ngIf"], ["type", "primary", "size", "mini"], ["class", "tw-text-help-text tw-mr-8", 4, "ngIf"], [3, "icon", "background"], [1, "tw-text-help-text", "tw-mr-8"], [1, "grid__field", "grid__field-servicemesh"], [1, "grid__field", "grid__field-time"], [1, "grid__field", "grid__field-action", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "isFiltered", "type", "refresh", "clear"], ["context", "table"], [1, "loading"], ["type", "content", 3, "loading"]], template: function ResourceDataGridComponent_Template(rf, ctx) { if (rf & 1) {
506
506
  i0.ɵɵprojectionDef(_c6);
507
507
  i0.ɵɵelementStart(0, "div", 0)(1, "span", 1)(2, "span");
508
508
  i0.ɵɵtext(3);
@@ -546,7 +546,7 @@ export class ResourceDataGridComponent {
546
546
  i0.ɵɵproperty("ngIf", !ctx.loading && i0.ɵɵpipeBind3(15, 21, i0.ɵɵpipeBind2(16, 25, i0.ɵɵpipeBind1(17, 28, ctx.displayData$), ctx.sortWithoutIstio), ctx.filterDisabledData, ctx.context));
547
547
  i0.ɵɵadvance(4);
548
548
  i0.ɵɵproperty("ngIf", ctx.loading);
549
- } }, styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:20px;height:28px}.header[_ngcontent-%COMP%] aui-search[_ngcontent-%COMP%]{width:260px}.header__title[_ngcontent-%COMP%]{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite[_ngcontent-%COMP%]{font-size:16px;font-weight:700;line-height:22px}.header__desc[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4))}.header__custom[_ngcontent-%COMP%]{flex:1;padding:0 36px}.header__display-mode[_ngcontent-%COMP%]{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn[_ngcontent-%COMP%]{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:12px;height:12px}.switch-btn--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid[_ngcontent-%COMP%]{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}.grid__item[_ngcontent-%COMP%]{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:8px}.grid__item[_ngcontent-%COMP%]:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled[_ngcontent-%COMP%]{cursor:default}.grid__item--disabled[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%]:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{opacity:.3}.grid__item--disabled[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{opacity:1}.grid__field[_ngcontent-%COMP%]{flex:2;line-height:20px}.grid__field[_ngcontent-%COMP%]:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:20px}.grid__field-servicemesh[_ngcontent-%COMP%]{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{margin-left:8px}.grid__field-status[_ngcontent-%COMP%]{display:flex;align-items:center}.grid__field-status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:none}.grid__field-icon[_ngcontent-%COMP%]{max-width:30px;display:inline-flex}.grid__field-name[_ngcontent-%COMP%]{flex:2;flex-direction:column;max-width:280px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-left:4px}.grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action[_ngcontent-%COMP%]{max-width:30px}.grid--popup[_ngcontent-%COMP%]{max-height:382px;padding:12px}.grid--popup[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]:hover{box-shadow:none}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:12px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:24px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__item-selected-icon[_ngcontent-%COMP%]{display:inline-flex}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .belonged-cluster[_ngcontent-%COMP%]{position:static;padding-right:0}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px}.grid--card[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{margin-right:0;justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:100%;vertical-align:middle}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%]{margin:20px 0 24px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:14px;height:20px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] ~ .grid__field[_ngcontent-%COMP%]:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card[_ngcontent-%COMP%] .grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:inline}.grid--card[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%]:not(:last-of-type){margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-cluster[_ngcontent-%COMP%]{margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{position:absolute;right:10px;top:10px}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected){position:relative}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex[_ngcontent-%COMP%]{display:flex}.highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon[_ngcontent-%COMP%]{font-weight:500}.with-colon[_ngcontent-%COMP%]:after{content:\":\";margin-right:8px}.icon-normal[_ngcontent-%COMP%], .icon-enabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-green))}.icon-abnormal[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.icon-disabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-6))}.belonged-cluster[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%] + span[_ngcontent-%COMP%]{margin-right:8px}.belonged-cluster[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;display:inline-flex}.loading[_ngcontent-%COMP%]{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data[_ngcontent-%COMP%]{flex:1;margin:40px 0 80px}acl-zero-state[_ngcontent-%COMP%] .zero-placeholder{min-height:44px;padding:12px 10px}"], changeDetection: 0 }); }
549
+ } }, styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:20px;height:28px}.header[_ngcontent-%COMP%] aui-search[_ngcontent-%COMP%]{width:260px}.header__title[_ngcontent-%COMP%]{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite[_ngcontent-%COMP%]{font-size:16px;font-weight:700;line-height:22px}.header__desc[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4))}.header__custom[_ngcontent-%COMP%]{flex:1;padding:0 36px}.header__display-mode[_ngcontent-%COMP%]{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn[_ngcontent-%COMP%]{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:12px;height:12px}.switch-btn--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid[_ngcontent-%COMP%]{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}.grid__item[_ngcontent-%COMP%]{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:8px}.grid__item[_ngcontent-%COMP%]:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled[_ngcontent-%COMP%]{cursor:default}.grid__item--disabled[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%]:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{opacity:.3}.grid__item--disabled[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{opacity:1}.grid__field[_ngcontent-%COMP%]{flex:2;line-height:20px}.grid__field[_ngcontent-%COMP%]:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:20px}.grid__field-servicemesh[_ngcontent-%COMP%]{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{margin-left:8px}.grid__field-status[_ngcontent-%COMP%]{display:flex;align-items:center}.grid__field-status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:none}.grid__field-icon[_ngcontent-%COMP%]{max-width:30px;display:inline-flex}.grid__field-name[_ngcontent-%COMP%]{flex:2;flex-direction:column;max-width:280px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-left:4px}.grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action[_ngcontent-%COMP%]{max-width:30px}.grid--popup[_ngcontent-%COMP%]{max-height:382px;padding:12px}.grid--popup[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]:hover{box-shadow:none}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:12px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:24px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__item-selected-icon[_ngcontent-%COMP%]{display:inline-flex}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .belonged-cluster[_ngcontent-%COMP%]{position:static;padding-right:0}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px}.grid--card[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{margin-right:0;justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:100%;vertical-align:middle}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%]{margin:20px 0 24px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:14px;height:20px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] ~ .grid__field[_ngcontent-%COMP%]:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card[_ngcontent-%COMP%] .grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:inline}.grid--card[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%]:not(:last-of-type){margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-cluster[_ngcontent-%COMP%]{margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{position:absolute;right:10px;top:10px}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected){position:relative}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex[_ngcontent-%COMP%]{display:flex}.highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon[_ngcontent-%COMP%]{font-weight:500}.with-colon[_ngcontent-%COMP%]:after{content:\":\";margin-right:8px}.icon-normal[_ngcontent-%COMP%], .icon-enabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-green))}.icon-abnormal[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.icon-disabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-6))}.belonged-cluster[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%] + span[_ngcontent-%COMP%]{margin-right:8px}.belonged-cluster[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{display:inline-flex}.loading[_ngcontent-%COMP%]{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data[_ngcontent-%COMP%]{flex:1;margin:40px 0 80px}acl-zero-state[_ngcontent-%COMP%] .zero-placeholder{min-height:44px;padding:12px 10px}"], changeDetection: 0 }); }
550
550
  }
551
551
  __decorate([
552
552
  ObservableInput(),
@@ -554,7 +554,7 @@ __decorate([
554
554
  ], ResourceDataGridComponent.prototype, "data$", void 0);
555
555
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceDataGridComponent, [{
556
556
  type: Component,
557
- args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData:context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngIf=\"item.displayName\">{{\n item.displayName\n }}</ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:4px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{position:absolute;display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
557
+ args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData:context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngIf=\"item.displayName\">{{\n item.displayName\n }}</ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster tw-flex\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span class=\"tw-text-ellipsis tw-overflow-hidden\"\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:4px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
558
558
  }], null, { grid: [{
559
559
  type: ViewChild,
560
560
  args: ['grid']
@@ -581,4 +581,4 @@ __decorate([
581
581
  }], reload: [{
582
582
  type: Output
583
583
  }] }); })();
584
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvZGF0YS1ncmlkL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvaW50ZXJuYWxzL2RhdGEtZ3JpZC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFDTCxpQkFBaUIsR0FLbEIsTUFBTSxhQUFhLENBQUM7Ozs7SUNibkIsOEJBR0M7SUFDQyxrQkFBMEQ7SUFDNUQsaUJBQU07OztJQUNOLDBCQUdPOzs7OztJQVNQLGdDQUdDLGVBQUE7SUFJRyxzS0FBUyxlQUFBLHNCQUFlLEtBQUssQ0FBQyxDQUFBLElBQUM7SUFFL0IsK0JBQWlDO0lBQ25DLGlCQUFPO0lBQ1AsZ0NBSUM7SUFEQyxzS0FBUyxlQUFBLHNCQUFlLE1BQU0sQ0FBQyxDQUFBLElBQUM7SUFFaEMsK0JBQWlDO0lBQ25DLGlCQUFPLEVBQUE7OztJQVhMLGVBQThEO0lBQTlELG1GQUE4RDtJQU85RCxlQUE4RDtJQUE5RCxtRkFBOEQ7OztJQXVDOUQsK0JBSVk7Ozs7SUFrQlIsNkJBQStEO0lBQzdELGdDQUFxRDtJQUFBLFlBRW5EO0lBQUEsaUJBQU87SUFDWCwwQkFBZTs7O0lBSFAsZUFBOEM7SUFBOUMsMkVBQThDO0lBQUMsZUFFbkQ7SUFGbUQsa0NBRW5EOzs7SUFPSiw2QkFBdUM7SUFBQSxZQUVyQztJQUFBLDBCQUFlOzs7SUFGc0IsZUFFckM7SUFGcUMsMENBRXJDOzs7SUFOSiwrQkFHQztJQUNDLDhIQUVpQjtJQUNuQixpQkFBTTs7O0lBSFcsZUFBc0I7SUFBdEIsMkNBQXNCOzs7SUFtQmpDLDZCQUNDO0lBQUEsWUFBK0I7SUFBQSwwQkFDakM7OztJQURFLGVBQStCO0lBQS9CLDREQUErQjs7O0lBR3BDLG1DQUlDO0lBQ0MsWUFDRjtJQUFBLGlCQUFVOzs7SUFEUixlQUNGO0lBREUscURBQ0Y7OztJQXZCSiwrQkFHQyxlQUFBOztJQU9HLGdDQUF5QjtJQUFBLFlBQW9DOztJQUFBLGlCQUFPO0lBQ3BFLDRCQUNHO0lBQUEsWUFDQztJQUFBLDhIQUVEO0lBQ0gsaUJBQU87SUFDUCxxSEFNVTtJQUNaLGlCQUFPLEVBQUE7OztJQWxCTCxlQUVHO0lBRkgsMEdBRUc7SUFFc0IsZUFBb0M7SUFBcEMsOERBQW9DO0lBRTFELGVBQ0M7SUFERCxzQ0FDQztJQUFlLGVBQTZCO0lBQTdCLGtEQUE2QjtJQU83QyxlQUFzQjtJQUF0QiwyQ0FBc0I7OztJQWEzQixpQ0FHRztJQUFBLFlBQTJCOztJQUFBLGlCQUM3Qjs7SUFERSxlQUEyQjtJQUEzQiw4REFBMkI7OztJQVRoQywyQkFLQztJQUNDLGlIQUlDO0lBQ0QsZ0NBQXlCO0lBQUEsWUFBMEI7O0lBQUEsaUJBQU87SUFDMUQsK0JBUVk7SUFDWixZQUNGOztJQUFBLGlCQUFNOzs7O0lBckJKLDBHQUVHO0lBSUEsZUFBZTtJQUFmLHdDQUFlO0lBSU8sZUFBMEI7SUFBMUIscURBQTBCO0lBUWpELGVBQW1DO0lBQW5DLHdDQUFtQztJQU5uQywwREFBZ0MsbUdBQUE7SUFRbEMsZUFDRjtJQURFLHVFQUNGOzs7SUFTSSw2QkFDRztJQUFBLFlBQTBDO0lBQUEsMEJBQzVDOzs7SUFERSxlQUEwQztJQUExQyx1RUFBMEM7OztJQVJqRCwrQkFHQyxlQUFBO0lBQzBCLFlBQXdDOztJQUFBLGlCQUFPO0lBQ3hFLDRCQUFNO0lBQUMsWUFBMkI7SUFBQSxpQkFBTztJQUN6QywrQkFBaUI7SUFDZiwrSEFFQztJQUNILGlCQUFNLEVBQUE7OztJQU5tQixlQUF3QztJQUF4QyxrRUFBd0M7SUFDMUQsZUFBMkI7SUFBM0IseURBQTJCO0lBRWpCLGVBQWtDO0lBQWxDLHVEQUFrQzs7O0lBYS9DLDZCQUNDO0lBQUEsWUFBK0I7SUFBQSwwQkFDakM7OztJQURFLGVBQStCO0lBQS9CLDREQUErQjs7O0lBR3BDLG1DQUlDO0lBQ0MsWUFDRjtJQUFBLGlCQUFVOzs7SUFEUixlQUNGO0lBREUscURBQ0Y7OztJQWpCRiwrQkFHQyxlQUFBO0lBQzBCLFlBQTJCOztJQUFBLGlCQUFPO0lBQzNELDRCQUNHO0lBQUEsWUFDQztJQUFBLCtIQUVEO0lBQ0gsaUJBQU87SUFDUCxzSEFNVTtJQUNaLGlCQUFNOzs7SUFkcUIsZUFBMkI7SUFBM0IscURBQTJCO0lBRWpELGVBQ0M7SUFERCxzQ0FDQztJQUFlLGVBQTZCO0lBQTdCLGtEQUE2QjtJQU83QyxlQUFzQjtJQUF0QiwyQ0FBc0I7OztJQVEzQiwrQkFHQyxlQUFBO0lBQzBCLFlBQTJCOztJQUFBLGlCQUFPO0lBQzNELDRCQUFNO0lBQUEsWUFBbUI7SUFBQSxpQkFBTyxFQUFBOzs7SUFEUCxlQUEyQjtJQUEzQixxREFBMkI7SUFDOUMsZUFBbUI7SUFBbkIsZ0RBQW1COzs7SUFHM0IsK0JBR0MsZUFBQTtJQUMwQixZQUFhO0lBQUEsaUJBQU87SUFDN0MsNEJBQ0c7SUFBQSxZQUNIOztJQUFBLGlCQUFPLEVBQUE7OztJQUhrQixlQUFhO0lBQWIsNkJBQWE7SUFFbkMsZUFDSDtJQURHLHdHQUNIOzs7SUFJRiwrQkFHQyxlQUFBO0lBQzBCLFlBQThCOztJQUFBLGlCQUFPO0lBQzlELDRCQUFNO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU8sRUFBQTs7O0lBRDFCLGVBQThCO0lBQTlCLHdEQUE4QjtJQUNqRCxlQUFzQztJQUF0Qyw4REFBc0M7Ozs7SUFHOUMsK0JBUUM7SUFOQyw0SUFBUyx3QkFBd0IsSUFBQztJQU9sQyw0QkFLZ0I7SUFDbEIsaUJBQU07Ozs7SUFMRixlQUFzQztJQUF0Qyw0REFBc0MsMEVBQUE7Ozs7O0lBOUs1QywrQkFZQztJQUpDLHdQQUFTLGVBQUEsMEJBQWMsQ0FBQSxJQUFDO0lBS3hCLGlIQUlZO0lBRVosK0JBQTBDO0lBQ3hDLHdDQVVxQjtJQUN2QixpQkFBTTtJQUVOLCtCQUEwQyxjQUFBO0lBRXRDLHlIQUllO0lBQ2pCLGlCQUFNO0lBQ04sdUdBT007SUFDUixpQkFBTTtJQUVOLHdHQXlCTTtJQUVOLHdHQXNCTTtJQUVOLHlHQVdNO0lBRU4seUdBa0JNO0lBSU4seUdBTU07SUFFTix5R0FRTTtJQUdOLHlHQU1NO0lBRU4seUdBZU07SUFDUixpQkFBTTs7OztJQWpMSixxTUFJRSxzRUFBQSwrSUFBQTtJQUVGLG1FQUFpRDtJQUs5QyxlQUFnRDtJQUFoRCw2RUFBZ0Q7SUFPL0MsZUFBYTtJQUFiLG1DQUFhLHlJQUFBLG9DQUFBO0lBY2lCLGVBQStCO0lBQS9CLGtFQUErQjtJQVE1RCxlQUFnQjtJQUFoQix5Q0FBZ0I7SUFVbEIsZUFBd0M7SUFBeEMseUVBQXdDO0lBNkJ4QyxlQUF1QztJQUF2Qyx3RUFBdUM7SUFzQnZDLGVBQTRDO0lBQTVDLDZFQUE0QztJQWE1QyxlQUE0QztJQUE1Qyw2RUFBNEM7SUFzQjVDLGVBQWlEO0lBQWpELGtGQUFpRDtJQVFqRCxlQUFpRDtJQUFqRCxrRkFBaUQ7SUFXakQsZUFBbUQ7SUFBbkQsNEZBQW1EO0lBU25ELGVBS1Q7SUFMUyxvSUFLVDs7OztJQXRMRSxtQ0FTQztJQUNDLG1HQW9MTTtJQUNSLGlCQUFNOzs7O0lBM0xKLDZMQUlFO0lBSWlCLGVBQWM7SUFBZCx3Q0FBYzs7OztJQW9MbkMsZ0RBTUM7SUFGQyw0TkFBVyxlQUFBLHFCQUFhLENBQUEsSUFBQywyTUFDaEIsZUFBQSxzQkFBYyxFQUFFLENBQUMsQ0FBQSxJQUREO0lBRTFCLGlCQUF1Qjs7O0lBSnRCLDhDQUF3QixzQkFBQTs7O0lBSzFCLHFDQUdrQjs7O0lBbk5wQiw2QkFRQztJQUNDLDJGQStMTTtJQUNOLDZIQU13Qjs7SUFDeEIsaUhBR2tCOztJQUNwQiwwQkFBZTs7Ozs7O0lBek1WLGVBQXdCO0lBQXhCLDRDQUF3QjtJQStMeEIsZUFBbUQ7SUFBbkQsb0lBQW1EO0lBT25ELGVBQWtEO0lBQWxELG1JQUFrRDs7O0lBSXZELCtCQUdDO0lBQ0MsdUNBR29CO0lBQ3RCLGlCQUFNOzs7SUFIRixlQUFtQjtJQUFuQix3Q0FBbUI7Ozs7O0FEM092QixNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBY0UsWUFBTyxHQUFpQixNQUFNLENBQUM7UUFHL0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixTQUFJLEdBQW1CLEVBQUUsQ0FBQztRQU0xQixTQUFJLEdBQWEsV0FBVyxDQUFDO1FBRzdCLFdBQU0sR0FBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQVN2RCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR2YsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRzlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3BDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixjQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFFOUIsZ0JBQVcsR0FBZ0IsS0FBSyxDQUFDO1FBRWpDLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUV0QixtQkFBYyxHQUFHLGtCQUFrQixDQUFDO1FBSTdDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQTJCO1lBQ25DLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQztRQStDRiwyQkFBc0IsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakIsT0FBTztvQkFDTDt3QkFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7cUJBQ2hCO2lCQUNGLENBQUM7YUFDSDtZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sR0FBRyxHQUdKLEVBQUUsQ0FBQztZQUNSLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNaLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDO29CQUNQLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7aUJBQy9CLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDekIsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNwRCxhQUFhLEVBQUUsSUFBSTtxQkFDcEIsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDakM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQztRQThCRixxQkFBZ0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtZQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUN6RSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDO0tBS0g7SUEvS0MsSUFBdUIsSUFBSSxDQUFDLElBQTZCO1FBQ3ZELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBMkRELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFdBQVc7WUFDZCxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU87Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztvQkFDZCxDQUFDLENBQUMsVUFBVTtvQkFDWixDQUFDLENBQUMsS0FBSztnQkFDVCxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztvQkFDdkMsQ0FBQyxDQUFFLFdBQTJCO29CQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3hELENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFxQjtRQUN0QyxJQUNFLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTTtZQUN2QixJQUFJLENBQUMsaUJBQWlCO1lBQ3RCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQ2xCO1lBQ0EsT0FBTztTQUNSO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3RDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQ3hELENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNELElBQ0UsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNqQixTQUFTLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFDdEQ7WUFDQSxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUNoQixHQUFHLEVBQUUsU0FBUyxHQUFHLFlBQVk7YUFDOUIsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFpQ0QsUUFBUSxDQUFDLElBQWtCO1FBQ3pCLElBQ0UsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUMvQztZQUNBLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFlO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFvQixFQUFFLE9BQXFCO1FBQzVELHFDQUFxQztRQUNyQyxPQUFPLENBQ0wsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUN6RCxDQUFDO0lBQ2xCLENBQUM7SUFPRCxVQUFVLENBQUMsSUFBYztRQUN2QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDOzBGQS9LVSx5QkFBeUI7b0VBQXpCLHlCQUF5Qjs7Ozs7OztZQy9CdEMsOEJBQW9CLGNBQUEsV0FBQTtZQUtWLFlBQXlDOzs7WUFBQSxpQkFDOUM7WUFBQSwrQkFDRTtZQUFBLFlBQTJDOztZQUFBLGlCQUM3QyxFQUFBO1lBRUgsMEVBS007WUFDTiw0RUFHTztZQUNQLHNDQU9DO1lBSEMsaUlBQWlCLHlCQUFxQixJQUFDOztZQUd4QyxpQkFBYTtZQUNkLDhFQWtCTztZQUNULGlCQUFNO1lBQ04sOEZBb05lOzs7O1lBQ2YsNEVBUU07OztZQTFRRixlQUFnRDtZQUFoRCxvRUFBZ0Q7WUFFMUMsZUFBeUM7WUFBekMsNEZBQXlDO1lBRTVDLGVBQTJDO1lBQTNDLHFJQUEyQztZQUs3QyxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFNaEIsZUFBZTtZQUFmLG9DQUFlO1lBR2hCLGVBQXNCO1lBQXRCLG9DQUFzQix5REFBQSx3QkFBQSxtQkFBQTtZQVNyQixlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFtQjFCLGVBSzRDO1lBTDVDLDBMQUs0QztZQWlONUMsZUFBYTtZQUFiLGtDQUFhOzs7QUR2TmQ7SUFEQyxlQUFlLEVBQUU7OEJBQ1gsVUFBVTt3REFBaUI7dUZBakJ2Qix5QkFBeUI7Y0FOckMsU0FBUzsyQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07Z0JBR3hCLElBQUk7a0JBQTFCLFNBQVM7bUJBQUMsTUFBTTtZQU9qQixPQUFPO2tCQUROLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFJTixJQUFJO2tCQURILEtBQUs7WUFJTixLQUFLLE1BR0wsSUFBSTtrQkFESCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4saUJBQWlCO2tCQURoQixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sVUFBVTtrQkFEVCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlmZmVyZW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBwbHVyYWwgfSBmcm9tICdwbHVyYWxpemUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFVzYWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL2Jhc2UtbGlzdCc7XG5pbXBvcnQge1xuICBDb25maWd1cmFibGVGaWVsZCxcbiAgRGF0YUl0ZW0sXG4gIERhdGFJdGVtQmFzZSxcbiAgRGF0YVR5cGUsXG4gIERpc3BsYXlNb2RlLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1yZXNvdXJjZS1kYXRhLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlRGF0YUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdncmlkJykgc2V0IGdyaWQoZ3JpZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBpZiAoZ3JpZCkge1xuICAgICAgdGhpcy5pbml0U2Nyb2xsKGdyaWQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgY29udGV4dDogVXNhZ2VDb250ZXh0ID0gJ3BhZ2UnO1xuXG4gIEBJbnB1dCgpXG4gIHBvcHVwTGl0ZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRhdGE6IERhdGFJdGVtQmFzZVtdID0gW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPERhdGFJdGVtQmFzZVtdPjtcblxuICBASW5wdXQoKVxuICB0eXBlOiBEYXRhVHlwZSA9ICduYW1lc3BhY2UnO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogQ29uZmlndXJhYmxlRmllbGRbXSA9IFtDb25maWd1cmFibGVGaWVsZC5UaW1lXTtcblxuICBASW5wdXQoKVxuICBhY3Rpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZFVpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhSXRlbUJhc2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAga2V5d29yZCA9ICcnO1xuXG4gIGZpZWxkc0RlZiA9IENvbmZpZ3VyYWJsZUZpZWxkO1xuXG4gIGRpc3BsYXlNb2RlOiBEaXNwbGF5TW9kZSA9ICdyb3cnO1xuXG4gIGZpbHRlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU1vZGVLZXkgPSAnYWNsX2Rpc3BsYXlfbW9kZSc7XG5cbiAgZGlzcGxheURhdGEkOiBPYnNlcnZhYmxlPERhdGFJdGVtQmFzZVtdPjtcblxuICBwcml2YXRlIHNjcm9sbEluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgc3RhdHVzSWNvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBub3JtYWw6ICdjaGVja19jaXJjbGVfcycsXG4gICAgYWJub3JtYWw6ICdleGNsYW1hdGlvbl90cmlhbmdsZV9zJyxcbiAgICBlbmFibGVkOiAnY2hlY2tfY2lyY2xlX3MnLFxuICAgIGRpc2FibGVkOiAnbWludXNfY2lyY2xlX3MnLFxuICB9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGRpc3BsYXlNb2RlID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZGlzcGxheU1vZGVLZXkpO1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPVxuICAgICAgdGhpcy5jb250ZXh0ID09PSAncG9wdXAnXG4gICAgICAgID8gdGhpcy5wb3B1cExpdGVcbiAgICAgICAgICA/ICdyb3ctbGl0ZSdcbiAgICAgICAgICA6ICdyb3cnXG4gICAgICAgIDogWydyb3cnLCAnY2FyZCddLmluY2x1ZGVzKGRpc3BsYXlNb2RlKVxuICAgICAgICA/IChkaXNwbGF5TW9kZSBhcyBEaXNwbGF5TW9kZSlcbiAgICAgICAgOiAncm93JztcbiAgICB0aGlzLmRpc3BsYXlEYXRhJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5kYXRhJCxcbiAgICAgIHRoaXMuZmlsdGVyJC5waXBlKHN0YXJ0V2l0aCgnJykpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYXRhLCBrZXl3b3JkXSkgPT5cbiAgICAgICAgZGF0YS5maWx0ZXIoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGtleXdvcmQudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTY3JvbGwoc2Nyb2xsRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb250ZXh0ID09PSAncGFnZScgfHxcbiAgICAgIHRoaXMuc2Nyb2xsSW5pdGlhbGl6ZWQgfHxcbiAgICAgICF0aGlzLmRhdGE/Lmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmRhdGEuZmluZEluZGV4KFxuICAgICAgaXRlbSA9PiBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCA9PT0gdGhpcy5zZWxlY3RlZFVpZCxcbiAgICApO1xuICAgIGNvbnN0IHJvd0hlaWdodCA9IHNjcm9sbEVsLnNjcm9sbEhlaWdodCAvIHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEluZGV4ID4gLTEgJiZcbiAgICAgIHJvd0hlaWdodCAqIChjdXJyZW50SW5kZXggKyAxKSA+IHNjcm9sbEVsLm9mZnNldEhlaWdodFxuICAgICkge1xuICAgICAgc2Nyb2xsRWwuc2Nyb2xsVG8oe1xuICAgICAgICB0b3A6IHJvd0hlaWdodCAqIGN1cnJlbnRJbmRleCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNjcm9sbEluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGdldEhpZ2hsaWdodGVkTmFtZVN0cnMgPSAoaXRlbTogRGF0YUl0ZW1CYXNlKSA9PiB7XG4gICAgaWYgKCF0aGlzLmtleXdvcmQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBpdGVtLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBjb25zdCBvcmlnaW5hbCA9IGl0ZW0ubmFtZTtcbiAgICBjb25zdCBzdHJzID0gaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuc3BsaXQodGhpcy5rZXl3b3JkLnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHJldDogQXJyYXk8e1xuICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgaXNIaWdobGlnaHRlZD86IGJvb2xlYW47XG4gICAgfT4gPSBbXTtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBmb3IgKGNvbnN0IFtpLCBzdHJdIG9mIHN0cnMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBlbmQgPSBwb3MgKyBzdHIubGVuZ3RoO1xuICAgICAgcmV0LnB1c2goe1xuICAgICAgICB0ZXh0OiBvcmlnaW5hbC5zbGljZShwb3MsIGVuZCksXG4gICAgICB9KTtcbiAgICAgIGlmIChpICE9PSBzdHJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIHRleHQ6IG9yaWdpbmFsLnNsaWNlKGVuZCwgZW5kICsgdGhpcy5rZXl3b3JkLmxlbmd0aCksXG4gICAgICAgICAgaXNIaWdobGlnaHRlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBwb3MgPSBlbmQgKyB0aGlzLmtleXdvcmQubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9O1xuXG4gIG9uU2VsZWN0KGl0ZW06IERhdGFJdGVtQmFzZSkge1xuICAgIGlmIChcbiAgICAgIGl0ZW0uc3RhdGU/LmRpc2FibGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVWlkID0gaXRlbS5uYW1lO1xuICAgIHRoaXMuc2VsZWN0SXRlbS5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgc2V0RGlzcGxheU1vZGUobW9kZTogRGlzcGxheU1vZGUpIHtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gbW9kZTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5kaXNwbGF5TW9kZUtleSwgbW9kZSk7XG4gIH1cblxuICBrZXl3b3JkQ2hhbmdlKGtleXdvcmQ6IHN0cmluZykge1xuICAgIHRoaXMua2V5d29yZCA9IGtleXdvcmQ7XG4gICAgdGhpcy5maWx0ZXIkLm5leHQoa2V5d29yZCk7XG4gIH1cblxuICBmaWx0ZXJEaXNhYmxlZERhdGEoZGF0YTogRGF0YUl0ZW1CYXNlW10sIGNvbnRleHQ6IFVzYWdlQ29udGV4dCkge1xuICAgIC8vIHdvcmthcm91bmQgZm9yIHR5cGluZ3MgaW4gdGVtcGxhdGVcbiAgICByZXR1cm4gKFxuICAgICAgY29udGV4dCA9PT0gJ3BhZ2UnID8gZGF0YSA6IGRhdGEuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc3RhdGU/LmRpc2FibGVkKVxuICAgICkgYXMgRGF0YUl0ZW1bXTtcbiAgfVxuXG4gIHNvcnRXaXRob3V0SXN0aW8gPSAoZGF0YTogRGF0YUl0ZW1CYXNlW10pID0+IHtcbiAgICBjb25zdCB3aXRob3V0SXN0aW8gPSBkYXRhLmZpbHRlcihpdGVtID0+ICFpdGVtPy5zZXJ2aWNlTWVzaElzdGlvVmVyc2lvbik7XG4gICAgcmV0dXJuIFsuLi5kaWZmZXJlbmNlKGRhdGEsIHdpdGhvdXRJc3RpbyksIC4uLndpdGhvdXRJc3Rpb107XG4gIH07XG5cbiAgcGx1cmFsRm9ybSh0eXBlOiBEYXRhVHlwZSkge1xuICAgIHJldHVybiBwbHVyYWwodHlwZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImhlYWRlcl9fdGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2hlYWRlcl9fdGl0bGUtLWxpdGUnOiBwb3B1cExpdGUgfVwiXG4gID5cbiAgICA8c3Bhbj57eyB0eXBlIHwgcHVyZTogcGx1cmFsRm9ybSB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cImhlYWRlcl9fZGVzY1wiXG4gICAgICA+77yIe3sgKGRpc3BsYXlEYXRhJCB8IGFzeW5jKT8ubGVuZ3RoIHx8IDAgfX3vvIk8L3NwYW5cbiAgICA+XG4gIDwvc3Bhbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaGVhZGVyX19jdXN0b21cIlxuICAgICpuZ0lmPVwiIXBvcHVwTGl0ZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWNsUmVzb3VyY2VHcmlkSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInR3LWZsZXgtMVwiXG4gICAgKm5nSWY9XCJwb3B1cExpdGVcIlxuICA+PC9kaXY+XG4gIDxhdWktc2VhcmNoXG4gICAgW3NlYXJjaEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidmaWx0ZXJfYnlfbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgIFtrZXl3b3JkXT1cImtleXdvcmRcIlxuICAgIChrZXl3b3JkQ2hhbmdlKT1cImtleXdvcmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBzaXplPVwic21hbGxcIlxuICA+PC9hdWktc2VhcmNoPlxuICA8c3BhblxuICAgIGNsYXNzPVwiaGVhZGVyX19kaXNwbGF5LW1vZGVcIlxuICAgICpuZ0lmPVwiY29udGV4dCA9PT0gJ3BhZ2UnXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInN3aXRjaC1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnc3dpdGNoLWJ0bi0tc2VsZWN0ZWQnOiBkaXNwbGF5TW9kZSAhPT0gJ2NhcmQnIH1cIlxuICAgICAgKGNsaWNrKT1cInNldERpc3BsYXlNb2RlKCdyb3cnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJsaXN0XCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic3dpdGNoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzd2l0Y2gtYnRuLS1zZWxlY3RlZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgfVwiXG4gICAgICAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2NhcmQnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJncmlkXCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIlxuICAgICFsb2FkaW5nICYmXG4gICAgKGRpc3BsYXlEYXRhJFxuICAgICAgfCBhc3luY1xuICAgICAgfCBwdXJlOiBzb3J0V2l0aG91dElzdGlvXG4gICAgICB8IHB1cmU6IGZpbHRlckRpc2FibGVkRGF0YTpjb250ZXh0KSBhcyBkaXNwbGF5RGF0YVxuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJncmlkXCJcbiAgICAqbmdJZj1cImRpc3BsYXlEYXRhLmxlbmd0aFwiXG4gICAgI2dyaWRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnZ3JpZC0tY2FyZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgJiYgY29udGV4dCAhPT0gJ3BvcHVwJyxcbiAgICAgICdncmlkLS1wb3B1cCc6IGNvbnRleHQgPT09ICdwb3B1cCcsXG4gICAgICAnZ3JpZC0tcG9wdXAtLWxpdGUnOiBjb250ZXh0ID09PSAncG9wdXAnICYmIHBvcHVwTGl0ZVxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJncmlkX19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLXNlbGVjdGVkJzpcbiAgICAgICAgICBjb250ZXh0ID09PSAncG9wdXAnICYmIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCxcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLWRpc2FibGVkJzogaXRlbS5zdGF0ZT8uZGlzYWJsZWRcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJpdGVtLm5hbWUgKyAnLycgKyBpdGVtLmNsdXN0ZXJcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIiFpdGVtLnN0YXRlPy5kaXNhYmxlZCB8fCAhaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgICAgICAgY2xhc3M9XCJjaGVjay10cmlhbmdsZS1iYWRnZVwiXG4gICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwhLS0gaWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1pY29uXCI+XG4gICAgICAgIDxhY2wtcmVzb3VyY2UtaWNvblxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtjb2xvcl09XCJcbiAgICAgICAgICAgIGNvbnRleHQgPT09ICdwb3B1cCcgJiZcbiAgICAgICAgICAgICFwb3B1cExpdGUgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgICAgICAgICA/ICd3aGl0ZSdcbiAgICAgICAgICAgICAgOiAnYmx1ZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJkaXNwbGF5TW9kZVwiXG4gICAgICAgID48L2FjbC1yZXNvdXJjZS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5hbWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtbmFtZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ciBvZiBnZXRIaWdobGlnaHRlZE5hbWVTdHJzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7IGhpZ2hsaWdodGVkOiBzdHIuaXNIaWdobGlnaHRlZCB9XCI+e3tcbiAgICAgICAgICAgICAgc3RyLnRleHRcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGVzXCJcbiAgICAgICAgICAqbmdJZj1cIiFwb3B1cExpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZGlzcGxheU5hbWVcIj57e1xuICAgICAgICAgICAgaXRlbS5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5zOiBjbHVzdGVyIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGZsZXggZ3JpZF9fZmllbGQtY2x1c3RlclwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5DbHVzdGVyKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJiZWxvbmdlZC1jbHVzdGVyXCJcbiAgICAgICAgICBhdWlUb29sdGlwPVwie3tcbiAgICAgICAgICAgICgnYmVsb25nZWRfY2x1c3RlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIGl0ZW0uY2x1c3RlclxuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdiZWxvbmdlZF9jbHVzdGVyJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgPnt7IGl0ZW0uY2x1c3RlclxuICAgICAgICAgICAgfX08bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jbHVzdGVyRGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uY2x1c3RlckFyY2ggfX1cbiAgICAgICAgICA8L2F1aS10YWc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBwcm9qZWN0OiBzdGF0dXMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc3RhdHVzIHt7XG4gICAgICAgICAgJ2dyaWRfX2ZpZWxkLXN0YXR1cy0tJyArIGl0ZW0uc3RhdHVzXG4gICAgICAgIH19XCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlN0YXR1cylcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cInBvcHVwTGl0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LWhlbHAtdGV4dCB0dy1tci04XCJcbiAgICAgICAgICA+e3sgJ3N0YXR1cycgfCB0cmFuc2xhdGUgfX06PC9sYWJlbFxuICAgICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdzdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBbaWNvbl09XCJzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXVwiXG4gICAgICAgICAgW2JhY2tncm91bmRdPVwiXG4gICAgICAgICAgICBzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXS5lbmRzV2l0aCgnX3RyaWFuZ2xlX3MnKVxuICAgICAgICAgICAgICA/ICd0cmlhbmdsZSdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJ7eyAnaWNvbi0nICsgaXRlbS5zdGF0dXMgfX1cIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAge3sgaXRlbS5zdGF0dXMgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBhc206IHNlcnZpY2UgbWVzaCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnYmVsb25nZWRfc2VydmljZW1lc2gnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zZXJ2aWNlTWVzaE5hbWUgfX0gPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb25cIlxuICAgICAgICAgICAgPihJc3RpbyB7eyBpdGVtLnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2gpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID57eyBpdGVtLmNsdXN0ZXJcbiAgICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNsdXN0ZXJEaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS5jbHVzdGVyQXJjaCB9fVxuICAgICAgICA8L2F1aS10YWc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBtZXNoIGdyb3VwIC0tPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2hHcm91cClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnY2x1c3RlcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0uY2x1c3RlciB9fSA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYXNtOiBpc3RpbyAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaEdyb3VwKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdJc3RpbycgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgPnt7IGl0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb24gfHwgKCdub3RfZGVwbG95ZWQnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSB0aW1lIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXRpbWVcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuVGltZSkgJiYgIXBvcHVwTGl0ZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdjcmVhdGVkX2F0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS50aW1lc3RhbXAgfCBhY2xSZWxhdGl2ZVRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLWFjdGlvblwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuQWN0aW9uKSAmJlxuICAgICAgICAgIGFjdGlvblRlbXBsYXRlUmVmICYmXG4gICAgICAgICAgY29udGV4dCAhPT0gJ3BvcHVwJ1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uX19vcmlnaW5cbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YWNsLXJlc291cmNlLW5vLWRhdGFcbiAgICAqbmdJZj1cIiFwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgW2lzRmlsdGVyZWRdPVwiISFrZXl3b3JkXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAocmVmcmVzaCk9XCJyZWxvYWQuZW1pdCgpXCJcbiAgICAoY2xlYXIpPVwia2V5d29yZENoYW5nZSgnJylcIlxuICA+PC9hY2wtcmVzb3VyY2Utbm8tZGF0YT5cbiAgPGFjbC16ZXJvLXN0YXRlXG4gICAgKm5nSWY9XCJwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgY29udGV4dD1cInRhYmxlXCJcbiAgPjwvYWNsLXplcm8tc3RhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxkaXZcbiAgY2xhc3M9XCJsb2FkaW5nXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbj5cbiAgPGFjbC1sb2FkaW5nLW1hc2tcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICB0eXBlPVwiY29udGVudFwiXG4gID48L2FjbC1sb2FkaW5nLW1hc2s+XG48L2Rpdj5cbiJdfQ==
584
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvZGF0YS1ncmlkL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvaW50ZXJuYWxzL2RhdGEtZ3JpZC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFDTCxpQkFBaUIsR0FLbEIsTUFBTSxhQUFhLENBQUM7Ozs7SUNibkIsOEJBR0M7SUFDQyxrQkFBMEQ7SUFDNUQsaUJBQU07OztJQUNOLDBCQUdPOzs7OztJQVNQLGdDQUdDLGVBQUE7SUFJRyxzS0FBUyxlQUFBLHNCQUFlLEtBQUssQ0FBQyxDQUFBLElBQUM7SUFFL0IsK0JBQWlDO0lBQ25DLGlCQUFPO0lBQ1AsZ0NBSUM7SUFEQyxzS0FBUyxlQUFBLHNCQUFlLE1BQU0sQ0FBQyxDQUFBLElBQUM7SUFFaEMsK0JBQWlDO0lBQ25DLGlCQUFPLEVBQUE7OztJQVhMLGVBQThEO0lBQTlELG1GQUE4RDtJ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LGVBQTJDO1lBQTNDLHFJQUEyQztZQUs3QyxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFNaEIsZUFBZTtZQUFmLG9DQUFlO1lBR2hCLGVBQXNCO1lBQXRCLG9DQUFzQix5REFBQSx3QkFBQSxtQkFBQTtZQVNyQixlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFtQjFCLGVBSzRDO1lBTDVDLDBMQUs0QztZQWlONUMsZUFBYTtZQUFiLGtDQUFhOzs7QUR2TmQ7SUFEQyxlQUFlLEVBQUU7OEJBQ1gsVUFBVTt3REFBaUI7dUZBakJ2Qix5QkFBeUI7Y0FOckMsU0FBUzsyQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07Z0JBR3hCLElBQUk7a0JBQTFCLFNBQVM7bUJBQUMsTUFBTTtZQU9qQixPQUFPO2tCQUROLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFJTixJQUFJO2tCQURILEtBQUs7WUFJTixLQUFLLE1BR0wsSUFBSTtrQkFESCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4saUJBQWlCO2tCQURoQixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sVUFBVTtrQkFEVCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlmZmVyZW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBwbHVyYWwgfSBmcm9tICdwbHVyYWxpemUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFVzYWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL2Jhc2UtbGlzdCc7XG5pbXBvcnQge1xuICBDb25maWd1cmFibGVGaWVsZCxcbiAgRGF0YUl0ZW0sXG4gIERhdGFJdGVtQmFzZSxcbiAgRGF0YVR5cGUsXG4gIERpc3BsYXlNb2RlLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1yZXNvdXJjZS1kYXRhLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlRGF0YUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdncmlkJykgc2V0IGdyaWQoZ3JpZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBpZiAoZ3JpZCkge1xuICAgICAgdGhpcy5pbml0U2Nyb2xsKGdyaWQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgY29udGV4dDogVXNhZ2VDb250ZXh0ID0gJ3BhZ2UnO1xuXG4gIEBJbnB1dCgpXG4gIHBvcHVwTGl0ZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRhdGE6IERhdGFJdGVtQmFzZVtdID0gW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPERhdGFJdGVtQmFzZVtdPjtcblxuICBASW5wdXQoKVxuICB0eXBlOiBEYXRhVHlwZSA9ICduYW1lc3BhY2UnO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogQ29uZmlndXJhYmxlRmllbGRbXSA9IFtDb25maWd1cmFibGVGaWVsZC5UaW1lXTtcblxuICBASW5wdXQoKVxuICBhY3Rpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZFVpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhSXRlbUJhc2U+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAga2V5d29yZCA9ICcnO1xuXG4gIGZpZWxkc0RlZiA9IENvbmZpZ3VyYWJsZUZpZWxkO1xuXG4gIGRpc3BsYXlNb2RlOiBEaXNwbGF5TW9kZSA9ICdyb3cnO1xuXG4gIGZpbHRlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU1vZGVLZXkgPSAnYWNsX2Rpc3BsYXlfbW9kZSc7XG5cbiAgZGlzcGxheURhdGEkOiBPYnNlcnZhYmxlPERhdGFJdGVtQmFzZVtdPjtcblxuICBwcml2YXRlIHNjcm9sbEluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgc3RhdHVzSWNvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBub3JtYWw6ICdjaGVja19jaXJjbGVfcycsXG4gICAgYWJub3JtYWw6ICdleGNsYW1hdGlvbl90cmlhbmdsZV9zJyxcbiAgICBlbmFibGVkOiAnY2hlY2tfY2lyY2xlX3MnLFxuICAgIGRpc2FibGVkOiAnbWludXNfY2lyY2xlX3MnLFxuICB9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGRpc3BsYXlNb2RlID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZGlzcGxheU1vZGVLZXkpO1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPVxuICAgICAgdGhpcy5jb250ZXh0ID09PSAncG9wdXAnXG4gICAgICAgID8gdGhpcy5wb3B1cExpdGVcbiAgICAgICAgICA/ICdyb3ctbGl0ZSdcbiAgICAgICAgICA6ICdyb3cnXG4gICAgICAgIDogWydyb3cnLCAnY2FyZCddLmluY2x1ZGVzKGRpc3BsYXlNb2RlKVxuICAgICAgICA/IChkaXNwbGF5TW9kZSBhcyBEaXNwbGF5TW9kZSlcbiAgICAgICAgOiAncm93JztcbiAgICB0aGlzLmRpc3BsYXlEYXRhJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5kYXRhJCxcbiAgICAgIHRoaXMuZmlsdGVyJC5waXBlKHN0YXJ0V2l0aCgnJykpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYXRhLCBrZXl3b3JkXSkgPT5cbiAgICAgICAgZGF0YS5maWx0ZXIoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGtleXdvcmQudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTY3JvbGwoc2Nyb2xsRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb250ZXh0ID09PSAncGFnZScgfHxcbiAgICAgIHRoaXMuc2Nyb2xsSW5pdGlhbGl6ZWQgfHxcbiAgICAgICF0aGlzLmRhdGE/Lmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmRhdGEuZmluZEluZGV4KFxuICAgICAgaXRlbSA9PiBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCA9PT0gdGhpcy5zZWxlY3RlZFVpZCxcbiAgICApO1xuICAgIGNvbnN0IHJvd0hlaWdodCA9IHNjcm9sbEVsLnNjcm9sbEhlaWdodCAvIHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEluZGV4ID4gLTEgJiZcbiAgICAgIHJvd0hlaWdodCAqIChjdXJyZW50SW5kZXggKyAxKSA+IHNjcm9sbEVsLm9mZnNldEhlaWdodFxuICAgICkge1xuICAgICAgc2Nyb2xsRWwuc2Nyb2xsVG8oe1xuICAgICAgICB0b3A6IHJvd0hlaWdodCAqIGN1cnJlbnRJbmRleCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNjcm9sbEluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGdldEhpZ2hsaWdodGVkTmFtZVN0cnMgPSAoaXRlbTogRGF0YUl0ZW1CYXNlKSA9PiB7XG4gICAgaWYgKCF0aGlzLmtleXdvcmQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBpdGVtLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBjb25zdCBvcmlnaW5hbCA9IGl0ZW0ubmFtZTtcbiAgICBjb25zdCBzdHJzID0gaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuc3BsaXQodGhpcy5rZXl3b3JkLnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHJldDogQXJyYXk8e1xuICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgaXNIaWdobGlnaHRlZD86IGJvb2xlYW47XG4gICAgfT4gPSBbXTtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBmb3IgKGNvbnN0IFtpLCBzdHJdIG9mIHN0cnMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBlbmQgPSBwb3MgKyBzdHIubGVuZ3RoO1xuICAgICAgcmV0LnB1c2goe1xuICAgICAgICB0ZXh0OiBvcmlnaW5hbC5zbGljZShwb3MsIGVuZCksXG4gICAgICB9KTtcbiAgICAgIGlmIChpICE9PSBzdHJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIHRleHQ6IG9yaWdpbmFsLnNsaWNlKGVuZCwgZW5kICsgdGhpcy5rZXl3b3JkLmxlbmd0aCksXG4gICAgICAgICAgaXNIaWdobGlnaHRlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBwb3MgPSBlbmQgKyB0aGlzLmtleXdvcmQubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9O1xuXG4gIG9uU2VsZWN0KGl0ZW06IERhdGFJdGVtQmFzZSkge1xuICAgIGlmIChcbiAgICAgIGl0ZW0uc3RhdGU/LmRpc2FibGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVWlkID0gaXRlbS5uYW1lO1xuICAgIHRoaXMuc2VsZWN0SXRlbS5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgc2V0RGlzcGxheU1vZGUobW9kZTogRGlzcGxheU1vZGUpIHtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gbW9kZTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5kaXNwbGF5TW9kZUtleSwgbW9kZSk7XG4gIH1cblxuICBrZXl3b3JkQ2hhbmdlKGtleXdvcmQ6IHN0cmluZykge1xuICAgIHRoaXMua2V5d29yZCA9IGtleXdvcmQ7XG4gICAgdGhpcy5maWx0ZXIkLm5leHQoa2V5d29yZCk7XG4gIH1cblxuICBmaWx0ZXJEaXNhYmxlZERhdGEoZGF0YTogRGF0YUl0ZW1CYXNlW10sIGNvbnRleHQ6IFVzYWdlQ29udGV4dCkge1xuICAgIC8vIHdvcmthcm91bmQgZm9yIHR5cGluZ3MgaW4gdGVtcGxhdGVcbiAgICByZXR1cm4gKFxuICAgICAgY29udGV4dCA9PT0gJ3BhZ2UnID8gZGF0YSA6IGRhdGEuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc3RhdGU/LmRpc2FibGVkKVxuICAgICkgYXMgRGF0YUl0ZW1bXTtcbiAgfVxuXG4gIHNvcnRXaXRob3V0SXN0aW8gPSAoZGF0YTogRGF0YUl0ZW1CYXNlW10pID0+IHtcbiAgICBjb25zdCB3aXRob3V0SXN0aW8gPSBkYXRhLmZpbHRlcihpdGVtID0+ICFpdGVtPy5zZXJ2aWNlTWVzaElzdGlvVmVyc2lvbik7XG4gICAgcmV0dXJuIFsuLi5kaWZmZXJlbmNlKGRhdGEsIHdpdGhvdXRJc3RpbyksIC4uLndpdGhvdXRJc3Rpb107XG4gIH07XG5cbiAgcGx1cmFsRm9ybSh0eXBlOiBEYXRhVHlwZSkge1xuICAgIHJldHVybiBwbHVyYWwodHlwZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImhlYWRlcl9fdGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2hlYWRlcl9fdGl0bGUtLWxpdGUnOiBwb3B1cExpdGUgfVwiXG4gID5cbiAgICA8c3Bhbj57eyB0eXBlIHwgcHVyZTogcGx1cmFsRm9ybSB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cImhlYWRlcl9fZGVzY1wiXG4gICAgICA+77yIe3sgKGRpc3BsYXlEYXRhJCB8IGFzeW5jKT8ubGVuZ3RoIHx8IDAgfX3vvIk8L3NwYW5cbiAgICA+XG4gIDwvc3Bhbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaGVhZGVyX19jdXN0b21cIlxuICAgICpuZ0lmPVwiIXBvcHVwTGl0ZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWNsUmVzb3VyY2VHcmlkSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInR3LWZsZXgtMVwiXG4gICAgKm5nSWY9XCJwb3B1cExpdGVcIlxuICA+PC9kaXY+XG4gIDxhdWktc2VhcmNoXG4gICAgW3NlYXJjaEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidmaWx0ZXJfYnlfbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgIFtrZXl3b3JkXT1cImtleXdvcmRcIlxuICAgIChrZXl3b3JkQ2hhbmdlKT1cImtleXdvcmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBzaXplPVwic21hbGxcIlxuICA+PC9hdWktc2VhcmNoPlxuICA8c3BhblxuICAgIGNsYXNzPVwiaGVhZGVyX19kaXNwbGF5LW1vZGVcIlxuICAgICpuZ0lmPVwiY29udGV4dCA9PT0gJ3BhZ2UnXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInN3aXRjaC1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnc3dpdGNoLWJ0bi0tc2VsZWN0ZWQnOiBkaXNwbGF5TW9kZSAhPT0gJ2NhcmQnIH1cIlxuICAgICAgKGNsaWNrKT1cInNldERpc3BsYXlNb2RlKCdyb3cnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJsaXN0XCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic3dpdGNoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzd2l0Y2gtYnRuLS1zZWxlY3RlZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgfVwiXG4gICAgICAoY2xpY2spPVwic2V0RGlzcGxheU1vZGUoJ2NhcmQnKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJncmlkXCI+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIlxuICAgICFsb2FkaW5nICYmXG4gICAgKGRpc3BsYXlEYXRhJFxuICAgICAgfCBhc3luY1xuICAgICAgfCBwdXJlOiBzb3J0V2l0aG91dElzdGlvXG4gICAgICB8IHB1cmU6IGZpbHRlckRpc2FibGVkRGF0YTpjb250ZXh0KSBhcyBkaXNwbGF5RGF0YVxuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJncmlkXCJcbiAgICAqbmdJZj1cImRpc3BsYXlEYXRhLmxlbmd0aFwiXG4gICAgI2dyaWRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnZ3JpZC0tY2FyZCc6IGRpc3BsYXlNb2RlID09PSAnY2FyZCcgJiYgY29udGV4dCAhPT0gJ3BvcHVwJyxcbiAgICAgICdncmlkLS1wb3B1cCc6IGNvbnRleHQgPT09ICdwb3B1cCcsXG4gICAgICAnZ3JpZC0tcG9wdXAtLWxpdGUnOiBjb250ZXh0ID09PSAncG9wdXAnICYmIHBvcHVwTGl0ZVxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJncmlkX19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLXNlbGVjdGVkJzpcbiAgICAgICAgICBjb250ZXh0ID09PSAncG9wdXAnICYmIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCxcbiAgICAgICAgJ2dyaWRfX2l0ZW0tLWRpc2FibGVkJzogaXRlbS5zdGF0ZT8uZGlzYWJsZWRcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJpdGVtLm5hbWUgKyAnLycgKyBpdGVtLmNsdXN0ZXJcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIiFpdGVtLnN0YXRlPy5kaXNhYmxlZCB8fCAhaXRlbS5zdGF0ZT8udG9vbHRpcFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVaWQgPT09IGl0ZW0uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgICAgICAgY2xhc3M9XCJjaGVjay10cmlhbmdsZS1iYWRnZVwiXG4gICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwhLS0gaWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1pY29uXCI+XG4gICAgICAgIDxhY2wtcmVzb3VyY2UtaWNvblxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtjb2xvcl09XCJcbiAgICAgICAgICAgIGNvbnRleHQgPT09ICdwb3B1cCcgJiZcbiAgICAgICAgICAgICFwb3B1cExpdGUgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkVWlkID09PSBpdGVtLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgICAgICAgICA/ICd3aGl0ZSdcbiAgICAgICAgICAgICAgOiAnYmx1ZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJkaXNwbGF5TW9kZVwiXG4gICAgICAgID48L2FjbC1yZXNvdXJjZS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5hbWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtbmFtZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ciBvZiBnZXRIaWdobGlnaHRlZE5hbWVTdHJzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7IGhpZ2hsaWdodGVkOiBzdHIuaXNIaWdobGlnaHRlZCB9XCI+e3tcbiAgICAgICAgICAgICAgc3RyLnRleHRcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGVzXCJcbiAgICAgICAgICAqbmdJZj1cIiFwb3B1cExpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZGlzcGxheU5hbWVcIj57e1xuICAgICAgICAgICAgaXRlbS5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG5zOiBjbHVzdGVyIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGZsZXggZ3JpZF9fZmllbGQtY2x1c3RlclwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5DbHVzdGVyKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJiZWxvbmdlZC1jbHVzdGVyIHR3LWZsZXhcIlxuICAgICAgICAgIGF1aVRvb2x0aXA9XCJ7e1xuICAgICAgICAgICAgKCdiZWxvbmdlZF9jbHVzdGVyJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgaXRlbS5jbHVzdGVyXG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2JlbG9uZ2VkX2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC1lbGxpcHNpcyB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgPnt7IGl0ZW0uY2x1c3RlclxuICAgICAgICAgICAgfX08bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jbHVzdGVyRGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uY2x1c3RlckFyY2ggfX1cbiAgICAgICAgICA8L2F1aS10YWc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBwcm9qZWN0OiBzdGF0dXMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc3RhdHVzIHt7XG4gICAgICAgICAgJ2dyaWRfX2ZpZWxkLXN0YXR1cy0tJyArIGl0ZW0uc3RhdHVzXG4gICAgICAgIH19XCJcbiAgICAgICAgKm5nSWY9XCJmaWVsZHMuaW5jbHVkZXMoZmllbGRzRGVmLlN0YXR1cylcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdJZj1cInBvcHVwTGl0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LWhlbHAtdGV4dCB0dy1tci04XCJcbiAgICAgICAgICA+e3sgJ3N0YXR1cycgfCB0cmFuc2xhdGUgfX06PC9sYWJlbFxuICAgICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdzdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBbaWNvbl09XCJzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXVwiXG4gICAgICAgICAgW2JhY2tncm91bmRdPVwiXG4gICAgICAgICAgICBzdGF0dXNJY29uW2l0ZW0uc3RhdHVzXS5lbmRzV2l0aCgnX3RyaWFuZ2xlX3MnKVxuICAgICAgICAgICAgICA/ICd0cmlhbmdsZSdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJ7eyAnaWNvbi0nICsgaXRlbS5zdGF0dXMgfX1cIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAge3sgaXRlbS5zdGF0dXMgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBhc206IHNlcnZpY2UgbWVzaCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnYmVsb25nZWRfc2VydmljZW1lc2gnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj4ge3sgaXRlbS5zZXJ2aWNlTWVzaE5hbWUgfX0gPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb25cIlxuICAgICAgICAgICAgPihJc3RpbyB7eyBpdGVtLnNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2gpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXRoLWNvbG9uXCI+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID57eyBpdGVtLmNsdXN0ZXJcbiAgICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNsdXN0ZXJEaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICA+KHt7IGl0ZW0uY2x1c3RlckRpc3BsYXlOYW1lIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY2x1c3RlckFyY2hcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS5jbHVzdGVyQXJjaCB9fVxuICAgICAgICA8L2F1aS10YWc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBtZXNoIGdyb3VwIC0tPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ3JpZF9fZmllbGQgZ3JpZF9fZmllbGQtc2VydmljZW1lc2hcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuU2VydmljZU1lc2hHcm91cClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGgtY29sb25cIj57eyAnY2x1c3RlcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0uY2x1c3RlciB9fSA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYXNtOiBpc3RpbyAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkX19maWVsZCBncmlkX19maWVsZC1zZXJ2aWNlbWVzaFwiXG4gICAgICAgICpuZ0lmPVwiZmllbGRzLmluY2x1ZGVzKGZpZWxkc0RlZi5TZXJ2aWNlTWVzaEdyb3VwKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdJc3RpbycgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgPnt7IGl0ZW0uc2VydmljZU1lc2hJc3Rpb1ZlcnNpb24gfHwgKCdub3RfZGVwbG95ZWQnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSB0aW1lIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLXRpbWVcIlxuICAgICAgICAqbmdJZj1cImZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuVGltZSkgJiYgIXBvcHVwTGl0ZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aC1jb2xvblwiPnt7ICdjcmVhdGVkX2F0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS50aW1lc3RhbXAgfCBhY2xSZWxhdGl2ZVRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWRfX2ZpZWxkIGdyaWRfX2ZpZWxkLWFjdGlvblwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGZpZWxkcy5pbmNsdWRlcyhmaWVsZHNEZWYuQWN0aW9uKSAmJlxuICAgICAgICAgIGFjdGlvblRlbXBsYXRlUmVmICYmXG4gICAgICAgICAgY29udGV4dCAhPT0gJ3BvcHVwJ1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uX19vcmlnaW5cbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YWNsLXJlc291cmNlLW5vLWRhdGFcbiAgICAqbmdJZj1cIiFwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgW2lzRmlsdGVyZWRdPVwiISFrZXl3b3JkXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAocmVmcmVzaCk9XCJyZWxvYWQuZW1pdCgpXCJcbiAgICAoY2xlYXIpPVwia2V5d29yZENoYW5nZSgnJylcIlxuICA+PC9hY2wtcmVzb3VyY2Utbm8tZGF0YT5cbiAgPGFjbC16ZXJvLXN0YXRlXG4gICAgKm5nSWY9XCJwb3B1cExpdGUgJiYgIShkaXNwbGF5RGF0YSQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgY29udGV4dD1cInRhYmxlXCJcbiAgPjwvYWNsLXplcm8tc3RhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxkaXZcbiAgY2xhc3M9XCJsb2FkaW5nXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbj5cbiAgPGFjbC1sb2FkaW5nLW1hc2tcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICB0eXBlPVwiY29udGVudFwiXG4gID48L2FjbC1sb2FkaW5nLW1hc2s+XG48L2Rpdj5cbiJdfQ==
@@ -21,5 +21,10 @@ export function setWorkspaceParams(params, email) {
21
21
  [email]: params,
22
22
  }));
23
23
  }
24
- export const getDisplayArch = (arch) => ClusterArch[arch] || arch;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYnVzaW5lc3MvcmVzb3VyY2Utc2VsZWN0L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBb0IsQ0FBQztLQUNyRDtJQUFDLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFhO0lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUN0RCxDQUFDO0lBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBdUIsRUFBRSxLQUFhO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUN0RCxDQUFDO0lBRUYsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ3pCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2IsR0FBRyxJQUFJO1FBQ1AsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNO0tBQ2hCLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQzdDLFdBQVcsQ0FBQyxJQUFnQyxDQUFDLElBQUksSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV09SS1NQQUNFX1BBUkFNUyB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBDbHVzdGVyQXJjaCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V29ya3NwYWNlUGFyYW1zKGVtYWlsOiBzdHJpbmcpOiBXb3Jrc3BhY2VQYXJhbXMge1xuICBjb25zdCBwYXJhbXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oV09SS1NQQUNFX1BBUkFNUyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UocGFyYW1zKVtlbWFpbF0gYXMgV29ya3NwYWNlUGFyYW1zO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRXb3Jrc3BhY2VQYXJhbXMoZW1haWw6IHN0cmluZykge1xuICBjb25zdCBwcmV2ID0gSlNPTi5wYXJzZShcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oV09SS1NQQUNFX1BBUkFNUykgfHwgJ3t9JyxcbiAgKTtcbiAgZGVsZXRlIHByZXZbZW1haWxdO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oV09SS1NQQUNFX1BBUkFNUywgSlNPTi5zdHJpbmdpZnkocHJldikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0V29ya3NwYWNlUGFyYW1zKHBhcmFtczogV29ya3NwYWNlUGFyYW1zLCBlbWFpbDogc3RyaW5nKSB7XG4gIGNvbnN0IHByZXYgPSBKU09OLnBhcnNlKFxuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShXT1JLU1BBQ0VfUEFSQU1TKSB8fCAne30nLFxuICApO1xuXG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICBXT1JLU1BBQ0VfUEFSQU1TLFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbZW1haWxdOiBwYXJhbXMsXG4gICAgfSksXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5QXJjaCA9IChhcmNoOiBzdHJpbmcpID0+XG4gIENsdXN0ZXJBcmNoW2FyY2ggYXMga2V5b2YgdHlwZW9mIENsdXN0ZXJBcmNoXSB8fCBhcmNoO1xuIl19
24
+ export const getDisplayArch = (arch) => {
25
+ return (arch
26
+ ?.split('.')
27
+ ?.map(ac => ClusterArch[ac])
28
+ ?.join(',') || arch);
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYnVzaW5lc3MvcmVzb3VyY2Utc2VsZWN0L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBb0IsQ0FBQztLQUNyRDtJQUFDLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFhO0lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUN0RCxDQUFDO0lBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBdUIsRUFBRSxLQUFhO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUN0RCxDQUFDO0lBRUYsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ3pCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2IsR0FBRyxJQUFJO1FBQ1AsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNO0tBQ2hCLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzdDLE9BQU8sQ0FDTCxJQUFJO1FBQ0YsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ1osRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBOEIsQ0FBQyxDQUFDO1FBQ3hELEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FDdEIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdPUktTUEFDRV9QQVJBTVMgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgV29ya3NwYWNlUGFyYW1zIH0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgQ2x1c3RlckFyY2ggfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmtzcGFjZVBhcmFtcyhlbWFpbDogc3RyaW5nKTogV29ya3NwYWNlUGFyYW1zIHtcbiAgY29uc3QgcGFyYW1zID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFdPUktTUEFDRV9QQVJBTVMpO1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHBhcmFtcylbZW1haWxdIGFzIFdvcmtzcGFjZVBhcmFtcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0V29ya3NwYWNlUGFyYW1zKGVtYWlsOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJldiA9IEpTT04ucGFyc2UoXG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFdPUktTUEFDRV9QQVJBTVMpIHx8ICd7fScsXG4gICk7XG4gIGRlbGV0ZSBwcmV2W2VtYWlsXTtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFdPUktTUEFDRV9QQVJBTVMsIEpTT04uc3RyaW5naWZ5KHByZXYpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFdvcmtzcGFjZVBhcmFtcyhwYXJhbXM6IFdvcmtzcGFjZVBhcmFtcywgZW1haWw6IHN0cmluZykge1xuICBjb25zdCBwcmV2ID0gSlNPTi5wYXJzZShcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oV09SS1NQQUNFX1BBUkFNUykgfHwgJ3t9JyxcbiAgKTtcblxuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgV09SS1NQQUNFX1BBUkFNUyxcbiAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgW2VtYWlsXTogcGFyYW1zLFxuICAgIH0pLFxuICApO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGlzcGxheUFyY2ggPSAoYXJjaDogc3RyaW5nKSA9PiB7XG4gIHJldHVybiAoXG4gICAgYXJjaFxuICAgICAgPy5zcGxpdCgnLicpXG4gICAgICA/Lm1hcChhYyA9PiBDbHVzdGVyQXJjaFthYyBhcyBrZXlvZiB0eXBlb2YgQ2x1c3RlckFyY2hdKVxuICAgICAgPy5qb2luKCcsJykgfHwgYXJjaFxuICApO1xufTtcbiJdfQ==
@@ -38,4 +38,4 @@ export var HelmRequestPhaseEnum;
38
38
  HelmRequestPhaseEnum["Pending"] = "Pending";
39
39
  HelmRequestPhaseEnum["Uninstalling"] = "Uninstalling";
40
40
  })(HelmRequestPhaseEnum || (HelmRequestPhaseEnum = {}));
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtSEEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUE4Q0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFzVlgsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlT2YgfSBmcm9tICd0cy1lc3NlbnRpYWxzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5cbmltcG9ydCB7IENvbmRpdGlvbiwgS3ViZXJuZXRlc1Jlc291cmNlLCBPYmplY3RNZXRhIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IENvbmZpZ01hcEtleVJlZiwgTm9kZSwgTm9kZVRhaW50LCBTZWNyZXRLZXlSZWYgfSBmcm9tICcuL3Jhdyc7XG5cbi8qKlxuICog5Y+q5L+d55WZY29tbW9u5Lit6ZyA6KaB55So5Yiw55qEY3JkIOaJqeWxleexu1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlSW5mb0NvbmRpdGlvbiB7XG4gIHN0YXR1cz86ICdTdWNjZXNzJyB8ICdGYWlsZWQnIHwgJ1Byb2Nlc3NpbmcnIHwgJ1BlbmRpbmcnO1xuICByZWFzb24/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGxhc3RUcmFuc2l0aW9uVGltZT86IHN0cmluZztcbiAgbGFzdEhlYXJ0YmVhdFRpbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlSW5mb0F2YWlsYWJsZVZlcnNpb24ge1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb25Fbj86IHN0cmluZztcbiAgcmlza0xldmVsPzogJ0xvdycgfCAnTWlkZGxlJyB8ICdIaWdoJztcbiAgZGVwZW5kZW5jaWVzPzogQXJyYXk8e1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uc01hdGNoOiBzdHJpbmdbXTtcbiAgfT47XG4gIHVwZ3JhZGVCZWZvcmU/OiBBcnJheTx7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IHtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gICAgc2VsZWN0ZWRDbHVzdGVyPzogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT47IC8vIHtwbHVnaW4tbmFtZTogY2x1c3Rlci1uYW1lfVtdXG4gICAgdmFsdWVzT3ZlcnJpZGU6IFN0cmluZ01hcDtcbiAgICBjb25maWc/OiBhbnk7XG4gIH07XG4gIHN0YXR1cz86IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcGhhc2U6ICdQcm9jZXNzaW5nJyB8ICdSdW5uaW5nJyB8ICdGYWlsZWQnIHwgJ0Jsb2NrZWQnO1xuICAgIHJlbW92ZUlzUHJldmVudGVkPzogYm9vbGVhbjtcbiAgICBibG9ja1JlYXNvbnM/OiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb25zPzogTW9kdWxlSW5mb0NvbmRpdGlvbltdO1xuICAgIGF2YWlsYWJsZVZlcnNpb25zOiBNb2R1bGVJbmZvQXZhaWxhYmxlVmVyc2lvbltdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJTcGVjIHtcbiAgYXV0aEluZm8/OiB7XG4gICAgY29udHJvbGxlcjoge1xuICAgICAga2luZDogc3RyaW5nO1xuICAgICAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAga3ViZXJuZXRlc0FwaUVuZHBvaW50cz86IHtcbiAgICBjYUJ1bmRsZT86IHN0cmluZztcbiAgICBzZXJ2ZXJFbmRwb2ludHM6IEFycmF5PHtcbiAgICAgIGNsaWVudENJRFI6IHN0cmluZztcbiAgICAgIHNlcnZlckFkZHJlc3M6IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2x1c3RlclN0YXR1c1JlYXNvbiA9XG4gIHwgJ1RpbWVvdXQnXG4gIHwgJ0ZvcmJpZGRlbidcbiAgfCAnVW5hdXRob3JpemVkJ1xuICB8ICdTb21lQ29tcG9uZW50c1VuaGVhbHRoeSdcbiAgfCAnU29tZU5vZGVzTm90UmVhZHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJTdGF0dXNDb25kaXRpb24gZXh0ZW5kcyBDb25kaXRpb24ge1xuICBsYXN0VHJhbnNpdGlvblRpbWU6IHN0cmluZztcbiAgdHlwZTpcbiAgICB8ICdOb3RSZWFjaGFibGUnXG4gICAgfCAnTm90QWNjZXNzaWJsZSdcbiAgICB8ICdDb21wb25lbnROb3RIZWFsdGh5J1xuICAgIHwgJ05vZGVOb3RSZWFkeSc7XG4gIHN0YXR1czogJ1RydWUnIHwgJ0ZhbHNlJztcbiAgcmVhc29uOiBDbHVzdGVyU3RhdHVzUmVhc29uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJTdGF0dXMge1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM6IENsdXN0ZXJTdGF0dXNDb25kaXRpb25bXTtcbn1cblxuLy8gY2x1c3RlcnMuY2x1c3RlcnJlZ2lzdHJ5Lms4cy5pbyDnmoTnsbvlnovlrprkuYlcbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIG1ldGFkYXRhPzogT2JqZWN0TWV0YSAmIHtcbiAgICBmaW5hbGl6ZXJzPzogc3RyaW5nW107XG4gIH07XG4gIHNwZWM/OiBDbHVzdGVyU3BlYztcbiAgc3RhdHVzPzogQ2x1c3RlclN0YXR1cztcbiAgZGV0YWlscz86IHtcbiAgICBncm91cDogc3RyaW5nO1xuICAgIGtpbmQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdWlkOiBzdHJpbmc7XG4gIH07XG59XG5cbi8vIEFsYXVkYSBQcm9kdWN0XG5leHBvcnQgaW50ZXJmYWNlIEFsYXVkYVByb2R1Y3RTdGF0dXMgZXh0ZW5kcyBDb25kaXRpb24ge1xuICBkZXBsb3lTdGF0dXM/OiBBbGF1ZGFEZXBsb3lTdGF0dXM7XG4gIHJ1bm5pbmdTdGF0dXM/OiBBbGF1ZGFSdW5uaW5nU3RhdHVzO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlcGxveVRpbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEFsYXVkYVJ1bm5pbmdTdGF0dXMge1xuICBOT1RfUlVOTklORyA9ICdOb3RSdW5uaW5nJyxcbiAgSEVBTFRIWSA9ICdIZWFsdGh5JyxcbiAgQUJOT1JNQUwgPSAnQWJub3JtYWwnLFxufVxuXG5leHBvcnQgZW51bSBBbGF1ZGFEZXBsb3lTdGF0dXMge1xuICBOT1RfREVQTE9ZRUQgPSAnTm90RGVwbG95ZWQnLFxuICBTVUNDRVNTID0gJ3N1Y2Nlc3MnLFxuICBBQk5PUk1BTCA9ICdBYm5vcm1hbCcsXG4gIERFUExPWUlORyA9ICdEZXBsb3lpbmcnLFxuICBERVBMT1lfRkFJTEVEID0gJ0RlcGxveUZhaWxlZCcsXG4gIFVQR1JBRElORyA9ICdVcGdyYWRpbmcnLFxuICBVUEdSQURFX0ZBSUxFRCA9ICdVcGdyYWRlRmFpbGVkJyxcbiAgQ09NUExFVEVEID0gJ0NvbXBsZXRlZCcsXG4gIFBFTkRJTkcgPSAnUGVuZGluZycsXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RCYXNlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogUHJvZHVjdEJhc2VTcGVjO1xuICBzdGF0dXM/OiBQcm9kdWN0QmFzZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0U3RhdHVzQ29uZGl0aW9uIHtcbiAgc3RhdHVzPzogJ1RydWUnIHwgJ0ZhbHNlJyB8ICdVbmtub3duJztcbiAgcmVhc29uPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICB0eXBlOiAnUmVhZHknIHwgJ0luaXRpYWxpemVkJyB8ICdSZWNsYWltZWQnIHwgJ1N1Y2NlZWQnO1xuICBsYXN0VHJhbnNpdGlvblRpbWU/OiBzdHJpbmc7XG4gIGxhc3RIZWFydGJlYXRUaW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RCYXNlU3RhdHVzIHtcbiAgZ2xvYmFsSUQ6IHN0cmluZztcbiAgY2xvdWQ6IHtcbiAgICBwaGFzZTogJ09OTGluZScgfCAnQ29ubmVjdEZhaWxlZCcgfCAnQ29ubmVjdGluZycgfCAnT0ZGTGluZSc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbm5lY3RVUkw6IHN0cmluZztcbiAgfTtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwaGFzZT86IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hci9tYXgtdW5pb24tc2l6ZVxuICB8ICdQZW5kaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmluZydcbiAgICB8ICdQcm92aXNpb25lZCdcbiAgICB8ICdEZWxldGluZydcbiAgICB8ICdGYWlsZWQnXG4gICAgfCAnUnVubmluZydcbiAgICB8ICdJbnN0YWxsaW5nJyAvLyB0ZHNxbFxuICAgIHwgJ1VwZ3JhZGluZyc7XG4gIHByb2R1Y3RFbnRyeXBvaW50Pzogc3RyaW5nO1xuICBkZWxldGFibGU/OiBib29sZWFuO1xuICBjb25kaXRpb25zPzogUHJvZHVjdFN0YXR1c0NvbmRpdGlvbltdO1xuICBwcm9tZXRoZXVzQWRkcmVzcz86IHN0cmluZztcbiAgZWxhc3RpY1NlYXJjaEFkZHJlc3M/OiBzdHJpbmc7XG4gIGthZmthQWRkcmVzcz86IHN0cmluZztcbiAgY29udGFpbmVyUGxhdGZvcm0/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBkZXZvcHM/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBzZXJ2aWNlTWVzaD86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRhdGFTZXJ2aWNlcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGJhc2U/OiBBbGF1ZGFQcm9kdWN0U3RhdHVzO1xuICBwcm9ncmVzcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFByb2R1Y3RLZXkgPSB7XG4gIEJBU0U6ICdiYXNlJyxcbiAgQ09OVEFJTkVSX1BMQVRGT1JNOiAnY29udGFpbmVyUGxhdGZvcm0nLFxuICBERVZPUFM6ICdkZXZvcHMnLFxuICBTRVJWSUNFX01FU0g6ICdzZXJ2aWNlTWVzaCcsXG4gIERBVEFfU0VSVklDRVM6ICdkYXRhU2VydmljZXMnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJvZHVjdEtleSA9IFZhbHVlT2Y8dHlwZW9mIFByb2R1Y3RLZXk+O1xuXG50eXBlIEdlblByb2R1Y3Q8VCBleHRlbmRzIFByb2R1Y3RLZXk+ID0gUmVjb3JkPFQsIHsgaW5zdGFsbDogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBUbHMge1xuICBjZXJ0OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RCYXNlU3BlYyBleHRlbmRzIEdlblByb2R1Y3Q8UHJvZHVjdEtleT4ge1xuICBhbHRlcm5hdGl2ZVVSTHM6IHN0cmluZ1tdO1xuICBjaGFydE11c2V1bToge1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xuICBwYWNrYWdlRWRpdGlvbjogc3RyaW5nO1xuICB2YWx1ZXNPdmVycmlkZT86IHtcbiAgICBkZXg6IFN0cmluZ01hcDtcbiAgfTtcbiAgY2hhcnRWZXJzaW9uczogW3sgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfV07XG4gIGRlZmF1bHRBZG1pbjoge1xuICAgIGFjY291bnQ6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG4gIGRlZmF1bHRSZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgZGVwbG95VHlwZTogc3RyaW5nO1xuICBlbGFzdGljc2VhcmNoOiB7XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgaHR0cDoge1xuICAgIGZvcmNlUmVkaXJlY3RIdHRwcz86IGJvb2xlYW47XG4gICAgaHR0cFBvcnQ/OiBudW1iZXI7XG4gICAgaHR0cHNQb3J0PzogbnVtYmVyO1xuICAgIHRscz86IFRscztcbiAgfTtcbiAgaW5ncmVzczoge1xuICAgIGNvbnRyb2xsZXI6IHsgaW5zdGFsbDogYm9vbGVhbjsgbm9kZXM6IHN0cmluZ1tdIH07XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGluZ3Jlc3NDbGFzc05hbWU6IHN0cmluZztcbiAgfTtcbiAga2Fma2E6IHtcbiAgICBhdXRoOiBib29sZWFuO1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgbm9kZXM6IHN0cmluZ1tdO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGxvZ0FnZW50OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICB9O1xuICBsb2dDZW50ZXI6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIHBsYXRmb3JtVVJMOiBzdHJpbmc7XG4gIHByb21ldGhldXM6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIHJlcGxpY2FzOiBudW1iZXI7XG4gICAgc3RvcmFnZTogeyBjYXBhY2l0eTogbnVtYmVyOyBub2Rlczogc3RyaW5nW107IHBhdGg6IHN0cmluZzsgdHlwZTogc3RyaW5nIH07XG4gIH07XG5cbiAgcmVnaXN0cnk6IHtcbiAgICBleHRlcm5hbD86IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgcmVwbGljYXM6IG51bWJlcjtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjbG91ZDoge1xuICAgIGNvbm5lY3Q6IGJvb2xlYW47XG4gICAgY29ubmVjdFR5cGU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0U3BlYyB7XG4gIGNsdXN0ZXJzOiBQcm9qZWN0Q2x1c3RlcltdO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IHN0cmluZztcbiAgfTtcbiAgY2x1c3RlckRlbGV0ZVBvbGljeT86ICdEZWxldGUnIHwgJ1JldGFpbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdENsdXN0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHF1b3RhOiBzdHJpbmc7IC8vIFwie1xcXCJjcHVcXFwiOi0xLFxcXCJtZW1vcnlcXFwiOi0xLFxcXCJwb2RzXFxcIjotMSxcXFwicHZjX251bVxcXCI6LTEsXFxcInN0b3JhZ2VcXFwiOi0xfVwiXG4gIHR5cGU/OiAnJyB8ICdGZWRNZW1iZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm9qZWN0U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1lc2hHcm91cCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IHtcbiAgICBrOHNWZXJzaW9uOiBzdHJpbmc7XG4gICAgd2l0aG91dElzdGlvPzogYm9vbGVhbjtcbiAgICBpc3Rpb1ZlcnNpb246IHN0cmluZztcbiAgICBwcmltYXJ5OiBzdHJpbmc7XG4gICAgc2VsZWN0b3I6IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9O1xuICAgIGNsdXN0ZXJzOiBzdHJpbmdbXTtcbiAgICBtZXNoQ29tbW9uQ29uZmlnPzogTWVzaENvbW1vbkNvbmZpZztcbiAgICBjbHVzdGVyQ29uZmlncz86IHtcbiAgICAgIFtjbHVzdGVyTmFtZTogc3RyaW5nXTogQ2x1c3RlckNvbmZpZztcbiAgICB9O1xuICB9O1xuICBzdGF0dXM6IHtcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICBNZXNzYWdlOiBzdHJpbmc7XG4gICAgY2x1c3RlckNvdW50OiBudW1iZXI7XG4gICAgbGF0ZXN0VXBkYXRlVGltZTogc3RyaW5nO1xuICAgIE5vblJlYWR5Q2x1c3RlckNvdW50OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzaENvbW1vbkNvbmZpZyB7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIG1vbml0b3JUeXBlOiBzdHJpbmc7XG4gIHByb21ldGhldXNCYXNpY0F1dGg6IHtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGlzRGVmYXVsdE1vbml0b3I6IGJvb2xlYW47XG4gIHByb21ldGhldXNVUkw6IHN0cmluZztcbiAgdHJhY2VTYW1wbGluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDb25maWcge1xuICBpc3Rpb1NpZGVjYXI6IHtcbiAgICBjcHVWYWx1ZTogc3RyaW5nO1xuICAgIG1lbW9yeVZhbHVlOiBzdHJpbmc7XG4gIH07XG4gIGthZmthPzoge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHJlZGlzPzogUmVkaXNDb25maWc7XG4gIHRyYWNlU2FtcGxpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRpc0NvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGtpbmQ6ICdzaW5nbGUnIHwgJ2NsdXN0ZXInIHwgJ3NlbnRpbmVsJztcbiAgYWRkcmVzczogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBtYXN0ZXJOYW1lPzogc3RyaW5nO1xufVxuXG4vLyBUS0VcbmV4cG9ydCBpbnRlcmZhY2UgVEtFQ2x1c3RlclNwZWMge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgZG9ja2VyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBrdWJlbGV0RXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBjb250cm9sbGVyTWFuYWdlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgc2NoZWR1bGVyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBwdWJsaWNBbHRlcm5hdGl2ZU5hbWVzPzogc3RyaW5nW107XG4gIGNsdXN0ZXJDSURSPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIG1heENsdXN0ZXJTZXJ2aWNlTnVtPzogbnVtYmVyO1xuICAgIG1heE5vZGVQb2ROdW0/OiBudW1iZXI7XG4gICAgb3ZlcnNvbGRSYXRpbz86IHtcbiAgICAgIGNwdTogc3RyaW5nO1xuICAgICAgbWVtb3J5OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZmVhdHVyZXM/OiB7XG4gICAgZW5hYmxlTWFzdGVyU2NoZWR1bGU/OiBib29sZWFuO1xuICAgIGlwdjZEdWFsU3RhY2s/OiBib29sZWFuO1xuICAgIGdwdVR5cGU/OiAnUGh5c2ljYWwnIHwgJ1ZpcnR1YWwnO1xuICAgIGZpbGVzPzogQXJyYXk8e1xuICAgICAgc3JjPzogc3RyaW5nO1xuICAgICAgZHN0Pzogc3RyaW5nO1xuICAgIH0+O1xuICAgIGhhPzoge1xuICAgICAgdGhpcmRQYXJ0eT86IHtcbiAgICAgICAgdmlwPzogc3RyaW5nO1xuICAgICAgICB2cG9ydD86IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB0a2U/OiB7XG4gICAgICAgIHZyaWQ/OiB1bmtub3duO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICB0eXBlOiAnQmFyZW1ldGFsJyB8ICdJbXBvcnRlZCc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIG1hY2hpbmVzPzogVEtFTWFjaGluZVNwZWNbXTtcbiAgZG5zRG9tYWluPzogc3RyaW5nO1xuICBhcGlTZXJ2ZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGNsdXN0ZXJDcmVkZW50aWFsUmVmPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFRLRUNsdXN0ZXJTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBwaGFzZT86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogQ29uZGl0aW9uW107XG4gICAgYWRkcmVzc2VzPzogQXJyYXk8e1xuICAgICAgaG9zdDogc3RyaW5nO1xuICAgICAgcGF0aD86ICcnO1xuICAgICAgdHlwZTogJ0FkdmVydGlzZScgfCAnUHVibGljJztcbiAgICAgIHBvcnQ6IG51bWJlcjtcbiAgICB9PjtcbiAgICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgICBub2RlQ0lEUk1hc2tTaXplPzogbnVtYmVyO1xuICAgIGRuc0lQPzogc3RyaW5nO1xuICB9O1xuICBnYXRld2F5Tm9kZT86IE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEtFTWFjaGluZVNwZWMge1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgcm9sZT86ICdub2RlJyB8ICdtYXN0ZXInO1xuICBpcD86IHN0cmluZztcbiAgaXB2Nj86IHN0cmluZztcbiAgcHVibGljSVA/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwcml2YXRlS2V5Pzogc3RyaW5nO1xuICBwYXNzUGhyYXNlPzogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBsYWJlbHM/OiB7XG4gICAgWydudmlkaWEtZGV2aWNlLWVuYWJsZSddPzogc3RyaW5nO1xuICAgIFsnbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vY3BhYXMtc3lzdGVtJ10/OiBzdHJpbmc7XG4gIH07XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHByb3h5Pzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICB9O1xuICBhbm5vdGF0aW9ucz86IFN0cmluZ01hcDtcbiAgdGFpbnRzPzogTm9kZVRhaW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxlRGlzcGxheSB7XG4gIHpoOiBzdHJpbmc7XG4gIGVuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEVudHJ5U3BlYyB7XG4gIGxvZ28/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogTG9jYWxlRGlzcGxheTtcbiAgZGVzY3JpcHRpb24/OiBMb2NhbGVEaXNwbGF5O1xuICBjYXRhbG9nPzogTG9jYWxlRGlzcGxheTtcbiAgZW50cnlwb2ludD86IHN0cmluZztcbiAgc3NvRW5hYmxlZD86IGJvb2xlYW47XG4gIHBhY2tUeXBlPzogJ0ludGVncmF0ZWQnIHwgJ0J1aWxkSW4nIHwgJ0FkbWluUGFnZSc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEVudHJ5U3RhdHVzIHtcbiAgaGlkZGVuT25Qb3J0YWw/OiBib29sZWFuO1xuICBoaWRkZW5Pbk1lbnU/OiBib29sZWFuO1xuICBvcmRlck9uUG9ydGFsPzogbnVtYmVyO1xuICBvcmRlck9uTWVudT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnkgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogUHJvZHVjdEVudHJ5U3BlYztcbiAgc3RhdHVzPzogUHJvZHVjdEVudHJ5U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RTdGF0dXMge1xuICB0eXBlOiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXIvbWF4LXVuaW9uLXNpemVcbiAgfCAnTm90RGVwbG95ZWQnXG4gICAgfCAnSW5EZXBsb3ltZW50J1xuICAgIHwgJ1J1bm5pbmcnXG4gICAgfCAnRGVwbG95bWVudEZhaWx1cmUnXG4gICAgfCAnUnVubmluZ0Fibm9ybWFsJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0RlbGV0ZUZhaWx1cmUnXG4gICAgfCAnRGVwbG95bWVudFN1Y2NlZWQnXG4gICAgfCAnU3lzdGVtRXJyb3InXG4gICAgfCAnVXBncmFkaW5nJztcbiAgaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERvY3NFbnRyeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IHtcbiAgICBncm91cHM6IEFycmF5PHtcbiAgICAgIGdyb3VwTmFtZTogTG9jYWxlRGlzcGxheTtcbiAgICAgIGRvY3M6IEFycmF5PHtcbiAgICAgICAgbG9nbzogc3RyaW5nO1xuICAgICAgICBkb2NFbnRyeXBvaW50OiBzdHJpbmc7XG4gICAgICAgIGRpc3BsYXlOYW1lOiBMb2NhbGVEaXNwbGF5O1xuICAgICAgICBkZXNjcmlwdGlvbjogTG9jYWxlRGlzcGxheTtcbiAgICAgIH0+O1xuICAgIH0+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q29uZGl0aW9uIHtcbiAgbGFzdFByb2JlVGltZT86IHN0cmluZztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlYXNvbjogc3RyaW5nOyAvLyBQZXJtaXNzaW9uQ2hlY2tGYWlsZWRcbiAgc3RhdHVzOiAnVHJ1ZScgfCAnRmFsc2UnO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGxpbmsgaHR0cHM6Ly9naXRsYWItY2UuYWxhdWRhLmNuL2NvbnRhaW5lci1wbGF0Zm9ybS9jYXB0YWluLy0vYmxvYi9tYXN0ZXIvZG9jcy9jcmQubWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBIZWxtUmVxdWVzdFNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICBwaGFzZTogSGVsbVJlcXVlc3RQaGFzZUVudW07XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAgbGFzdFNwZWNIYXNoPzogc3RyaW5nO1xuICAgIHJlYXNvbj86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogSGVsbVJlcXVlc3RDb25kaXRpb25bXTtcbiAgICB0YXJnZXRDbHVzdGVyU3luY1Jlc3VsdHM/OiBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0cztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0cyB7XG4gIFtjbHVzdGVyOiBzdHJpbmddOiBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0O1xufVxuXG5leHBvcnQgZW51bSBDbG91ZEhlbG1SZXF1ZXN0U3RhdGVFbnVtIHtcbiAgUGVuZGluZyA9ICdQZW5kaW5nJyxcbiAgUnVubmluZyA9ICdSdW5uaW5nJyxcbiAgU3RvcHBlZCA9ICdTdG9wcGVkJyxcbiAgRmFpbGVkID0gJ0ZhaWxlZCcsXG4gIEVtcHR5ID0gJ0VtcHR5Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENsdXN0ZXJTeW5jUmVzdWx0IHtcbiAgYXBwU3RhdHVzOiBDbG91ZEhlbG1SZXF1ZXN0U3RhdGVFbnVtO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBsYXN0VXBkYXRlQXQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwaGFzZTogSGVsbVJlcXVlc3RQaGFzZUVudW07XG4gIHJlYXNvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBIZWxtUmVxdWVzdFBoYXNlRW51bSB7XG4gIFN5bmNlZCA9ICdTeW5jZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgUGVuZGluZyA9ICdQZW5kaW5nJyxcbiAgVW5pbnN0YWxsaW5nID0gJ1VuaW5zdGFsbGluZycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RTcGVjIHtcbiAgY2hhcnQ6IHN0cmluZztcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdmFsdWVzRnJvbT86IEFycmF5PHtcbiAgICBjb25maWdNYXBLZXlSZWY/OiBDb25maWdNYXBLZXlSZWY7XG4gICAgc2VjcmV0S2V5UmVmPzogU2VjcmV0S2V5UmVmO1xuICB9PjtcbiAgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgcmVsZWFzZU5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHByb2plY3ROYW1lPzogc3RyaW5nO1xuICBzb3VyY2U/OiB7XG4gICAgb2NpPzogSGVsbVJlcXVlc3RPY2k7XG4gICAgaHR0cD86IEhlbG1SZXF1ZXN0SHR0cDtcbiAgfTtcbiAgdGFyZ2V0Q2x1c3RlcnM/OiB7XG4gICAgY2x1c3Rlck5hbWVzOiB7XG4gICAgICBuYW1lczogc3RyaW5nW107XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdE9jaSB7XG4gIHJlcG86IHN0cmluZztcbiAgc2VjcmV0UmVmOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0SHR0cCB7XG4gIHVybDogc3RyaW5nO1xuICBzZWNyZXRSZWY6IHN0cmluZztcbn1cblxuLyoqXG4gKiBodHRwczovL2NvbmZsdWVuY2UuYWxhdWRhLmNuL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9MTc2ODgzNDcwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJpbmRpbmcgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVXNlckJpbmRpbmdTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJCaW5kaW5nU3BlYyB7XG4gIHN1YmplY3RzOiBBcnJheTx7XG4gICAga2luZDogJ1VzZXInIHwgJ0dyb3VwJyB8ICdTZXJ2aWNlQWNjb3VudCc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9PjtcbiAgcm9sZVJlZjogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nOyAvLyDmlK/mjIHnsbvlnotwbGF0Zm9ybSwgY2x1c3RlciwgcHJvamVjdCwgbmFtZXNwYWNlXG4gIGNvbnN0cmFpbnQ6IEFycmF5PHtcbiAgICBwcm9qZWN0Pzogc3RyaW5nO1xuICAgIGNsdXN0ZXI/OiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICB9Pjtcbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SEEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUE4Q0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUErYlgsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlT2YgfSBmcm9tICd0cy1lc3NlbnRpYWxzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5cbmltcG9ydCB7IENvbmRpdGlvbiwgS3ViZXJuZXRlc1Jlc291cmNlLCBPYmplY3RNZXRhIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7XG4gIENvbmZpZ01hcEtleVJlZixcbiAgTm9kZSxcbiAgTm9kZVN0YXR1cyxcbiAgTm9kZVRhaW50LFxuICBTZWNyZXRLZXlSZWYsXG59IGZyb20gJy4vcmF3JztcblxuLyoqXG4gKiDlj6rkv53nlZljb21tb27kuK3pnIDopoHnlKjliLDnmoRjcmQg5omp5bGV57G7XG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvQ29uZGl0aW9uIHtcbiAgc3RhdHVzPzogJ1N1Y2Nlc3MnIHwgJ0ZhaWxlZCcgfCAnUHJvY2Vzc2luZycgfCAnUGVuZGluZyc7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBsYXN0SGVhcnRiZWF0VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvQXZhaWxhYmxlVmVyc2lvbiB7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbkVuPzogc3RyaW5nO1xuICByaXNrTGV2ZWw/OiAnTG93JyB8ICdNaWRkbGUnIHwgJ0hpZ2gnO1xuICBkZXBlbmRlbmNpZXM/OiBBcnJheTx7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb25zTWF0Y2g6IHN0cmluZ1tdO1xuICB9PjtcbiAgdXBncmFkZUJlZm9yZT86IEFycmF5PHtcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUluZm8gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzoge1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludD86IHN0cmluZztcbiAgICBzZWxlY3RlZENsdXN0ZXI/OiBBcnJheTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PjsgLy8ge3BsdWdpbi1uYW1lOiBjbHVzdGVyLW5hbWV9W11cbiAgICB2YWx1ZXNPdmVycmlkZTogU3RyaW5nTWFwO1xuICAgIGNvbmZpZz86IGFueTtcbiAgfTtcbiAgc3RhdHVzPzoge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBwaGFzZTogJ1Byb2Nlc3NpbmcnIHwgJ1J1bm5pbmcnIHwgJ0ZhaWxlZCcgfCAnQmxvY2tlZCc7XG4gICAgcmVtb3ZlSXNQcmV2ZW50ZWQ/OiBib29sZWFuO1xuICAgIGJsb2NrUmVhc29ucz86IHN0cmluZ1tdO1xuICAgIGNvbmRpdGlvbnM/OiBNb2R1bGVJbmZvQ29uZGl0aW9uW107XG4gICAgYXZhaWxhYmxlVmVyc2lvbnM6IE1vZHVsZUluZm9BdmFpbGFibGVWZXJzaW9uW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclNwZWMge1xuICBhdXRoSW5mbz86IHtcbiAgICBjb250cm9sbGVyOiB7XG4gICAgICBraW5kOiBzdHJpbmc7XG4gICAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBrdWJlcm5ldGVzQXBpRW5kcG9pbnRzPzoge1xuICAgIGNhQnVuZGxlPzogc3RyaW5nO1xuICAgIHNlcnZlckVuZHBvaW50czogQXJyYXk8e1xuICAgICAgY2xpZW50Q0lEUjogc3RyaW5nO1xuICAgICAgc2VydmVyQWRkcmVzczogc3RyaW5nO1xuICAgIH0+O1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBDbHVzdGVyU3RhdHVzUmVhc29uID1cbiAgfCAnVGltZW91dCdcbiAgfCAnRm9yYmlkZGVuJ1xuICB8ICdVbmF1dGhvcml6ZWQnXG4gIHwgJ1NvbWVDb21wb25lbnRzVW5oZWFsdGh5J1xuICB8ICdTb21lTm9kZXNOb3RSZWFkeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclN0YXR1c0NvbmRpdGlvbiBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGxhc3RUcmFuc2l0aW9uVGltZTogc3RyaW5nO1xuICB0eXBlOlxuICAgIHwgJ05vdFJlYWNoYWJsZSdcbiAgICB8ICdOb3RBY2Nlc3NpYmxlJ1xuICAgIHwgJ0NvbXBvbmVudE5vdEhlYWx0aHknXG4gICAgfCAnTm9kZU5vdFJlYWR5JztcbiAgc3RhdHVzOiAnVHJ1ZScgfCAnRmFsc2UnO1xuICByZWFzb246IENsdXN0ZXJTdGF0dXNSZWFzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclN0YXR1cyB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY29uZGl0aW9uczogQ2x1c3RlclN0YXR1c0NvbmRpdGlvbltdO1xufVxuXG4vLyBjbHVzdGVycy5jbHVzdGVycmVnaXN0cnkuazhzLmlvIOeahOexu+Wei+WumuS5iVxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgbWV0YWRhdGE/OiBPYmplY3RNZXRhICYge1xuICAgIGZpbmFsaXplcnM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgc3BlYz86IENsdXN0ZXJTcGVjO1xuICBzdGF0dXM/OiBDbHVzdGVyU3RhdHVzO1xuICBkZXRhaWxzPzoge1xuICAgIGdyb3VwOiBzdHJpbmc7XG4gICAga2luZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1aWQ6IHN0cmluZztcbiAgfTtcbn1cblxuLy8gQWxhdWRhIFByb2R1Y3RcbmV4cG9ydCBpbnRlcmZhY2UgQWxhdWRhUHJvZHVjdFN0YXR1cyBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGRlcGxveVN0YXR1cz86IEFsYXVkYURlcGxveVN0YXR1cztcbiAgcnVubmluZ1N0YXR1cz86IEFsYXVkYVJ1bm5pbmdTdGF0dXM7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGVwbG95VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQWxhdWRhUnVubmluZ1N0YXR1cyB7XG4gIE5PVF9SVU5OSU5HID0gJ05vdFJ1bm5pbmcnLFxuICBIRUFMVEhZID0gJ0hlYWx0aHknLFxuICBBQk5PUk1BTCA9ICdBYm5vcm1hbCcsXG59XG5cbmV4cG9ydCBlbnVtIEFsYXVkYURlcGxveVN0YXR1cyB7XG4gIE5PVF9ERVBMT1lFRCA9ICdOb3REZXBsb3llZCcsXG4gIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG4gIEFCTk9STUFMID0gJ0Fibm9ybWFsJyxcbiAgREVQTE9ZSU5HID0gJ0RlcGxveWluZycsXG4gIERFUExPWV9GQUlMRUQgPSAnRGVwbG95RmFpbGVkJyxcbiAgVVBHUkFESU5HID0gJ1VwZ3JhZGluZycsXG4gIFVQR1JBREVfRkFJTEVEID0gJ1VwZ3JhZGVGYWlsZWQnLFxuICBDT01QTEVURUQgPSAnQ29tcGxldGVkJyxcbiAgUEVORElORyA9ICdQZW5kaW5nJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2UgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm9kdWN0QmFzZVNwZWM7XG4gIHN0YXR1cz86IFByb2R1Y3RCYXNlU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RTdGF0dXNDb25kaXRpb24ge1xuICBzdGF0dXM/OiAnVHJ1ZScgfCAnRmFsc2UnIHwgJ1Vua25vd24nO1xuICByZWFzb24/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIHR5cGU6ICdSZWFkeScgfCAnSW5pdGlhbGl6ZWQnIHwgJ1JlY2xhaW1lZCcgfCAnU3VjY2VlZCc7XG4gIGxhc3RUcmFuc2l0aW9uVGltZT86IHN0cmluZztcbiAgbGFzdEhlYXJ0YmVhdFRpbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2VTdGF0dXMge1xuICBnbG9iYWxJRDogc3RyaW5nO1xuICBjbG91ZDoge1xuICAgIHBoYXNlOiAnT05MaW5lJyB8ICdDb25uZWN0RmFpbGVkJyB8ICdDb25uZWN0aW5nJyB8ICdPRkZMaW5lJztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgY29ubmVjdFVSTDogc3RyaW5nO1xuICB9O1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBoYXNlPzogLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyL21heC11bmlvbi1zaXplXG4gIHwgJ1BlbmRpbmcnXG4gICAgfCAnUHJvdmlzaW9uaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmVkJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0ZhaWxlZCdcbiAgICB8ICdSdW5uaW5nJ1xuICAgIHwgJ0luc3RhbGxpbmcnIC8vIHRkc3FsXG4gICAgfCAnVXBncmFkaW5nJztcbiAgcHJvZHVjdEVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gIGRlbGV0YWJsZT86IGJvb2xlYW47XG4gIGNvbmRpdGlvbnM/OiBQcm9kdWN0U3RhdHVzQ29uZGl0aW9uW107XG4gIHByb21ldGhldXNBZGRyZXNzPzogc3RyaW5nO1xuICBlbGFzdGljU2VhcmNoQWRkcmVzcz86IHN0cmluZztcbiAga2Fma2FBZGRyZXNzPzogc3RyaW5nO1xuICBjb250YWluZXJQbGF0Zm9ybT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRldm9wcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHNlcnZpY2VNZXNoPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgZGF0YVNlcnZpY2VzPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgYmFzZT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgUHJvZHVjdEtleSA9IHtcbiAgQkFTRTogJ2Jhc2UnLFxuICBDT05UQUlORVJfUExBVEZPUk06ICdjb250YWluZXJQbGF0Zm9ybScsXG4gIERFVk9QUzogJ2Rldm9wcycsXG4gIFNFUlZJQ0VfTUVTSDogJ3NlcnZpY2VNZXNoJyxcbiAgREFUQV9TRVJWSUNFUzogJ2RhdGFTZXJ2aWNlcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0S2V5ID0gVmFsdWVPZjx0eXBlb2YgUHJvZHVjdEtleT47XG5cbnR5cGUgR2VuUHJvZHVjdDxUIGV4dGVuZHMgUHJvZHVjdEtleT4gPSBSZWNvcmQ8VCwgeyBpbnN0YWxsOiBib29sZWFuIH0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRscyB7XG4gIGNlcnQ6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2VTcGVjIGV4dGVuZHMgR2VuUHJvZHVjdDxQcm9kdWN0S2V5PiB7XG4gIGFsdGVybmF0aXZlVVJMczogc3RyaW5nW107XG4gIGNoYXJ0TXVzZXVtOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG4gIHBhY2thZ2VFZGl0aW9uOiBzdHJpbmc7XG4gIHZhbHVlc092ZXJyaWRlPzoge1xuICAgIGRleDogU3RyaW5nTWFwO1xuICB9O1xuICBjaGFydFZlcnNpb25zOiBbeyBuYW1lOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZyB9XTtcbiAgZGVmYXVsdEFkbWluOiB7XG4gICAgYWNjb3VudDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbiAgZGVmYXVsdFJlZGlyZWN0UGF0aDogc3RyaW5nO1xuICBkZXBsb3lUeXBlOiBzdHJpbmc7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIG5vZGVzOiBzdHJpbmdbXTtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICBodHRwOiB7XG4gICAgZm9yY2VSZWRpcmVjdEh0dHBzPzogYm9vbGVhbjtcbiAgICBodHRwUG9ydD86IG51bWJlcjtcbiAgICBodHRwc1BvcnQ/OiBudW1iZXI7XG4gICAgdGxzPzogVGxzO1xuICB9O1xuICBpbmdyZXNzOiB7XG4gICAgY29udHJvbGxlcjogeyBpbnN0YWxsOiBib29sZWFuOyBub2Rlczogc3RyaW5nW10gfTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgaW5ncmVzc0NsYXNzTmFtZTogc3RyaW5nO1xuICB9O1xuICBrYWZrYToge1xuICAgIGF1dGg6IGJvb2xlYW47XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgbG9nQWdlbnQ6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIGxvZ0NlbnRlcjoge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgfTtcbiAgcGxhdGZvcm1VUkw6IHN0cmluZztcbiAgcHJvbWV0aGV1czoge1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgcmVwbGljYXM6IG51bWJlcjtcbiAgICBzdG9yYWdlOiB7IGNhcGFjaXR5OiBudW1iZXI7IG5vZGVzOiBzdHJpbmdbXTsgcGF0aDogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfTtcbiAgfTtcblxuICByZWdpc3RyeToge1xuICAgIGV4dGVybmFsPzogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICByZXBsaWNhczogbnVtYmVyO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNsb3VkOiB7XG4gICAgY29ubmVjdDogYm9vbGVhbjtcbiAgICBjb25uZWN0VHlwZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RTcGVjIHtcbiAgY2x1c3RlcnM6IFByb2plY3RDbHVzdGVyW107XG4gIHN0YXR1cz86IHtcbiAgICBwaGFzZTogc3RyaW5nO1xuICB9O1xuICBjbHVzdGVyRGVsZXRlUG9saWN5PzogJ0RlbGV0ZScgfCAnUmV0YWluJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0Q2x1c3RlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgcXVvdGE6IHN0cmluZzsgLy8gXCJ7XFxcImNwdVxcXCI6LTEsXFxcIm1lbW9yeVxcXCI6LTEsXFxcInBvZHNcXFwiOi0xLFxcXCJwdmNfbnVtXFxcIjotMSxcXFwic3RvcmFnZVxcXCI6LTF9XCJcbiAgdHlwZT86ICcnIHwgJ0ZlZE1lbWJlcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb2plY3RTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlTWVzaEdyb3VwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzoge1xuICAgIGs4c1ZlcnNpb246IHN0cmluZztcbiAgICB3aXRob3V0SXN0aW8/OiBib29sZWFuO1xuICAgIGlzdGlvVmVyc2lvbjogc3RyaW5nO1xuICAgIHByaW1hcnk6IHN0cmluZztcbiAgICBzZWxlY3Rvcjoge1xuICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgIH07XG4gICAgY2x1c3RlcnM6IHN0cmluZ1tdO1xuICAgIG1lc2hDb21tb25Db25maWc/OiBNZXNoQ29tbW9uQ29uZmlnO1xuICAgIGNsdXN0ZXJDb25maWdzPzoge1xuICAgICAgW2NsdXN0ZXJOYW1lOiBzdHJpbmddOiBDbHVzdGVyQ29uZmlnO1xuICAgIH07XG4gIH07XG4gIHN0YXR1czoge1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIE1lc3NhZ2U6IHN0cmluZztcbiAgICBjbHVzdGVyQ291bnQ6IG51bWJlcjtcbiAgICBsYXRlc3RVcGRhdGVUaW1lOiBzdHJpbmc7XG4gICAgTm9uUmVhZHlDbHVzdGVyQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNoQ29tbW9uQ29uZmlnIHtcbiAgZWxhc3RpY3NlYXJjaDoge1xuICAgIGlzRGVmYXVsdDogYm9vbGVhbjtcbiAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICB1c2VybmFtZT86IHN0cmluZztcbiAgfTtcbiAgbW9uaXRvclR5cGU6IHN0cmluZztcbiAgcHJvbWV0aGV1c0Jhc2ljQXV0aDoge1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgaXNEZWZhdWx0TW9uaXRvcjogYm9vbGVhbjtcbiAgcHJvbWV0aGV1c1VSTDogc3RyaW5nO1xuICB0cmFjZVNhbXBsaW5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckNvbmZpZyB7XG4gIGlzdGlvU2lkZWNhcjoge1xuICAgIGNwdVZhbHVlOiBzdHJpbmc7XG4gICAgbWVtb3J5VmFsdWU6IHN0cmluZztcbiAgfTtcbiAga2Fma2E/OiB7XG4gICAgYXV0aGVudGljYXRpb246IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgcmVkaXM/OiBSZWRpc0NvbmZpZztcbiAgdHJhY2VTYW1wbGluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlzQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAga2luZDogJ3NpbmdsZScgfCAnY2x1c3RlcicgfCAnc2VudGluZWwnO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIG1hc3Rlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8vIFRLRVxuZXhwb3J0IGludGVyZmFjZSBUS0VDbHVzdGVyU3BlYyB7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VDSURSPzogc3RyaW5nO1xuICBkb2NrZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGt1YmVsZXRFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGNvbnRyb2xsZXJNYW5hZ2VyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBzY2hlZHVsZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIHB1YmxpY0FsdGVybmF0aXZlTmFtZXM/OiBzdHJpbmdbXTtcbiAgY2x1c3RlckNJRFI/OiBzdHJpbmc7XG4gIG5ldHdvcmtEZXZpY2U/OiBzdHJpbmc7XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgbWF4Q2x1c3RlclNlcnZpY2VOdW0/OiBudW1iZXI7XG4gICAgbWF4Tm9kZVBvZE51bT86IG51bWJlcjtcbiAgICBvdmVyc29sZFJhdGlvPzoge1xuICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICBtZW1vcnk6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBmZWF0dXJlcz86IHtcbiAgICBlbmFibGVNYXN0ZXJTY2hlZHVsZT86IGJvb2xlYW47XG4gICAgaXB2NkR1YWxTdGFjaz86IGJvb2xlYW47XG4gICAgZ3B1VHlwZT86ICdQaHlzaWNhbCcgfCAnVmlydHVhbCc7XG4gICAgZmlsZXM/OiBBcnJheTx7XG4gICAgICBzcmM/OiBzdHJpbmc7XG4gICAgICBkc3Q/OiBzdHJpbmc7XG4gICAgfT47XG4gICAgaGE/OiB7XG4gICAgICB0aGlyZFBhcnR5Pzoge1xuICAgICAgICB2aXA/OiBzdHJpbmc7XG4gICAgICAgIHZwb3J0PzogbnVtYmVyO1xuICAgICAgfTtcbiAgICAgIHRrZT86IHtcbiAgICAgICAgdnJpZD86IHVua25vd247XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHR5cGU6ICdCYXJlbWV0YWwnIHwgJ0ltcG9ydGVkJztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgbWFjaGluZXM/OiBUS0VNYWNoaW5lU3BlY1tdO1xuICBkbnNEb21haW4/OiBzdHJpbmc7XG4gIGFwaVNlcnZlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgY2x1c3RlckNyZWRlbnRpYWxSZWY/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLRUNsdXN0ZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVEtFQ2x1c3RlclNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIHBoYXNlPzogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBDb25kaXRpb25bXTtcbiAgICBhZGRyZXNzZXM/OiBBcnJheTx7XG4gICAgICBob3N0OiBzdHJpbmc7XG4gICAgICBwYXRoPzogJyc7XG4gICAgICB0eXBlOiAnQWR2ZXJ0aXNlJyB8ICdQdWJsaWMnO1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgIH0+O1xuICAgIHNlcnZpY2VDSURSPzogc3RyaW5nO1xuICAgIG5vZGVDSURSTWFza1NpemU/OiBudW1iZXI7XG4gICAgZG5zSVA/OiBzdHJpbmc7XG4gIH07XG4gIGdhdGV3YXlOb2RlPzogTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VNYWNoaW5lU3BlYyB7XG4gIGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuICByb2xlPzogJ25vZGUnIHwgJ21hc3Rlcic7XG4gIGlwPzogc3RyaW5nO1xuICBpcHY2Pzogc3RyaW5nO1xuICBwdWJsaWNJUD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIG5ldHdvcmtEZXZpY2U/OiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIHBhc3NQaHJhc2U/OiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGxhYmVscz86IHtcbiAgICBbJ252aWRpYS1kZXZpY2UtZW5hYmxlJ10/OiBzdHJpbmc7XG4gICAgWydub2RlLXJvbGUua3ViZXJuZXRlcy5pby9jcGFhcy1zeXN0ZW0nXT86IHN0cmluZztcbiAgfTtcbiAgdHlwZT86IHN0cmluZztcbiAgcHJveHk/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG4gIGFubm90YXRpb25zPzogU3RyaW5nTWFwO1xuICB0YWludHM/OiBOb2RlVGFpbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyQ3JlZGVudGlhbCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gIGNhQ2VydDogc3RyaW5nO1xuICB0b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLRU1hY2hpbmUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVEtFTWFjaGluZVNwZWM7XG4gIHN0YXR1cz86IE5vZGVTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFjaGluZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBNYWNoaW5lU3BlYztcbiAgc3RhdHVzPzogTWFjaGluZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWNoaW5lU3BlYyB7XG4gIGNsdXN0ZXI6IHN0cmluZztcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgcHJvdmlkZXJTcGVjOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hY2hpbmVTdGF0dXMge1xuICB1c2VyRGF0YVNlY3JldD86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBub2RlUmVmPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIGxhc3RVcGRhdGU6IHN0cmluZztcbiAgZXJyUmVhc29uOiBzdHJpbmc7XG4gIGVyck1lc3NhZ2U6IHN0cmluZztcbiAgcGhhc2U6IHN0cmluZztcbiAgY29uZGl0aW9uczogQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclZpZXcgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogdm9pZDtcbiAgc3RhdHVzPzogQ2x1c3RlclZpZXdTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclZpZXdTdGF0dXMge1xuICBwcm92aXNpb25UeXBlOiAnU2VsZkhvc3RlZCcgfCAnUHJvdmlkZXJIb3N0ZWQnIHwgJ0ltcG9ydGVkJyB8ICdSZWdpc3RlcmVkJztcbiAgY2x1c3RlclR5cGU6IHN0cmluZztcbiAgc3VwcG9ydFdpbmRvd3M6IGJvb2xlYW47XG4gIHJlZ2lzdHJ5QWRkcmVzczogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDb25kaXRpb25bXTtcbiAgcHJvamVjdHM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBkaXNwbGF5TmFtZTogc3RyaW5nIH0+O1xuICBjb250cm9sUGxhbmVFbmRwb2ludHM6IHtcbiAgICBkZWZhdWx0OiBzdHJpbmc7XG4gICAgYWR2ZXJ0aXNlOiBzdHJpbmc7XG4gICAgcHVibGljPzogc3RyaW5nO1xuICB9O1xuICBub2Rlc0luZm86IHtcbiAgICByZWFkeU5vZGVzOiBudW1iZXI7XG4gICAgbm90UmVhZHlOb2RlczogbnVtYmVyO1xuICAgIGFyY2hpdGVjdHVyZXM6IHN0cmluZ1tdO1xuICAgIHRvdGFsQ1BVQ29yZXM6IG51bWJlcjtcbiAgICB0b3RhbE1lbW9yaWVzOiBudW1iZXI7XG4gICAgdG90YWxOdmlkaWFDb3JlczogbnVtYmVyO1xuICAgIHRvdGFsVkdQVUNvcmVzOiBudW1iZXI7XG4gICAgdG90YWxWR1BVTWVtb3J5VW5pdHM6IG51bWJlcjtcbiAgICBleHRyYVJlc291cmNlczogdW5rbm93bjtcbiAgICBjcmlWZXJzaW9uczogc3RyaW5nW107XG4gIH07XG4gIGNsdXN0ZXJOZXR3b3JrOiB7XG4gICAgaGFMb2FkQmFsYW5jZXJUeXBlPzogJ0FsaXZlJyB8ICdUaGlyZFBhcnR5JztcbiAgICBjbmlUeXBlOiBzdHJpbmc7XG4gICAgcHJvdG9jb2xTdGFjazogJ0lQdjQnIHwgJ0lQdjYnIHwgJ0R1YWwtU3RhY2snO1xuICAgIHNlcnZpY2VDSURSczogc3RyaW5nW107XG4gICAgcG9kQ0lEUnM6IHN0cmluZ1tdO1xuICAgIGV4dHJhSW5mbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICB2cmlkPzogbnVtYmVyO1xuICAgIG1heE5vZGVzPzogbnVtYmVyO1xuICB9O1xuICBtYW5hZ2VkQnk/OiB7XG4gICAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICAgIGVudHJ5cG9pbnQ6IHN0cmluZztcbiAgfTtcbiAgZ3B1UGx1Z2luVHlwZT86ICdWaXJ0dWFsJyB8ICdQaHlzaWNhbCc7XG4gIGhpZ2hBdmFpbGFibGU6IGJvb2xlYW47XG4gIG5lZWRVcGdyYWRlOiBib29sZWFuO1xuICB1cGdyYWRhYmxlOiBib29sZWFuO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBoYXNlOiBzdHJpbmc7XG4gIGV4dHJhQXJnczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG4gIHB1YmxpY0FsdGVybmF0aXZlTmFtZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTmV0d29ya1NwZWMge1xuICBkZWZhdWx0SW50ZXJmYWNlOiBzdHJpbmc7XG4gIGN1c3RvbUludGVyZmFjZXM6IEFycmF5PHtcbiAgICBpbnRlcmZhY2U6IHN0cmluZztcbiAgICBub2Rlczogc3RyaW5nW107XG4gIH0+O1xuICBleGNsdWRlTm9kZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTmV0d29yayBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb3ZpZGVyTmV0d29ya1NwZWM7XG4gIHN0YXR1cz86IHtcbiAgICByZWFkeTogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGVEaXNwbGF5IHtcbiAgemg6IHN0cmluZztcbiAgZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTcGVjIHtcbiAgbG9nbz86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBMb2NhbGVEaXNwbGF5O1xuICBkZXNjcmlwdGlvbj86IExvY2FsZURpc3BsYXk7XG4gIGNhdGFsb2c/OiBMb2NhbGVEaXNwbGF5O1xuICBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICBzc29FbmFibGVkPzogYm9vbGVhbjtcbiAgcGFja1R5cGU/OiAnSW50ZWdyYXRlZCcgfCAnQnVpbGRJbicgfCAnQWRtaW5QYWdlJztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTdGF0dXMge1xuICBoaWRkZW5PblBvcnRhbD86IGJvb2xlYW47XG4gIGhpZGRlbk9uTWVudT86IGJvb2xlYW47XG4gIG9yZGVyT25Qb3J0YWw/OiBudW1iZXI7XG4gIG9yZGVyT25NZW51PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RFbnRyeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBQcm9kdWN0RW50cnlTcGVjO1xuICBzdGF0dXM/OiBQcm9kdWN0RW50cnlTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1cyB7XG4gIHR5cGU6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hci9tYXgtdW5pb24tc2l6ZVxuICB8ICdOb3REZXBsb3llZCdcbiAgICB8ICdJbkRlcGxveW1lbnQnXG4gICAgfCAnUnVubmluZydcbiAgICB8ICdEZXBsb3ltZW50RmFpbHVyZSdcbiAgICB8ICdSdW5uaW5nQWJub3JtYWwnXG4gICAgfCAnRGVsZXRpbmcnXG4gICAgfCAnRGVsZXRlRmFpbHVyZSdcbiAgICB8ICdEZXBsb3ltZW50U3VjY2VlZCdcbiAgICB8ICdTeXN0ZW1FcnJvcidcbiAgICB8ICdVcGdyYWRpbmcnO1xuICBpY29uOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RG9jc0VudHJ5IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzoge1xuICAgIGdyb3VwczogQXJyYXk8e1xuICAgICAgZ3JvdXBOYW1lOiBMb2NhbGVEaXNwbGF5O1xuICAgICAgZG9jczogQXJyYXk8e1xuICAgICAgICBsb2dvOiBzdHJpbmc7XG4gICAgICAgIGRvY0VudHJ5cG9pbnQ6IHN0cmluZztcbiAgICAgICAgZGlzcGxheU5hbWU6IExvY2FsZURpc3BsYXk7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBMb2NhbGVEaXNwbGF5O1xuICAgICAgfT47XG4gICAgfT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDb25kaXRpb24ge1xuICBsYXN0UHJvYmVUaW1lPzogc3RyaW5nO1xuICBsYXN0VHJhbnNpdGlvblRpbWU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcmVhc29uOiBzdHJpbmc7IC8vIFBlcm1pc3Npb25DaGVja0ZhaWxlZFxuICBzdGF0dXM6ICdUcnVlJyB8ICdGYWxzZSc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAbGluayBodHRwczovL2dpdGxhYi1jZS5hbGF1ZGEuY24vY29udGFpbmVyLXBsYXRmb3JtL2NhcHRhaW4vLS9ibG9iL21hc3Rlci9kb2NzL2NyZC5tZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IEhlbG1SZXF1ZXN0U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBIZWxtUmVxdWVzdFBoYXNlRW51bTtcbiAgICBub3Rlcz86IHN0cmluZztcbiAgICBsYXN0U3BlY0hhc2g/OiBzdHJpbmc7XG4gICAgcmVhc29uPzogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBIZWxtUmVxdWVzdENvbmRpdGlvbltdO1xuICAgIHRhcmdldENsdXN0ZXJTeW5jUmVzdWx0cz86IEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHRzO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHRzIHtcbiAgW2NsdXN0ZXI6IHN0cmluZ106IEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHQ7XG59XG5cbmV4cG9ydCBlbnVtIENsb3VkSGVsbVJlcXVlc3RTdGF0ZUVudW0ge1xuICBQZW5kaW5nID0gJ1BlbmRpbmcnLFxuICBSdW5uaW5nID0gJ1J1bm5pbmcnLFxuICBTdG9wcGVkID0gJ1N0b3BwZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgRW1wdHkgPSAnRW1wdHknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHQge1xuICBhcHBTdGF0dXM6IENsb3VkSGVsbVJlcXVlc3RTdGF0ZUVudW07XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGxhc3RVcGRhdGVBdDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBoYXNlOiBIZWxtUmVxdWVzdFBoYXNlRW51bTtcbiAgcmVhc29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEhlbG1SZXF1ZXN0UGhhc2VFbnVtIHtcbiAgU3luY2VkID0gJ1N5bmNlZCcsXG4gIEZhaWxlZCA9ICdGYWlsZWQnLFxuICBQZW5kaW5nID0gJ1BlbmRpbmcnLFxuICBVbmluc3RhbGxpbmcgPSAnVW5pbnN0YWxsaW5nJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdFNwZWMge1xuICBjaGFydDogc3RyaW5nO1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB2YWx1ZXNGcm9tPzogQXJyYXk8e1xuICAgIGNvbmZpZ01hcEtleVJlZj86IENvbmZpZ01hcEtleVJlZjtcbiAgICBzZWNyZXRLZXlSZWY/OiBTZWNyZXRLZXlSZWY7XG4gIH0+O1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZWxlYXNlTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHtcbiAgICBvY2k/OiBIZWxtUmVxdWVzdE9jaTtcbiAgICBodHRwPzogSGVsbVJlcXVlc3RIdHRwO1xuICB9O1xuICB0YXJnZXRDbHVzdGVycz86IHtcbiAgICBjbHVzdGVyTmFtZXM6IHtcbiAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0T2NpIHtcbiAgcmVwbzogc3RyaW5nO1xuICBzZWNyZXRSZWY6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RIdHRwIHtcbiAgdXJsOiBzdHJpbmc7XG4gIHNlY3JldFJlZjogc3RyaW5nO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNzY4ODM0NzBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQmluZGluZyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBVc2VyQmluZGluZ1NwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJpbmRpbmdTcGVjIHtcbiAgc3ViamVjdHM6IEFycmF5PHtcbiAgICBraW5kOiAnVXNlcicgfCAnR3JvdXAnIHwgJ1NlcnZpY2VBY2NvdW50JztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH0+O1xuICByb2xlUmVmOiBzdHJpbmc7XG4gIHNjb3BlOiBzdHJpbmc7IC8vIOaUr+aMgeexu+Wei3BsYXRmb3JtLCBjbHVzdGVyLCBwcm9qZWN0LCBuYW1lc3BhY2VcbiAgY29uc3RyYWludDogQXJyYXk8e1xuICAgIHByb2plY3Q/OiBzdHJpbmc7XG4gICAgY2x1c3Rlcj86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIH0+O1xufVxuIl19
@@ -0,0 +1,61 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Host, Inject, Input, } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import { isFunction } from 'lodash-es';
5
+ import { combineLatest, distinctUntilChanged, filter, Observable, startWith, Subject, takeUntil, tap, } from 'rxjs';
6
+ import { ObservableInput } from '../../core/public-api';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ /**
10
+ *
11
+ * Usage:
12
+ * If you want to trace value with control.
13
+ * The difference between aclValueTrack and ngModelChange is that aclValueTrack carries the first value.
14
+ * So it is not for changes, but for value traces
15
+ * For compatibility and cover the deprecation of ngModelChange, we provide aclValueTrackSkipFirst option
16
+ * eg:
17
+ * <input formControlName="name" [aclValueTrack]="function()">
18
+ *
19
+ */
20
+ export class ControlValueTraceDirective {
21
+ ngOnDestroy() {
22
+ this.destroy$$.next();
23
+ this.destroy$$.complete();
24
+ }
25
+ ngOnInit() {
26
+ combineLatest([
27
+ this.ngControl.valueChanges.pipe(this.aclValueTrackSkipFirst ? tap() : startWith(this.ngControl.value)),
28
+ this.aclValueTrack$.pipe(distinctUntilChanged(), filter(i => isFunction(i))),
29
+ ])
30
+ .pipe(takeUntil(this.destroy$$))
31
+ .subscribe(([value, changeFn]) => changeFn(value));
32
+ }
33
+ constructor(ngControl) {
34
+ this.ngControl = ngControl;
35
+ this.aclValueTrackSkipFirst = false;
36
+ this.destroy$$ = new Subject();
37
+ }
38
+ static { this.ɵfac = function ControlValueTraceDirective_Factory(t) { return new (t || ControlValueTraceDirective)(i0.ɵɵdirectiveInject(NgControl, 1)); }; }
39
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ControlValueTraceDirective, selectors: [["", "aclValueTrack", ""]], inputs: { aclValueTrackSkipFirst: "aclValueTrackSkipFirst", aclValueTrack: "aclValueTrack" }, standalone: true }); }
40
+ }
41
+ __decorate([
42
+ ObservableInput(),
43
+ __metadata("design:type", Observable)
44
+ ], ControlValueTraceDirective.prototype, "aclValueTrack$", void 0);
45
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ControlValueTraceDirective, [{
46
+ type: Directive,
47
+ args: [{
48
+ selector: '[aclValueTrack]',
49
+ standalone: true,
50
+ }]
51
+ }], function () { return [{ type: i1.NgControl, decorators: [{
52
+ type: Inject,
53
+ args: [NgControl]
54
+ }, {
55
+ type: Host
56
+ }] }]; }, { aclValueTrackSkipFirst: [{
57
+ type: Input
58
+ }], aclValueTrack: [{
59
+ type: Input
60
+ }], aclValueTrack$: [] }); })();
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtdHJhY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2Zvcm0vZGlyZWN0aXZlcy92YWx1ZS10cmFjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUV4RDs7Ozs7Ozs7OztHQVVHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRO1FBQ04sYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDdEU7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEIsb0JBQW9CLEVBQUUsRUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNCO1NBQ0YsQ0FBQzthQUNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsWUFDOEMsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQTNCekQsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBS3hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBdUI3QixDQUFDOzJGQTdCTywwQkFBMEIsdUJBNEIzQixTQUFTO29FQTVCUiwwQkFBMEI7O0FBSWxCO0lBQWxCLGVBQWUsRUFBRTs4QkFBaUIsVUFBVTtrRUFBNEI7dUZBSjlELDBCQUEwQjtjQUp0QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsVUFBVSxFQUFFLElBQUk7YUFDakI7O3NCQTZCSSxNQUFNO3VCQUFDLFNBQVM7O3NCQUFHLElBQUk7d0JBM0JqQixzQkFBc0I7a0JBQTlCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBQ2EsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSG9zdCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBPYnNlcnZhYmxlLFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcblxuLyoqXG4gKlxuICogVXNhZ2U6XG4gKiBJZiB5b3Ugd2FudCB0byB0cmFjZSB2YWx1ZSB3aXRoIGNvbnRyb2wuXG4gKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFjbFZhbHVlVHJhY2sgYW5kIG5nTW9kZWxDaGFuZ2UgaXMgdGhhdCBhY2xWYWx1ZVRyYWNrIGNhcnJpZXMgdGhlIGZpcnN0IHZhbHVlLlxuICogU28gaXQgaXMgbm90IGZvciBjaGFuZ2VzLCBidXQgZm9yIHZhbHVlIHRyYWNlc1xuICogRm9yIGNvbXBhdGliaWxpdHkgYW5kIGNvdmVyIHRoZSBkZXByZWNhdGlvbiBvZiBuZ01vZGVsQ2hhbmdlLCB3ZSBwcm92aWRlIGFjbFZhbHVlVHJhY2tTa2lwRmlyc3Qgb3B0aW9uXG4gKiBlZzpcbiAqIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgW2FjbFZhbHVlVHJhY2tdPVwiZnVuY3Rpb24oKVwiPlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbFZhbHVlVHJhY2tdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udHJvbFZhbHVlVHJhY2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGFjbFZhbHVlVHJhY2tTa2lwRmlyc3QgPSBmYWxzZTtcblxuICBASW5wdXQoKSBhY2xWYWx1ZVRyYWNrOiAodmFsdWU/OiB1bmtub3duKSA9PiB2b2lkO1xuICBAT2JzZXJ2YWJsZUlucHV0KCkgYWNsVmFsdWVUcmFjayQ6IE9ic2VydmFibGU8KHZhbHVlPzogdW5rbm93bikgPT4gdm9pZD47XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRoaXMuYWNsVmFsdWVUcmFja1NraXBGaXJzdCA/IHRhcCgpIDogc3RhcnRXaXRoKHRoaXMubmdDb250cm9sLnZhbHVlKSxcbiAgICAgICksXG4gICAgICB0aGlzLmFjbFZhbHVlVHJhY2skLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcihpID0+IGlzRnVuY3Rpb24oaSkpLFxuICAgICAgKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFt2YWx1ZSwgY2hhbmdlRm5dKSA9PiBjaGFuZ2VGbih2YWx1ZSkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOZ0NvbnRyb2wpIEBIb3N0KCkgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7fVxufVxuIl19
@@ -3,5 +3,6 @@ export * from './taints-editor/component';
3
3
  export * from './upload-file/component';
4
4
  export * from './validators/public-api';
5
5
  export * from './errors-mapper/public-api';
6
+ export * from './directives/value-trace.directive';
6
7
  export { genControlDepsMap } from './utils';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9mb3JtL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFiZWxzLWVkaXRvci9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWludHMtZWRpdG9yL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VwbG9hZC1maWxlL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy1tYXBwZXIvcHVibGljLWFwaSc7XG5leHBvcnQgeyBnZW5Db250cm9sRGVwc01hcCB9IGZyb20gJy4vdXRpbHMnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9mb3JtL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMtZWRpdG9yL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhaW50cy1lZGl0b3IvY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBsb2FkLWZpbGUvY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzLW1hcHBlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy92YWx1ZS10cmFjZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgZ2VuQ29udHJvbERlcHNNYXAgfSBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ * Usage:
8
+ * If you want to trace value with control.
9
+ * The difference between aclValueTrack and ngModelChange is that aclValueTrack carries the first value.
10
+ * So it is not for changes, but for value traces
11
+ * For compatibility and cover the deprecation of ngModelChange, we provide aclValueTrackSkipFirst option
12
+ * eg:
13
+ * <input formControlName="name" [aclValueTrack]="function()">
14
+ *
15
+ */
16
+ export declare class ControlValueTraceDirective implements OnInit, OnDestroy {
17
+ private readonly ngControl;
18
+ aclValueTrackSkipFirst: boolean;
19
+ aclValueTrack: (value?: unknown) => void;
20
+ aclValueTrack$: Observable<(value?: unknown) => void>;
21
+ destroy$$: Subject<void>;
22
+ ngOnDestroy(): void;
23
+ ngOnInit(): void;
24
+ constructor(ngControl: NgControl);
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<ControlValueTraceDirective, [{ host: true; }]>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ControlValueTraceDirective, "[aclValueTrack]", never, { "aclValueTrackSkipFirst": { "alias": "aclValueTrackSkipFirst"; "required": false; }; "aclValueTrack": { "alias": "aclValueTrack"; "required": false; }; }, {}, never, never, true, never>;
27
+ }
@@ -3,4 +3,5 @@ export * from './taints-editor/component';
3
3
  export * from './upload-file/component';
4
4
  export * from './validators/public-api';
5
5
  export * from './errors-mapper/public-api';
6
+ export * from './directives/value-trace.directive';
6
7
  export { genControlDepsMap } from './utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alauda-fe/common",
3
- "version": "1.0.1-beta.0",
3
+ "version": "1.0.2",
4
4
  "description": "Alauda frontend team common codes.",
5
5
  "author": "Alauda Frontend",
6
6
  "license": "MIT",
@@ -34,6 +34,7 @@
34
34
  "marked": "^7.0.5",
35
35
  "monaco-editor": "^0.39.0",
36
36
  "ng-monaco-editor": "^5.1.0",
37
+ "ng-resource-form-util": "^6.1.0",
37
38
  "ramda": "^0.29.0",
38
39
  "rxjs": "^7.8.1",
39
40
  "ts-md5": "^1.3.1",