@lowcodeunit/applications-flow-common 1.33.220-lets-get-social-ish → 1.33.223-lets-get-social-ish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/dialogs/new-application-dialog/new-application-dialog.component.mjs +55 -59
- package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +6 -3
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +63 -65
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +65 -67
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/elements/project-info-card/project-info-card.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -11,8 +11,9 @@ import * as i3 from "@angular/material/button";
|
|
|
11
11
|
import * as i4 from "@angular/material/icon";
|
|
12
12
|
import * as i5 from "../../controls/edit-application-form/edit-application-form.component";
|
|
13
13
|
import * as i6 from "../../controls/processor-details-form/processor-details-form.component";
|
|
14
|
-
import * as i7 from "@
|
|
15
|
-
import * as i8 from "@angular/
|
|
14
|
+
import * as i7 from "@lowcodeunit/app-host-common";
|
|
15
|
+
import * as i8 from "@angular/flex-layout/flex";
|
|
16
|
+
import * as i9 from "@angular/common";
|
|
16
17
|
export class NewApplicationDialogComponent {
|
|
17
18
|
constructor(eacSvc, dialogRef, data) {
|
|
18
19
|
this.eacSvc = eacSvc;
|
|
@@ -43,24 +44,34 @@ export class NewApplicationDialogComponent {
|
|
|
43
44
|
this.NewApplicationLookup = appLookup;
|
|
44
45
|
}
|
|
45
46
|
SaveApplication() {
|
|
46
|
-
const app =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const app = {
|
|
48
|
+
Application: {
|
|
49
|
+
Name: this.ApplicationFormControls.NameFormControl.value,
|
|
50
|
+
Description: this.ApplicationFormControls.DescriptionFormControl.value,
|
|
51
|
+
PriorityShift: 0,
|
|
52
|
+
},
|
|
53
|
+
AccessRightLookups: [],
|
|
54
|
+
DataTokens: {},
|
|
55
|
+
LicenseConfigurationLookups: [],
|
|
56
|
+
LookupConfig: {
|
|
57
|
+
IsPrivate: false,
|
|
58
|
+
IsTriggerSignIn: false,
|
|
59
|
+
PathRegex: `${this.ApplicationFormControls.RouteFormControl.value}.*`,
|
|
60
|
+
QueryRegex: '',
|
|
61
|
+
HeaderRegex: '',
|
|
62
|
+
AllowedMethods: this.ProcessorDetailsFormControls.MethodsFormControl?.value
|
|
63
|
+
?.split(' ')
|
|
64
|
+
.filter((v) => !!v),
|
|
65
|
+
},
|
|
66
|
+
Processor: {
|
|
67
|
+
Type: this.ProcessorDetailsFormControls.ProcessorType,
|
|
68
|
+
},
|
|
51
69
|
};
|
|
52
|
-
app.LookupConfig.PathRegex = `${this.ApplicationFormControls.RouteFormControl.value}.*`;
|
|
53
|
-
app.LookupConfig.AllowedMethods =
|
|
54
|
-
this.ProcessorDetailsFormControls.MethodsFormControl?.value
|
|
55
|
-
?.split(' ')
|
|
56
|
-
.filter((v) => !!v);
|
|
57
|
-
app.Processor.Type = this.ProcessorDetailsFormControls.ProcessorType;
|
|
58
70
|
switch (app.Processor.Type) {
|
|
59
71
|
case 'DFS':
|
|
60
|
-
app.Processor.DefaultFile =
|
|
61
|
-
this.ProcessorDetailsFormControls.DefaultFileFormControl.value ||
|
|
62
|
-
'index.html';
|
|
63
72
|
app.Processor.BaseHref = `${this.ApplicationFormControls.RouteFormControl.value}/`.replace('//', '/');
|
|
73
|
+
app.Processor.DefaultFile =
|
|
74
|
+
this.ProcessorDetailsFormControls.DefaultFileFormControl.value || 'index.html';
|
|
64
75
|
app.LowCodeUnit = {
|
|
65
76
|
Type: this.ProcessorDetailsFormControls.LCUType,
|
|
66
77
|
};
|
|
@@ -70,75 +81,51 @@ export class NewApplicationDialogComponent {
|
|
|
70
81
|
this.SourceControls[this.ProcessorDetailsFormControls.SourceControlFormControl.value].Organization;
|
|
71
82
|
app.LowCodeUnit.Repository =
|
|
72
83
|
this.SourceControls[this.ProcessorDetailsFormControls.SourceControlFormControl.value].Repository;
|
|
73
|
-
app.LowCodeUnit.Build =
|
|
74
|
-
this.ProcessorDetailsFormControls.BuildFormControl.value;
|
|
84
|
+
app.LowCodeUnit.Build = this.ProcessorDetailsFormControls.BuildFormControl.value;
|
|
75
85
|
app.LowCodeUnit.Path =
|
|
76
|
-
this.
|
|
77
|
-
// console.log("sourceControl lookup: ", this.ProcessorDetailsFormControls.SourceControlFormControl.value);
|
|
78
|
-
app.LowCodeUnit.SourceControlLookup =
|
|
79
|
-
this.ProcessorDetailsFormControls.SourceControlFormControl.value;
|
|
86
|
+
this.ProcessorDetailsFormControls.BuildPathFormControl.value;
|
|
80
87
|
break;
|
|
81
88
|
case 'NPM':
|
|
82
|
-
app.LowCodeUnit.Package =
|
|
83
|
-
|
|
84
|
-
app.LowCodeUnit.Version =
|
|
85
|
-
this.ProcessorDetailsFormControls.VersionFormControl.value;
|
|
86
|
-
break;
|
|
87
|
-
case 'WordPress':
|
|
88
|
-
app.LowCodeUnit.APIRoot =
|
|
89
|
-
this.ProcessorDetailsFormControls.APIRootFormControl.value;
|
|
89
|
+
app.LowCodeUnit.Package = this.ProcessorDetailsFormControls.PackageFormControl.value;
|
|
90
|
+
app.LowCodeUnit.Version = this.ProcessorDetailsFormControls.VersionFormControl.value;
|
|
90
91
|
break;
|
|
91
92
|
case 'Zip':
|
|
92
|
-
app.LowCodeUnit.ZipFile =
|
|
93
|
-
this.ProcessorDetailsFormControls.ZipFileFormControl.value;
|
|
93
|
+
app.LowCodeUnit.ZipFile = this.ProcessorDetailsFormControls.ZipFileFormControl.value;
|
|
94
94
|
break;
|
|
95
95
|
}
|
|
96
96
|
break;
|
|
97
97
|
case 'OAuth':
|
|
98
|
-
app.Processor.Scopes =
|
|
99
|
-
|
|
100
|
-
app.Processor.TokenLookup =
|
|
101
|
-
this.ProcessorDetailsFormControls.TokenLookupFormControl.value;
|
|
98
|
+
app.Processor.Scopes = this.ProcessorDetailsFormControls.ScopesFormControl.value.split(' ');
|
|
99
|
+
app.Processor.TokenLookup = this.ProcessorDetailsFormControls.TokenLookupFormControl.value;
|
|
102
100
|
app.LowCodeUnit = {
|
|
103
101
|
Type: this.ProcessorDetailsFormControls.LCUType,
|
|
104
102
|
};
|
|
105
103
|
switch (app.LowCodeUnit.Type) {
|
|
106
104
|
case 'GitHubOAuth':
|
|
107
|
-
app.LowCodeUnit.ClientID =
|
|
108
|
-
|
|
109
|
-
app.LowCodeUnit.ClientSecret =
|
|
110
|
-
this.ProcessorDetailsFormControls.ClientSecretFormControl.value;
|
|
105
|
+
app.LowCodeUnit.ClientID = this.ProcessorDetailsFormControls.ClientIDFormControl.value;
|
|
106
|
+
app.LowCodeUnit.ClientSecret = this.ProcessorDetailsFormControls.ClientSecretFormControl.value;
|
|
111
107
|
break;
|
|
112
108
|
}
|
|
113
109
|
break;
|
|
114
110
|
case 'Proxy':
|
|
115
|
-
app.Processor.InboundPath =
|
|
116
|
-
this.ProcessorDetailsFormControls.InboundPathFormControl.value;
|
|
111
|
+
app.Processor.InboundPath = this.ProcessorDetailsFormControls.InboundPathFormControl.value;
|
|
117
112
|
app.LowCodeUnit = {
|
|
118
113
|
Type: this.ProcessorDetailsFormControls.LCUType,
|
|
119
114
|
};
|
|
120
115
|
switch (app.LowCodeUnit.Type) {
|
|
121
116
|
case 'API':
|
|
122
|
-
app.LowCodeUnit.APIRoot =
|
|
123
|
-
|
|
124
|
-
app.LowCodeUnit.Security =
|
|
125
|
-
this.ProcessorDetailsFormControls.SecurityFormControl.value;
|
|
117
|
+
app.LowCodeUnit.APIRoot = this.ProcessorDetailsFormControls.APIRootFormControl.value;
|
|
118
|
+
app.LowCodeUnit.Security = this.ProcessorDetailsFormControls.SecurityFormControl.value;
|
|
126
119
|
break;
|
|
127
120
|
case 'SPA':
|
|
128
|
-
app.LowCodeUnit.SPARoot =
|
|
129
|
-
this.ProcessorDetailsFormControls.SPARootFormControl.value;
|
|
121
|
+
app.LowCodeUnit.SPARoot = this.ProcessorDetailsFormControls.SPARootFormControl.value;
|
|
130
122
|
break;
|
|
131
123
|
}
|
|
132
124
|
break;
|
|
133
125
|
case 'Redirect':
|
|
134
|
-
app.Processor.
|
|
135
|
-
|
|
136
|
-
app.Processor.
|
|
137
|
-
!!this.ProcessorDetailsFormControls.PermanentFormControl.value;
|
|
138
|
-
app.Processor.PreserveMethod =
|
|
139
|
-
!!this.ProcessorDetailsFormControls.PreserveMethodFormControl.value;
|
|
140
|
-
app.Processor.Redirect =
|
|
141
|
-
this.ProcessorDetailsFormControls.RedirectFormControl.value;
|
|
126
|
+
app.Processor.Permanent = !!this.ProcessorDetailsFormControls.PermanentFormControl.value;
|
|
127
|
+
app.Processor.PreserveMethod = !!this.ProcessorDetailsFormControls.PreserveMethodFormControl.value;
|
|
128
|
+
app.Processor.Redirect = this.ProcessorDetailsFormControls.RedirectFormControl.value;
|
|
142
129
|
break;
|
|
143
130
|
}
|
|
144
131
|
if (!app.LookupConfig.PathRegex.startsWith('/')) {
|
|
@@ -149,14 +136,23 @@ export class NewApplicationDialogComponent {
|
|
|
149
136
|
Application: app,
|
|
150
137
|
ApplicationLookup: Guid.CreateRaw(),
|
|
151
138
|
};
|
|
139
|
+
// this.HasBuildFormControl.value && taken out from below if statement
|
|
140
|
+
if (this.ProcessorDetailsFormControls.ProcessorType !== 'redirect') {
|
|
141
|
+
if (app) {
|
|
142
|
+
app.LowCodeUnit.SourceControlLookup = this.ProcessorDetailsFormControls.SourceControlFormControl.value;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else if (app) {
|
|
146
|
+
app.LowCodeUnit.SourceControlLookup = null;
|
|
147
|
+
}
|
|
152
148
|
this.eacSvc.SaveApplicationAsCode(saveAppReq);
|
|
153
149
|
}
|
|
154
150
|
}
|
|
155
151
|
NewApplicationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NewApplicationDialogComponent, deps: [{ token: i1.EaCService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
-
NewApplicationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NewApplicationDialogComponent, selector: "lcu-new-application-dialog", viewQueries: [{ propertyName: "ApplicationFormControls", first: true, predicate: EditApplicationFormComponent, descendants: true }, { propertyName: "ProcessorDetailsFormControls", first: true, predicate: ProcessorDetailsFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<lcu-edit-application-form \n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n>\n</lcu-edit-application-form>\n\n<lcu-processor-details-form \n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n>\n</lcu-processor-details-form>\n\n<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls\"\n mat-raised-button \n color=\"primary\"\n class=\"new-app-submit\" \n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls.ProcessorDetailsFormGroup.valid \n || \n !ApplicationFormControls.ApplicationFormGroup.valid\n \"\n>\n Save Application\n</button>", styles: [".new-app-submit{width:100%}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.EditApplicationFormComponent, selector: "lcu-edit-application-form", inputs: ["application-lookup", "editing-application", "has-save-button", "project-lookup"], outputs: ["save-form-event"] }, { type: i6.ProcessorDetailsFormComponent, selector: "lcu-processor-details-form", inputs: ["editing-application", "editing-application-lookup", "has-save-button", "source-control-lookups", "project-lookup"], outputs: ["save-form-event"] }], directives: [{ type:
|
|
152
|
+
NewApplicationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NewApplicationDialogComponent, selector: "lcu-new-application-dialog", viewQueries: [{ propertyName: "ApplicationFormControls", first: true, predicate: EditApplicationFormComponent, descendants: true }, { propertyName: "ProcessorDetailsFormControls", first: true, predicate: ProcessorDetailsFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<lcu-edit-application-form \n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n>\n</lcu-edit-application-form>\n\n<lcu-processor-details-form \n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n>\n</lcu-processor-details-form>\n\n<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls && !State?.Loading\"\n mat-raised-button \n color=\"primary\"\n class=\"new-app-submit\" \n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls.ProcessorDetailsFormGroup.valid \n || \n !ApplicationFormControls.ApplicationFormGroup.valid\n \"\n>\n Save Application\n</button>\n<lcu-loader [loading]=\"State?.Loading\"></lcu-loader>", styles: [".new-app-submit{width:100%}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.EditApplicationFormComponent, selector: "lcu-edit-application-form", inputs: ["application-lookup", "editing-application", "has-save-button", "project-lookup"], outputs: ["save-form-event"] }, { type: i6.ProcessorDetailsFormComponent, selector: "lcu-processor-details-form", inputs: ["editing-application", "editing-application-lookup", "has-save-button", "source-control-lookups", "project-lookup"], outputs: ["save-form-event"] }, { type: i7.LoaderComponent, selector: "lcu-loader", inputs: ["diameter", "hide-inner", "loading"] }], directives: [{ type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
157
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NewApplicationDialogComponent, decorators: [{
|
|
158
154
|
type: Component,
|
|
159
|
-
args: [{ selector: 'lcu-new-application-dialog', template: "<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<lcu-edit-application-form \n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n>\n</lcu-edit-application-form>\n\n<lcu-processor-details-form \n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n>\n</lcu-processor-details-form>\n\n<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls\"\n mat-raised-button \n color=\"primary\"\n class=\"new-app-submit\" \n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls.ProcessorDetailsFormGroup.valid \n || \n !ApplicationFormControls.ApplicationFormGroup.valid\n \"\n>\n Save Application\n</button>", styles: [".new-app-submit{width:100%}\n"] }]
|
|
155
|
+
args: [{ selector: 'lcu-new-application-dialog', template: "<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<lcu-edit-application-form \n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n>\n</lcu-edit-application-form>\n\n<lcu-processor-details-form \n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n>\n</lcu-processor-details-form>\n\n<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls && !State?.Loading\"\n mat-raised-button \n color=\"primary\"\n class=\"new-app-submit\" \n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls.ProcessorDetailsFormGroup.valid \n || \n !ApplicationFormControls.ApplicationFormGroup.valid\n \"\n>\n Save Application\n</button>\n<lcu-loader [loading]=\"State?.Loading\"></lcu-loader>", styles: [".new-app-submit{width:100%}\n"] }]
|
|
160
156
|
}], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
161
157
|
type: Inject,
|
|
162
158
|
args: [MAT_DIALOG_DATA]
|
|
@@ -167,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
167
163
|
type: ViewChild,
|
|
168
164
|
args: [ProcessorDetailsFormComponent]
|
|
169
165
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEQsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7Ozs7Ozs7OztBQWV2SCxNQUFNLE9BQU8sNkJBQTZCO0lBZ0N4QyxZQUNZLE1BQWtCLEVBQ3JCLFNBQXNELEVBQzdCLElBQThCO1FBRnBELFdBQU0sR0FBTixNQUFNLENBQVk7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBNkM7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBMEI7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7SUFDNUIsQ0FBQztJQTlCRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FB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TTsyQkFBQyxlQUFlOzRDQWhDbEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLDRCQUE0QjtnQkFJaEMsNEJBQTRCO3NCQURsQyxTQUFTO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgR3VpZCB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNFbnZpcm9ubWVudEFzQ29kZSwgRWFDU291cmNlQ29udHJvbCwgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvZWRpdC1hcHBsaWNhdGlvbi1mb3JtL2VkaXQtYXBwbGljYXRpb24tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9wcm9jZXNzb3ItZGV0YWlscy1mb3JtL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UsIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXdBcHBsaWNhdGlvbkRpYWxvZ0RhdGEge1xuICBlbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuICBwcm9qZWN0TG9va3VwOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1uZXctYXBwbGljYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZChFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50KVxuICBwdWJsaWMgQXBwbGljYXRpb25Gb3JtQ29udHJvbHM6IEVkaXRBcHBsaWNhdGlvbkZvcm1Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudClcbiAgcHVibGljIFByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHM6IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBnZXQgRW52aXJvbm1lbnQoKTogRWFDRW52aXJvbm1lbnRBc0NvZGUge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50c1t0aGlzLmRhdGEuZW52aXJvbm1lbnRMb29rdXBdO1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLkVudmlyb25tZW50LlNvdXJjZXMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cblxuICBwdWJsaWMgSGFzU2F2ZUJ1dHRvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgTmV3QXBwbGljYXRpb246IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gIHB1YmxpYyBOZXdBcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSwgXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5ld0FwcGxpY2F0aW9uRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IE5ld0FwcGxpY2F0aW9uRGlhbG9nRGF0YSkgeyBcblxuICAgIHRoaXMuSGFzU2F2ZUJ1dHRvbiA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLlNldHVwQXBwbGljYXRpb24oR3VpZC5DcmVhdGVSYXcoKSk7XG4gICAgXG4gIH1cblxuICBwdWJsaWMgQ2xvc2VEaWFsb2coKXtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFNldHVwQXBwbGljYXRpb24oYXBwTG9va3VwOiBzdHJpbmcpe1xuICAgIHRoaXMuTmV3QXBwbGljYXRpb24gPSBuZXcgRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgdGhpcy5OZXdBcHBsaWNhdGlvbkxvb2t1cCA9IGFwcExvb2t1cDtcblxuICB9XG5cbiAgcHVibGljIFNhdmVBcHBsaWNhdGlvbigpOiB2b2lkIHtcblxuICAgIGNvbnN0IGFwcDogRWFDQXBwbGljYXRpb25Bc0NvZGUgPSBuZXcgRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBhcHAuQXBwbGljYXRpb24gPSB7XG4gICAgICBOYW1lOiB0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgIERlc2NyaXB0aW9uOiB0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLkRlc2NyaXB0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICBQcmlvcml0eVNoaWZ0OiAwLFxuICAgIH07XG5cbiAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0uKmA7XG4gICAgYXBwLkxvb2t1cENvbmZpZy5BbGxvd2VkTWV0aG9kcyA9XG4gICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTWV0aG9kc0Zvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgLmZpbHRlcigodjogc3RyaW5nKSA9PiAhIXYpO1xuICAgIGFwcC5Qcm9jZXNzb3IuVHlwZSA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JUeXBlO1xuXG4gICAgc3dpdGNoIChhcHAuUHJvY2Vzc29yLlR5cGUpIHtcbiAgICAgIGNhc2UgJ0RGUyc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuRGVmYXVsdEZpbGUgPVxuICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5EZWZhdWx0RmlsZUZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgICAgJ2luZGV4Lmh0bWwnO1xuXG4gICAgICAgICAgYXBwLlByb2Nlc3Nvci5CYXNlSHJlZiA9IGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0vYC5yZXBsYWNlKCcvLycsICcvJyk7XG5cbiAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICBjYXNlICdHaXRIdWInOlxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0Lk9yZ2FuaXphdGlvbiA9XG4gICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbXG4gICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICBdLk9yZ2FuaXphdGlvbjtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlJlcG9zaXRvcnkgPVxuICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW1xuICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgXS5SZXBvc2l0b3J5O1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQnVpbGQgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQnVpbGRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhdGggPVxuICAgICAgICAgICAgICB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnNbXG4gICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICBdLkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzWzBdXG4gICAgICAgICAgICAgIF0uUGF0aDtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwic291cmNlQ29udHJvbCBsb29rdXA6IFwiLCB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdOUE0nOlxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhY2thZ2UgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUGFja2FnZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuVmVyc2lvbiA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5WZXJzaW9uRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1dvcmRQcmVzcyc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQVBJUm9vdCA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5BUElSb290Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuWmlwRmlsZSA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5aaXBGaWxlRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnT0F1dGgnOlxuICAgICAgICBhcHAuUHJvY2Vzc29yLlNjb3BlcyA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNjb3Blc0Zvcm1Db250cm9sLnZhbHVlLnNwbGl0KCcgJyk7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5Ub2tlbkxvb2t1cCA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlRva2VuTG9va3VwRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICBjYXNlICdHaXRIdWJPQXV0aCc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50SUQgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQ2xpZW50SURGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkNsaWVudFNlY3JldCA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5DbGllbnRTZWNyZXRGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdQcm94eSc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5ib3VuZFBhdGggPVxuICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5JbmJvdW5kUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkFQSVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNlY3VyaXR5ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNlY3VyaXR5Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TUEFSb290ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNQQVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5jbHVkZVJlcXVlc3QgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkluY2x1ZGVSZXF1ZXN0Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5QZXJtYW5lbnQgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlBlcm1hbmVudEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuUHJlc2VydmVNZXRob2QgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5SZWRpcmVjdCA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlJlZGlyZWN0Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICghYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAvJHthcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVBcHBSZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCA9IHtcbiAgICAgIFByb2plY3RMb29rdXA6IHRoaXMuZGF0YS5wcm9qZWN0TG9va3VwLFxuICAgICAgQXBwbGljYXRpb246IGFwcCxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBHdWlkLkNyZWF0ZVJhdygpLFxuICAgIH07XG5cbiAgICB0aGlzLmVhY1N2Yy5TYXZlQXBwbGljYXRpb25Bc0NvZGUoc2F2ZUFwcFJlcSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bGN1LWVkaXQtYXBwbGljYXRpb24tZm9ybSBcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbl09XCJOZXdBcHBsaWNhdGlvblwiXG4gICAgW2hhcy1zYXZlLWJ1dHRvbl09XCJIYXNTYXZlQnV0dG9uXCJcbj5cbjwvbGN1LWVkaXQtYXBwbGljYXRpb24tZm9ybT5cblxuPGxjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtIFxuICAgIFtlZGl0aW5nLWFwcGxpY2F0aW9uXT1cIk5ld0FwcGxpY2F0aW9uXCJcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbi1sb29rdXBdPVwiTmV3QXBwbGljYXRpb25Mb29rdXBcIlxuICAgIFtoYXMtc2F2ZS1idXR0b25dPVwiSGFzU2F2ZUJ1dHRvblwiXG4gICAgW3NvdXJjZS1jb250cm9sLWxvb2t1cHNdPVwiU291cmNlQ29udHJvbExvb2t1cHNcIlxuICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuPlxuPC9sY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybT5cblxuPGJ1dHRvbiBcbiAgICAqbmdJZj1cIlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMgJiYgQXBwbGljYXRpb25Gb3JtQ29udHJvbHNcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJuZXctYXBwLXN1Ym1pdFwiIFxuICAgIChjbGljayk9XCJTYXZlQXBwbGljYXRpb24oKVwiXG4gICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAhUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnZhbGlkIFxuICAgICAgICB8fCBcbiAgICAgICAgIUFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLkFwcGxpY2F0aW9uRm9ybUdyb3VwLnZhbGlkXG4gICAgXCJcbj5cbiAgICBTYXZlIEFwcGxpY2F0aW9uXG48L2J1dHRvbj4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEQsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7Ozs7Ozs7Ozs7QUFldkgsTUFBTSxPQUFPLDZCQUE2QjtJQWdDeEMsWUFDWSxNQUFrQixFQUNyQixTQUFzRCxFQUM3QixJQUE4QjtRQUZwRCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTZDO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBRTlELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO0lBQzVCLENBQUM7SUE5QkQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENB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QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEd1aWQgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSwgRWFDRW52aXJvbm1lbnRBc0NvZGUsIEVhQ1NvdXJjZUNvbnRyb2wsIEVudGVycHJpc2VBc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRWRpdEFwcGxpY2F0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2VkaXQtYXBwbGljYXRpb24tZm9ybS9lZGl0LWFwcGxpY2F0aW9uLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcHJvY2Vzc29yLWRldGFpbHMtZm9ybS9wcm9jZXNzb3ItZGV0YWlscy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlLCBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3QXBwbGljYXRpb25EaWFsb2dEYXRhIHtcbiAgZW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcbiAgcHJvamVjdExvb2t1cDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtbmV3LWFwcGxpY2F0aW9uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgTmV3QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoRWRpdEFwcGxpY2F0aW9uRm9ybUNvbXBvbmVudClcbiAgcHVibGljIEFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzOiBFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQpXG4gIHB1YmxpYyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzOiBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudDtcblxuICBwdWJsaWMgZ2V0IEVudmlyb25tZW50KCk6IEVhQ0Vudmlyb25tZW50QXNDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5FbnZpcm9ubWVudHNbdGhpcy5kYXRhLmVudmlyb25tZW50TG9va3VwXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU291cmNlQ29udHJvbHMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNTb3VyY2VDb250cm9sIH0ge1xuICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRle1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG5cbiAgcHVibGljIEhhc1NhdmVCdXR0b246IGJvb2xlYW47XG5cbiAgcHVibGljIE5ld0FwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICBwdWJsaWMgTmV3QXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsIFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBOZXdBcHBsaWNhdGlvbkRpYWxvZ0RhdGEpIHsgXG5cbiAgICB0aGlzLkhhc1NhdmVCdXR0b24gPSBmYWxzZVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5TZXR1cEFwcGxpY2F0aW9uKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICAgIFxuICB9XG5cbiAgcHVibGljIENsb3NlRGlhbG9nKCl7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBTZXR1cEFwcGxpY2F0aW9uKGFwcExvb2t1cDogc3RyaW5nKXtcbiAgICB0aGlzLk5ld0FwcGxpY2F0aW9uID0gbmV3IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuICAgIHRoaXMuTmV3QXBwbGljYXRpb25Mb29rdXAgPSBhcHBMb29rdXA7XG5cbiAgfVxuXG4gIFxuXG4gIHB1YmxpYyBTYXZlQXBwbGljYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgYXBwOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSA9IHtcbiAgICAgIEFwcGxpY2F0aW9uOiB7XG4gICAgICAgIE5hbWU6IHRoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBEZXNjcmlwdGlvbjogdGhpcy5BcHBsaWNhdGlvbkZvcm1Db250cm9scy5EZXNjcmlwdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQcmlvcml0eVNoaWZ0OiAwLFxuICAgICAgfSxcbiAgICAgIEFjY2Vzc1JpZ2h0TG9va3VwczogW10sXG4gICAgICBEYXRhVG9rZW5zOiB7fSxcbiAgICAgIExpY2Vuc2VDb25maWd1cmF0aW9uTG9va3VwczogW10sXG4gICAgICBMb29rdXBDb25maWc6IHtcbiAgICAgICAgSXNQcml2YXRlOiBmYWxzZSxcbiAgICAgICAgSXNUcmlnZ2VyU2lnbkluOiBmYWxzZSxcbiAgICAgICAgUGF0aFJlZ2V4OiBgJHt0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLlJvdXRlRm9ybUNvbnRyb2wudmFsdWV9LipgLFxuICAgICAgICBRdWVyeVJlZ2V4OiAnJyxcbiAgICAgICAgSGVhZGVyUmVnZXg6ICcnLFxuICAgICAgICBBbGxvd2VkTWV0aG9kczogdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLk1ldGhvZHNGb3JtQ29udHJvbD8udmFsdWVcbiAgICAgICAgPy5zcGxpdCgnICcpXG4gICAgICAgIC5maWx0ZXIoKHY6IHN0cmluZykgPT4gISF2KSxcbiAgICAgIH0sXG4gICAgICBQcm9jZXNzb3I6IHtcbiAgICAgICAgVHlwZTogdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByb2Nlc3NvclR5cGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKGFwcC5Qcm9jZXNzb3IuVHlwZSkge1xuICAgICAgY2FzZSAnREZTJzpcbiAgICAgICAgYXBwLlByb2Nlc3Nvci5CYXNlSHJlZiA9IGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0vYC5yZXBsYWNlKFxuICAgICAgICAgICcvLycsXG4gICAgICAgICAgJy8nXG4gICAgICAgICk7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5EZWZhdWx0RmlsZSA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkRlZmF1bHRGaWxlRm9ybUNvbnRyb2wudmFsdWUgfHwgJ2luZGV4Lmh0bWwnO1xuXG4gICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgY2FzZSAnR2l0SHViJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5Pcmdhbml6YXRpb24gPVxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgXS5Pcmdhbml6YXRpb247XG5cbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5SZXBvc2l0b3J5ID1cbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbXG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgIF0uUmVwb3NpdG9yeTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkJ1aWxkID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkJ1aWxkRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5QYXRoID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdOUE0nOlxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhY2thZ2UgPSB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUGFja2FnZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuVmVyc2lvbiA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5WZXJzaW9uRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuWmlwRmlsZSA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5aaXBGaWxlRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnT0F1dGgnOlxuICAgICAgICBhcHAuUHJvY2Vzc29yLlNjb3BlcyA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5TY29wZXNGb3JtQ29udHJvbC52YWx1ZS5zcGxpdCgnICcpO1xuXG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuVG9rZW5Mb29rdXAgPSB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuVG9rZW5Mb29rdXBGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICBhcHAuTG93Q29kZVVuaXQgPSB7XG4gICAgICAgICAgVHlwZTogdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkxDVVR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgc3dpdGNoIChhcHAuTG93Q29kZVVuaXQuVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0dpdEh1Yk9BdXRoJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5DbGllbnRJRCA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5DbGllbnRJREZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50U2VjcmV0ID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkNsaWVudFNlY3JldEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1Byb3h5JzpcbiAgICAgICAgYXBwLlByb2Nlc3Nvci5JbmJvdW5kUGF0aCA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5JbmJvdW5kUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkFQSVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNlY3VyaXR5ID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNlY3VyaXR5Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TUEFSb290ID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNQQVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuUGVybWFuZW50ID0gISF0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUGVybWFuZW50Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5QcmVzZXJ2ZU1ldGhvZCA9ICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5SZWRpcmVjdCA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5SZWRpcmVjdEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWFwcC5Mb29rdXBDb25maWcuUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXggPSBgLyR7YXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXh9YDtcbiAgICB9XG5cbiAgICBjb25zdCBzYXZlQXBwUmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3QgPSB7XG4gICAgICBQcm9qZWN0TG9va3VwOiB0aGlzLmRhdGEucHJvamVjdExvb2t1cCxcbiAgICAgIEFwcGxpY2F0aW9uOiBhcHAsXG4gICAgICBBcHBsaWNhdGlvbkxvb2t1cDogR3VpZC5DcmVhdGVSYXcoKSxcbiAgICB9O1xuLy8gdGhpcy5IYXNCdWlsZEZvcm1Db250cm9sLnZhbHVlICYmICB0YWtlbiBvdXQgZnJvbSBiZWxvdyBpZiBzdGF0ZW1lbnRcbiAgICBpZiAodGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByb2Nlc3NvclR5cGUgIT09ICdyZWRpcmVjdCcpIHtcbiAgICAgIGlmIChhcHApIHtcbiAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPSB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXBwKSB7XG4gICAgICBhcHAuTG93Q29kZVVuaXQuU291cmNlQ29udHJvbExvb2t1cCA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5lYWNTdmMuU2F2ZUFwcGxpY2F0aW9uQXNDb2RlKHNhdmVBcHBSZXEpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cblxuPGxjdS1lZGl0LWFwcGxpY2F0aW9uLWZvcm0gXG4gICAgW2VkaXRpbmctYXBwbGljYXRpb25dPVwiTmV3QXBwbGljYXRpb25cIlxuICAgIFtoYXMtc2F2ZS1idXR0b25dPVwiSGFzU2F2ZUJ1dHRvblwiXG4+XG48L2xjdS1lZGl0LWFwcGxpY2F0aW9uLWZvcm0+XG5cbjxsY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybSBcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbl09XCJOZXdBcHBsaWNhdGlvblwiXG4gICAgW2VkaXRpbmctYXBwbGljYXRpb24tbG9va3VwXT1cIk5ld0FwcGxpY2F0aW9uTG9va3VwXCJcbiAgICBbaGFzLXNhdmUtYnV0dG9uXT1cIkhhc1NhdmVCdXR0b25cIlxuICAgIFtzb3VyY2UtY29udHJvbC1sb29rdXBzXT1cIlNvdXJjZUNvbnRyb2xMb29rdXBzXCJcbiAgICBbcHJvamVjdC1sb29rdXBdPVwiZGF0YS5wcm9qZWN0TG9va3VwXCJcbj5cbjwvbGN1LXByb2Nlc3Nvci1kZXRhaWxzLWZvcm0+XG5cbjxidXR0b24gXG4gICAgKm5nSWY9XCJQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzICYmIEFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzICYmICFTdGF0ZT8uTG9hZGluZ1wiXG4gICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBjbGFzcz1cIm5ldy1hcHAtc3VibWl0XCIgXG4gICAgKGNsaWNrKT1cIlNhdmVBcHBsaWNhdGlvbigpXCJcbiAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICFQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAudmFsaWQgXG4gICAgICAgIHx8IFxuICAgICAgICAhQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuQXBwbGljYXRpb25Gb3JtR3JvdXAudmFsaWRcbiAgICBcIlxuPlxuICAgIFNhdmUgQXBwbGljYXRpb25cbjwvYnV0dG9uPlxuPGxjdS1sb2FkZXIgW2xvYWRpbmddPVwiU3RhdGU/LkxvYWRpbmdcIj48L2xjdS1sb2FkZXI+Il19
|
|
@@ -44,10 +44,10 @@ export class ProjectInfoCardComponent {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
ProjectInfoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ProjectInfoCardComponent, deps: [{ token: i1.EaCService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
ProjectInfoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ProjectInfoCardComponent, selector: "lcu-project-info-card", inputs: { Description: ["description", "Description"], Image: ["image", "Image"], IsEditable: ["is-editable", "IsEditable"], IsShareable: ["is-shareable", "IsShareable"], Name: ["name", "Name"], Subtext: ["subtext", "Subtext"] }, outputs: { LeftClickEvent: "left-click-event", RightClickEvent: "right-click-event" }, ngImport: i0, template: "<mat-card class=\"project-info-card\">\n\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <skeleton-avatar class=\"round-project-img\" [effect]=\"SkeletonEffect\" [size]=\"75\" ></skeleton-avatar >\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\" \n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"project-card-description\" \n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"host-anchor\" \n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div skeleton-block [effect]=\"SkeletonEffect\" class=\"stats-container\">\n </div>\n\n <div \n class=\"promo-container-skeleton\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n >\n \n <div \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">emoji_events</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" >\n Upgrade to premium now\n </div>\n </div>\n </div>\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container-skeleton\" fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" action mat-button >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">outbox</mat-icon>\n Unpack\n </div>\n \n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n<ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\">flutter_dash</mat-icon>\n <img *ngIf=\"Image\" [src]=\"Image\" [alt]=\"Name\" style=\"width:75px; height:75px\">\n </div>\n </div>\n\n <div class=\"icon-btn-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" >\n <button *ngIf=\"IsEditable\" mat-icon-button id=\"left-icon\" (click)=\"LeftIconClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button *ngIf=\"IsShareable\" mat-icon-button id=\"right-icon\" (click)=\"RightIconClicked()\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">{{Name}}</mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">{{Description}}</mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <a class=\"host-anchor\" *ngIf=\"Subtext\" [href]=\"'https://'+Subtext\" target=\"_blank\">{{Subtext}}</a>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div class=\"stats-container\">\n <ng-content select=\"[stats]\"></ng-content>\n </div>\n\n <!-- <div class=\"promo-container\"> -->\n <!-- <ng-content select=\"[promo]\"></ng-content> -->\n <div class=\"promo-container\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n (click)=\"UpgradeClicked()\"\n \n >\n \n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n \n </mat-card-actions>\n </ng-container>\n </mat-card>\n \n", styles: [".project-info-card{margin:20px;padding:0}.round-project-img{background-color:#dfeff2;width:75px;height:75px;border-radius:40px;text-align:center;margin-top:20px;border:2px solid white}.temp-icon{height:50px;width:50px;font-size:50px}.icon-btn-container{margin:5px}.project-card-header{text-align:center;margin-top:50px}.host-anchor{text-decoration:none;color:#4a918e}.header-img-container{background-color:#a4bab3;height:60px;border-radius:2px 2px 0 0;margin-top:-.5px!important;margin-right:-.5px;justify-content:center}.project-card-name{font-size:17px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-top:1px solid #b9dddd}.promo-container{cursor:pointer}.gold-icon{color:#d4af37}.upgrade-text{font-weight:700;margin-left:10px;cursor:pointer}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.promo-container-skeleton{margin:5px}.actions-container{padding:0!important}.actions-container-skeleton{padding:0!important;border-top:1px solid #b9dddd}.info-card-btn{width:100%;border-radius:0 0 2px 2px;border-top:1px solid #b9dddd}.skeleton-item{margin:5px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4.SkeletonAvatarComponent, selector: "skeleton-avatar", inputs: ["size", "color", "showIcon", "iconColor", "borderRadius", "effect"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
|
|
47
|
+
ProjectInfoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ProjectInfoCardComponent, selector: "lcu-project-info-card", inputs: { Description: ["description", "Description"], Image: ["image", "Image"], IsEditable: ["is-editable", "IsEditable"], IsShareable: ["is-shareable", "IsShareable"], Name: ["name", "Name"], Subtext: ["subtext", "Subtext"], Version: ["version", "Version"] }, outputs: { LeftClickEvent: "left-click-event", RightClickEvent: "right-click-event" }, ngImport: i0, template: "<mat-card class=\"project-info-card\">\n\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <skeleton-avatar class=\"round-project-img\" [effect]=\"SkeletonEffect\" [size]=\"75\" ></skeleton-avatar >\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\" \n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"project-card-description\" \n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"host-anchor\" \n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div skeleton-block [effect]=\"SkeletonEffect\" class=\"stats-container\">\n </div>\n\n <div \n class=\"promo-container-skeleton\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n >\n \n <div \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">emoji_events</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" >\n Upgrade to premium now\n </div>\n </div>\n </div>\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container-skeleton\" fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" action mat-button >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">outbox</mat-icon>\n Unpack\n </div>\n \n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n<ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\">flutter_dash</mat-icon>\n <img *ngIf=\"Image\" [src]=\"Image\" [alt]=\"Name\" style=\"width:75px; height:75px\">\n </div>\n </div>\n\n <div class=\"icon-btn-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" >\n <button *ngIf=\"IsEditable\" mat-icon-button id=\"left-icon\" (click)=\"LeftIconClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button *ngIf=\"IsShareable\" mat-icon-button id=\"right-icon\" (click)=\"RightIconClicked()\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">{{Name}}</mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">{{Description}}</mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-version\" *ngIf=\"Version\">Current Version: {{Version}}</mat-card-subtitle>\n\n\n <mat-card-subtitle class=\"project-card-host\">\n <a class=\"host-anchor\" *ngIf=\"Subtext\" [href]=\"'https://'+Subtext\" target=\"_blank\">{{Subtext}}</a>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div class=\"stats-container\">\n <ng-content select=\"[stats]\"></ng-content>\n </div>\n\n <!-- <div class=\"promo-container\"> -->\n <!-- <ng-content select=\"[promo]\"></ng-content> -->\n <div class=\"promo-container\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n (click)=\"UpgradeClicked()\"\n \n >\n \n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n \n </mat-card-actions>\n </ng-container>\n </mat-card>\n \n", styles: [".project-info-card{margin:20px;padding:0}.round-project-img{background-color:#dfeff2;width:75px;height:75px;border-radius:40px;text-align:center;margin-top:20px;border:2px solid white}.temp-icon{height:50px;width:50px;font-size:50px}.icon-btn-container{margin:5px}.project-card-header{text-align:center;margin-top:50px}.host-anchor{text-decoration:none;color:#4a918e}.header-img-container{background-color:#a4bab3;height:60px;border-radius:2px 2px 0 0;margin-top:-.5px!important;margin-right:-.5px;justify-content:center}.project-card-name{font-size:17px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-top:1px solid #b9dddd}.promo-container{cursor:pointer}.gold-icon{color:#d4af37}.upgrade-text{font-weight:700;margin-left:10px;cursor:pointer}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.promo-container-skeleton{margin:5px}.actions-container{padding:0!important}.actions-container-skeleton{padding:0!important;border-top:1px solid #b9dddd}.info-card-btn{width:100%;border-radius:0 0 2px 2px;border-top:1px solid #b9dddd}.skeleton-item{margin:5px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4.SkeletonAvatarComponent, selector: "skeleton-avatar", inputs: ["size", "color", "showIcon", "iconColor", "borderRadius", "effect"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ProjectInfoCardComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
|
-
args: [{ selector: 'lcu-project-info-card', template: "<mat-card class=\"project-info-card\">\n\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <skeleton-avatar class=\"round-project-img\" [effect]=\"SkeletonEffect\" [size]=\"75\" ></skeleton-avatar >\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\" \n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"project-card-description\" \n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"host-anchor\" \n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div skeleton-block [effect]=\"SkeletonEffect\" class=\"stats-container\">\n </div>\n\n <div \n class=\"promo-container-skeleton\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n >\n \n <div \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">emoji_events</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" >\n Upgrade to premium now\n </div>\n </div>\n </div>\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container-skeleton\" fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" action mat-button >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">outbox</mat-icon>\n Unpack\n </div>\n \n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n<ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\">flutter_dash</mat-icon>\n <img *ngIf=\"Image\" [src]=\"Image\" [alt]=\"Name\" style=\"width:75px; height:75px\">\n </div>\n </div>\n\n <div class=\"icon-btn-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" >\n <button *ngIf=\"IsEditable\" mat-icon-button id=\"left-icon\" (click)=\"LeftIconClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button *ngIf=\"IsShareable\" mat-icon-button id=\"right-icon\" (click)=\"RightIconClicked()\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">{{Name}}</mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">{{Description}}</mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <a class=\"host-anchor\" *ngIf=\"Subtext\" [href]=\"'https://'+Subtext\" target=\"_blank\">{{Subtext}}</a>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div class=\"stats-container\">\n <ng-content select=\"[stats]\"></ng-content>\n </div>\n\n <!-- <div class=\"promo-container\"> -->\n <!-- <ng-content select=\"[promo]\"></ng-content> -->\n <div class=\"promo-container\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n (click)=\"UpgradeClicked()\"\n \n >\n \n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n \n </mat-card-actions>\n </ng-container>\n </mat-card>\n \n", styles: [".project-info-card{margin:20px;padding:0}.round-project-img{background-color:#dfeff2;width:75px;height:75px;border-radius:40px;text-align:center;margin-top:20px;border:2px solid white}.temp-icon{height:50px;width:50px;font-size:50px}.icon-btn-container{margin:5px}.project-card-header{text-align:center;margin-top:50px}.host-anchor{text-decoration:none;color:#4a918e}.header-img-container{background-color:#a4bab3;height:60px;border-radius:2px 2px 0 0;margin-top:-.5px!important;margin-right:-.5px;justify-content:center}.project-card-name{font-size:17px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-top:1px solid #b9dddd}.promo-container{cursor:pointer}.gold-icon{color:#d4af37}.upgrade-text{font-weight:700;margin-left:10px;cursor:pointer}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.promo-container-skeleton{margin:5px}.actions-container{padding:0!important}.actions-container-skeleton{padding:0!important;border-top:1px solid #b9dddd}.info-card-btn{width:100%;border-radius:0 0 2px 2px;border-top:1px solid #b9dddd}.skeleton-item{margin:5px}\n"] }]
|
|
50
|
+
args: [{ selector: 'lcu-project-info-card', template: "<mat-card class=\"project-info-card\">\n\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <skeleton-avatar class=\"round-project-img\" [effect]=\"SkeletonEffect\" [size]=\"75\" ></skeleton-avatar >\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\" \n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"project-card-description\" \n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div \n skeleton-text \n [effect]=\"SkeletonEffect\" \n class=\"host-anchor\" \n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div skeleton-block [effect]=\"SkeletonEffect\" class=\"stats-container\">\n </div>\n\n <div \n class=\"promo-container-skeleton\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n >\n \n <div \n skeleton-text \n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">emoji_events</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" >\n Upgrade to premium now\n </div>\n </div>\n </div>\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container-skeleton\" fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\" action mat-button >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">outbox</mat-icon>\n Unpack\n </div>\n \n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n<ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\">flutter_dash</mat-icon>\n <img *ngIf=\"Image\" [src]=\"Image\" [alt]=\"Name\" style=\"width:75px; height:75px\">\n </div>\n </div>\n\n <div class=\"icon-btn-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" >\n <button *ngIf=\"IsEditable\" mat-icon-button id=\"left-icon\" (click)=\"LeftIconClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button *ngIf=\"IsShareable\" mat-icon-button id=\"right-icon\" (click)=\"RightIconClicked()\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">{{Name}}</mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">{{Description}}</mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-version\" *ngIf=\"Version\">Current Version: {{Version}}</mat-card-subtitle>\n\n\n <mat-card-subtitle class=\"project-card-host\">\n <a class=\"host-anchor\" *ngIf=\"Subtext\" [href]=\"'https://'+Subtext\" target=\"_blank\">{{Subtext}}</a>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div class=\"stats-container\">\n <ng-content select=\"[stats]\"></ng-content>\n </div>\n\n <!-- <div class=\"promo-container\"> -->\n <!-- <ng-content select=\"[promo]\"></ng-content> -->\n <div class=\"promo-container\" \n fxLayout=\"column\" \n fxLayoutAlign=\"center center\" \n (click)=\"UpgradeClicked()\"\n \n >\n \n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n \n </mat-card-actions>\n </ng-container>\n </mat-card>\n \n", styles: [".project-info-card{margin:20px;padding:0}.round-project-img{background-color:#dfeff2;width:75px;height:75px;border-radius:40px;text-align:center;margin-top:20px;border:2px solid white}.temp-icon{height:50px;width:50px;font-size:50px}.icon-btn-container{margin:5px}.project-card-header{text-align:center;margin-top:50px}.host-anchor{text-decoration:none;color:#4a918e}.header-img-container{background-color:#a4bab3;height:60px;border-radius:2px 2px 0 0;margin-top:-.5px!important;margin-right:-.5px;justify-content:center}.project-card-name{font-size:17px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-top:1px solid #b9dddd}.promo-container{cursor:pointer}.gold-icon{color:#d4af37}.upgrade-text{font-weight:700;margin-left:10px;cursor:pointer}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.promo-container-skeleton{margin:5px}.actions-container{padding:0!important}.actions-container-skeleton{padding:0!important;border-top:1px solid #b9dddd}.info-card-btn{width:100%;border-radius:0 0 2px 2px;border-top:1px solid #b9dddd}.skeleton-item{margin:5px}\n"] }]
|
|
51
51
|
}], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.MatDialog }]; }, propDecorators: { Description: [{
|
|
52
52
|
type: Input,
|
|
53
53
|
args: ['description']
|
|
@@ -66,6 +66,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
66
66
|
}], Subtext: [{
|
|
67
67
|
type: Input,
|
|
68
68
|
args: ['subtext']
|
|
69
|
+
}], Version: [{
|
|
70
|
+
type: Input,
|
|
71
|
+
args: ['version']
|
|
69
72
|
}], LeftClickEvent: [{
|
|
70
73
|
type: Output,
|
|
71
74
|
args: ['left-click-event']
|
|
@@ -73,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
73
76
|
type: Output,
|
|
74
77
|
args: ['right-click-event']
|
|
75
78
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1pbmZvLWNhcmQvcHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1pbmZvLWNhcmQvcHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7OztBQVMvRixNQUFNLE9BQU8sd0JBQXdCO0lBaUNuQyxZQUFzQixNQUFrQixFQUFXLE1BQWlCO1FBQTlDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQWJGLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWFNLFFBQVE7UUFDYiwwQ0FBMEM7UUFDMUMsbURBQW1EO1FBQ25ELGlEQUFpRDtJQUNuRCxDQUFDO0lBSU0sZUFBZTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDekQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsRUFDTDtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyx3Q0FBd0M7WUFDeEMsaUNBQWlDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQzs7cUhBdEVVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDBYQ1hyQywraEpBNElBOzJGRGpJYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCO3lIQU8xQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLE9BQU87Z0JBSVAsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxhQUFhO2dCQUliLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsY0FBYztnQkFJZCxJQUFJO3NCQURWLEtBQUs7dUJBQUMsTUFBTTtnQkFJTixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxjQUFjO3NCQURwQixNQUFNO3VCQUFDLGtCQUFrQjtnQkFJbkIsZUFBZTtzQkFEckIsTUFBTTt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVXBncmFkZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvdXBncmFkZS1kaWFsb2cvdXBncmFkZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1wcm9qZWN0LWluZm8tY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0LWluZm8tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2plY3QtaW5mby1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdEluZm9DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgXG4gIEBJbnB1dCgnZGVzY3JpcHRpb24nKVxuICBwdWJsaWMgRGVzY3JpcHRpb246IHN0cmluZztcbiAgXG4gIEBJbnB1dCgnaW1hZ2UnKVxuICBwdWJsaWMgSW1hZ2U6IHN0cmluZztcblxuICBASW5wdXQoJ2lzLWVkaXRhYmxlJylcbiAgcHVibGljIElzRWRpdGFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCdpcy1zaGFyZWFibGUnKVxuICBwdWJsaWMgSXNTaGFyZWFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCduYW1lJylcbiAgcHVibGljIE5hbWU6IHN0cmluZztcblxuICBASW5wdXQoJ3N1YnRleHQnKVxuICBwdWJsaWMgU3VidGV4dDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ2xlZnQtY2xpY2stZXZlbnQnKVxuICBwdWJsaWMgTGVmdENsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjx7fT47XG5cbiAgQE91dHB1dCgncmlnaHQtY2xpY2stZXZlbnQnKVxuICBwdWJsaWMgUmlnaHRDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8e30+O1xuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRle1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csKSB7XG4gICAgdGhpcy5MZWZ0Q2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHRoaXMuUmlnaHRDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcbiAgIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coXCJsb2FkaW5nID0gXCIsIHRoaXMuTG9hZGluZylcbiAgICAvLyBjb25zb2xlLmxvZyhcImlzIHNoYXJlYWJsZTogXCIsIHRoaXMuSXNTaGFyZWFibGUpO1xuICAgIC8vIGNvbnNvbGUubG9nKFwiaXMgZWRpdGFibGU6IFwiLCB0aGlzLklzRWRpdGFibGUpO1xuICB9XG5cblxuXG4gIHB1YmxpYyBMZWZ0SWNvbkNsaWNrZWQoKXtcbiAgICB0aGlzLkxlZnRDbGlja0V2ZW50LmVtaXQoe30pO1xuICB9XG5cbiAgcHVibGljIFJpZ2h0SWNvbkNsaWNrZWQoKXtcbiAgICBjb25zb2xlLmxvZyhcInNoYXJlIGNsaWNrZWRcIilcbiAgICB0aGlzLlJpZ2h0Q2xpY2tFdmVudC5lbWl0KHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBVcGdyYWRlQ2xpY2tlZCgpe1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXBncmFkZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc2MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdUaGUgZGlhbG9nIHdhcyBjbG9zZWQnKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVzdWx0OlwiLCByZXN1bHQpXG4gICAgfSk7XG5cbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJwcm9qZWN0LWluZm8tY2FyZFwiPlxuXG4gIDwhLS0gU0tFTEVUT04gQ09OVEVOVCAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci1pbWctY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIiA+XG4gICAgICA8c2tlbGV0b24tYXZhdGFyIGNsYXNzPVwicm91bmQtcHJvamVjdC1pbWdcIiBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgW3NpemVdPVwiNzVcIiA+PC9za2VsZXRvbi1hdmF0YXIgPlxuICA8L2Rpdj5cblxuICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwicHJvamVjdC1jYXJkLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG5cbiAgICA8bWF0LWNhcmQtdGl0bGUgXG4gICAgICBza2VsZXRvbi10ZXh0ICBcbiAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgY2xhc3M9XCJwcm9qZWN0LWNhcmQtbmFtZVwiIFxuICAgID5cbiAgICAgIE5hbWUgb2YgY2FyZFxuICAgIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICA8bWF0LWNhcmQtc3VidGl0bGUgXG4gICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIFxuICAgICAgY2xhc3M9XCJwcm9qZWN0LWNhcmQtZGVzY3JpcHRpb25cIiBcbiAgICA+XG4gICAgICBEZXNjcmlwdGlvbiBUZXh0XG4gICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cblxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cInByb2plY3QtY2FyZC1ob3N0XCI+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgc2tlbGV0b24tdGV4dCBcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICAgICAgY2xhc3M9XCJob3N0LWFuY2hvclwiIFxuICAgICAgICA+XG4gICAgICAgICAgaHR0cHM6Ly93d3cuZmF0aHltLmNvbVxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuXG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImNhcmQtY29udGVudC1jb250YWluZXJcIj5cbiAgICA8ZGl2IHNrZWxldG9uLWJsb2NrIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInN0YXRzLWNvbnRhaW5lclwiPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwicHJvbW8tY29udGFpbmVyLXNrZWxldG9uXCIgXG4gICAgICBmeExheW91dD1cImNvbHVtblwiIFxuICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBcbiAgICA+XG4gICAgICAgIFxuICAgICAgPGRpdiBcbiAgICAgICAgc2tlbGV0b24tdGV4dCBcbiAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgIGNsYXNzPVwic2tlbGV0b24taXRlbVwiXG4gICAgICA+XG4gICAgICAgIEFjY2VzcyBleGNsdXNpdmUgdG9vbHMgJiBpbnNpZ2h0c1xuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxtYXQtaWNvbiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIj5lbW9qaV9ldmVudHM8L21hdC1pY29uPlxuXG4gICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCIgPlxuICAgICAgICAgIFVwZ3JhZGUgdG8gcHJlbWl1bSBub3dcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXItc2tlbGV0b25cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCIgYWN0aW9uIG1hdC1idXR0b24gPlxuICAgICAgPG1hdC1pY29uIHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIGNsYXNzPVwic2tlbGV0b24taXRlbVwiPm91dGJveDwvbWF0LWljb24+XG4gICAgICBVbnBhY2tcbiAgICA8L2Rpdj5cbiAgICBcbiAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBFTkQgU0tFTEVUT04gQ09OVEVOVCAtLT5cblxuICA8IS0tIEFDVFVBTCBDT05URU5UIC0tPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWltZy1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kLXByb2plY3QtaW1nXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFJbWFnZVwiIGNsYXNzPVwidGVtcC1pY29uXCI+Zmx1dHRlcl9kYXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJJbWFnZVwiIFtzcmNdPVwiSW1hZ2VcIiBbYWx0XT1cIk5hbWVcIiBzdHlsZT1cIndpZHRoOjc1cHg7IGhlaWdodDo3NXB4XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImljb24tYnRuLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCIgPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIklzRWRpdGFibGVcIiBtYXQtaWNvbi1idXR0b24gaWQ9XCJsZWZ0LWljb25cIiAoY2xpY2spPVwiTGVmdEljb25DbGlja2VkKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiSXNTaGFyZWFibGVcIiBtYXQtaWNvbi1idXR0b24gaWQ9XCJyaWdodC1pY29uXCIgKGNsaWNrKT1cIlJpZ2h0SWNvbkNsaWNrZWQoKVwiPlxuICAgICAgICA8bWF0LWljb24+c2hhcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwicHJvamVjdC1jYXJkLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG5cbiAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInByb2plY3QtY2FyZC1uYW1lXCIgKm5nSWY9XCJOYW1lXCI+e3tOYW1lfX08L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICA8bWF0LWNhcmQtc3VidGl0bGUgY2xhc3M9XCJwcm9qZWN0LWNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cIkRlc2NyaXB0aW9uXCI+e3tEZXNjcmlwdGlvbn19PC9tYXQtY2FyZC1zdWJ0aXRsZT5cblxuICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlIGNsYXNzPVwicHJvamVjdC1jYXJkLWhvc3RcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImhvc3QtYW5jaG9yXCIgKm5nSWY9XCJTdWJ0ZXh0XCIgW2hyZWZdPVwiJ2h0dHBzOi8vJytTdWJ0ZXh0XCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3tTdWJ0ZXh0fX08L2E+XG4gICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJjYXJkLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50ICBzZWxlY3Q9XCJbc3RhdHNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInByb21vLWNvbnRhaW5lclwiPiAtLT5cbiAgICAgICAgPCEtLSA8bmctY29udGVudCAgc2VsZWN0PVwiW3Byb21vXVwiPjwvbmctY29udGVudD4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1jb250YWluZXJcIiBcbiAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiIFxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgXG4gICAgICAgICAgKGNsaWNrKT1cIlVwZ3JhZGVDbGlja2VkKClcIlxuICAgICAgICAgIFxuICAgICAgICA+XG4gICAgICAgIFxuICAgICAgICA8ZGl2PkFjY2VzcyBleGNsdXNpdmUgdG9vbHMgJiBpbnNpZ2h0czwvZGl2PlxuXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZ29sZC1pY29uXCI+ZW1vamlfZXZlbnRzPC9tYXQtaWNvbj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGdyYWRlLXRleHRcIiAoY2xpY2spPVwiVXBncmFkZUNsaWNrZWQoKVwiPlxuICAgICAgICAgICAgVXBncmFkZSB0byBwcmVtaXVtIG5vd1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8L2Rpdj4gLS0+XG5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICBcbiAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1jYXJkPlxuICBcbiJdfQ==
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1pbmZvLWNhcmQvcHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1pbmZvLWNhcmQvcHJvamVjdC1pbmZvLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7OztBQVMvRixNQUFNLE9BQU8sd0JBQXdCO0lBb0NuQyxZQUFzQixNQUFrQixFQUFXLE1BQWlCO1FBQTlDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQWJGLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWFNLFFBQVE7UUFDYiwwQ0FBMEM7UUFDMUMsbURBQW1EO1FBQ25ELGlEQUFpRDtJQUNuRCxDQUFDO0lBSU0sZUFBZTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDekQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsRUFDTDtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyx3Q0FBd0M7WUFDeEMsaUNBQWlDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQzs7cUhBekVVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJaQ1hyQywrcEpBK0lBOzJGRHBJYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCO3lIQU8xQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLE9BQU87Z0JBSVAsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxhQUFhO2dCQUliLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsY0FBYztnQkFJZCxJQUFJO3NCQURWLEtBQUs7dUJBQUMsTUFBTTtnQkFJTixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxjQUFjO3NCQURwQixNQUFNO3VCQUFDLGtCQUFrQjtnQkFJbkIsZUFBZTtzQkFEckIsTUFBTTt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVXBncmFkZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvdXBncmFkZS1kaWFsb2cvdXBncmFkZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1wcm9qZWN0LWluZm8tY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0LWluZm8tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2plY3QtaW5mby1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdEluZm9DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgXG4gIEBJbnB1dCgnZGVzY3JpcHRpb24nKVxuICBwdWJsaWMgRGVzY3JpcHRpb246IHN0cmluZztcbiAgXG4gIEBJbnB1dCgnaW1hZ2UnKVxuICBwdWJsaWMgSW1hZ2U6IHN0cmluZztcblxuICBASW5wdXQoJ2lzLWVkaXRhYmxlJylcbiAgcHVibGljIElzRWRpdGFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCdpcy1zaGFyZWFibGUnKVxuICBwdWJsaWMgSXNTaGFyZWFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCduYW1lJylcbiAgcHVibGljIE5hbWU6IHN0cmluZztcblxuICBASW5wdXQoJ3N1YnRleHQnKVxuICBwdWJsaWMgU3VidGV4dDogc3RyaW5nO1xuXG4gIEBJbnB1dCgndmVyc2lvbicpXG4gIHB1YmxpYyBWZXJzaW9uOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgnbGVmdC1jbGljay1ldmVudCcpXG4gIHB1YmxpYyBMZWZ0Q2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPHt9PjtcblxuICBAT3V0cHV0KCdyaWdodC1jbGljay1ldmVudCcpXG4gIHB1YmxpYyBSaWdodENsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjx7fT47XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cbiAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZywpIHtcbiAgICB0aGlzLkxlZnRDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgdGhpcy5SaWdodENsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuICAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImxvYWRpbmcgPSBcIiwgdGhpcy5Mb2FkaW5nKVxuICAgIC8vIGNvbnNvbGUubG9nKFwiaXMgc2hhcmVhYmxlOiBcIiwgdGhpcy5Jc1NoYXJlYWJsZSk7XG4gICAgLy8gY29uc29sZS5sb2coXCJpcyBlZGl0YWJsZTogXCIsIHRoaXMuSXNFZGl0YWJsZSk7XG4gIH1cblxuXG5cbiAgcHVibGljIExlZnRJY29uQ2xpY2tlZCgpe1xuICAgIHRoaXMuTGVmdENsaWNrRXZlbnQuZW1pdCh7fSk7XG4gIH1cblxuICBwdWJsaWMgUmlnaHRJY29uQ2xpY2tlZCgpe1xuICAgIGNvbnNvbGUubG9nKFwic2hhcmUgY2xpY2tlZFwiKVxuICAgIHRoaXMuUmlnaHRDbGlja0V2ZW50LmVtaXQoe30pO1xuICB9XG5cbiAgcHVibGljIFVwZ3JhZGVDbGlja2VkKCl7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVcGdyYWRlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBkaWFsb2cgd2FzIGNsb3NlZCcpO1xuICAgICAgLy8gY29uc29sZS5sb2coXCJyZXN1bHQ6XCIsIHJlc3VsdClcbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cInByb2plY3QtaW5mby1jYXJkXCI+XG5cbiAgPCEtLSBTS0VMRVRPTiBDT05URU5UIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWltZy1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiID5cbiAgICAgIDxza2VsZXRvbi1hdmF0YXIgY2xhc3M9XCJyb3VuZC1wcm9qZWN0LWltZ1wiIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBbc2l6ZV09XCI3NVwiID48L3NrZWxldG9uLWF2YXRhciA+XG4gIDwvZGl2PlxuXG4gIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJwcm9qZWN0LWNhcmQtaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cblxuICAgIDxtYXQtY2FyZC10aXRsZSBcbiAgICAgIHNrZWxldG9uLXRleHQgIFxuICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICBjbGFzcz1cInByb2plY3QtY2FyZC1uYW1lXCIgXG4gICAgPlxuICAgICAgTmFtZSBvZiBjYXJkXG4gICAgPC9tYXQtY2FyZC10aXRsZT5cblxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBcbiAgICAgIHNrZWxldG9uLXRleHQgXG4gICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICBjbGFzcz1cInByb2plY3QtY2FyZC1kZXNjcmlwdGlvblwiIFxuICAgID5cbiAgICAgIERlc2NyaXB0aW9uIFRleHRcbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuXG4gICAgPG1hdC1jYXJkLXN1YnRpdGxlIGNsYXNzPVwicHJvamVjdC1jYXJkLWhvc3RcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBcbiAgICAgICAgICBjbGFzcz1cImhvc3QtYW5jaG9yXCIgXG4gICAgICAgID5cbiAgICAgICAgICBodHRwczovL3d3dy5mYXRoeW0uY29tXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG5cbiAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiY2FyZC1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgc2tlbGV0b24tYmxvY2sgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIGNsYXNzPVwic3RhdHMtY29udGFpbmVyXCI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJwcm9tby1jb250YWluZXItc2tlbGV0b25cIiBcbiAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCIgXG4gICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIFxuICAgID5cbiAgICAgICAgXG4gICAgICA8ZGl2IFxuICAgICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCJcbiAgICAgICAgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCJcbiAgICAgID5cbiAgICAgICAgQWNjZXNzIGV4Y2x1c2l2ZSB0b29scyAmIGluc2lnaHRzXG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgPG1hdC1pY29uIHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIGNsYXNzPVwic2tlbGV0b24taXRlbVwiPmVtb2ppX2V2ZW50czwvbWF0LWljb24+XG5cbiAgICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIiA+XG4gICAgICAgICAgVXBncmFkZSB0byBwcmVtaXVtIG5vd1xuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lci1za2VsZXRvblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIiBhY3Rpb24gbWF0LWJ1dHRvbiA+XG4gICAgICA8bWF0LWljb24gc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCI+b3V0Ym94PC9tYXQtaWNvbj5cbiAgICAgIFVucGFja1xuICAgIDwvZGl2PlxuICAgIFxuICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIEVORCBTS0VMRVRPTiBDT05URU5UIC0tPlxuXG4gIDwhLS0gQUNUVUFMIENPTlRFTlQgLS0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItaW1nLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93XCIgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmQtcHJvamVjdC1pbWdcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIUltYWdlXCIgY2xhc3M9XCJ0ZW1wLWljb25cIj5mbHV0dGVyX2Rhc2g8L21hdC1pY29uPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIkltYWdlXCIgW3NyY109XCJJbWFnZVwiIFthbHRdPVwiTmFtZVwiIHN0eWxlPVwid2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHhcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1idG4tY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiA+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiSXNFZGl0YWJsZVwiIG1hdC1pY29uLWJ1dHRvbiBpZD1cImxlZnQtaWNvblwiIChjbGljayk9XCJMZWZ0SWNvbkNsaWNrZWQoKVwiPlxuICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJJc1NoYXJlYWJsZVwiIG1hdC1pY29uLWJ1dHRvbiBpZD1cInJpZ2h0LWljb25cIiAoY2xpY2spPVwiUmlnaHRJY29uQ2xpY2tlZCgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5zaGFyZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJwcm9qZWN0LWNhcmQtaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cblxuICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwicHJvamVjdC1jYXJkLW5hbWVcIiAqbmdJZj1cIk5hbWVcIj57e05hbWV9fTwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cInByb2plY3QtY2FyZC1kZXNjcmlwdGlvblwiICpuZ0lmPVwiRGVzY3JpcHRpb25cIj57e0Rlc2NyaXB0aW9ufX08L21hdC1jYXJkLXN1YnRpdGxlPlxuXG4gICAgICA8bWF0LWNhcmQtc3VidGl0bGUgY2xhc3M9XCJwcm9qZWN0LWNhcmQtdmVyc2lvblwiICpuZ0lmPVwiVmVyc2lvblwiPkN1cnJlbnQgVmVyc2lvbjoge3tWZXJzaW9ufX08L21hdC1jYXJkLXN1YnRpdGxlPlxuXG5cbiAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cInByb2plY3QtY2FyZC1ob3N0XCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJob3N0LWFuY2hvclwiICpuZ0lmPVwiU3VidGV4dFwiIFtocmVmXT1cIidodHRwczovLycrU3VidGV4dFwiIHRhcmdldD1cIl9ibGFua1wiPnt7U3VidGV4dH19PC9hPlxuICAgICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cblxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiY2FyZC1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGVudCAgc2VsZWN0PVwiW3N0YXRzXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJwcm9tby1jb250YWluZXJcIj4gLS0+XG4gICAgICAgIDwhLS0gPG5nLWNvbnRlbnQgIHNlbGVjdD1cIltwcm9tb11cIj48L25nLWNvbnRlbnQ+IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tY29udGFpbmVyXCIgXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIiBcbiAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIFxuICAgICAgICAgIChjbGljayk9XCJVcGdyYWRlQ2xpY2tlZCgpXCJcbiAgICAgICAgICBcbiAgICAgICAgPlxuICAgICAgICBcbiAgICAgICAgPGRpdj5BY2Nlc3MgZXhjbHVzaXZlIHRvb2xzICYgaW5zaWdodHM8L2Rpdj5cblxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImdvbGQtaWNvblwiPmVtb2ppX2V2ZW50czwvbWF0LWljb24+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBncmFkZS10ZXh0XCIgKGNsaWNrKT1cIlVwZ3JhZGVDbGlja2VkKClcIj5cbiAgICAgICAgICAgIFVwZ3JhZGUgdG8gcHJlbWl1bSBub3dcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPC9kaXY+IC0tPlxuXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY3Rpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtY2FyZD5cbiAgXG4iXX0=
|