@reusa/ngx-reusa-app-lib 0.0.1308 → 0.0.1309
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/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +6 -4
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +5 -3
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +2 -0
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs
CHANGED
|
@@ -126,7 +126,7 @@ function WorkSearchEmployerComponentMS_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
126
126
|
i0.ɵɵproperty("showIcon", true)("formControl", ctx_r2.workSearchDate)("minDate", ctx_r2.sunDate)("maxDate", ctx_r2.satDate)("defaultDate", ctx_r2.sunDate)("selectOtherMonths", true)("monthNavigator", true)("yearNavigator", true);
|
|
127
127
|
i0.ɵɵadvance(1);
|
|
128
128
|
i0.ɵɵclassMap("app-grid");
|
|
129
|
-
i0.ɵɵproperty("field", ctx_r2.workSearchDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(16, _c9, "Date should be between " + ctx_r2.sunDateString + " and " + ctx_r2.
|
|
129
|
+
i0.ɵɵproperty("field", ctx_r2.workSearchDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(16, _c9, "Date should be between " + ctx_r2.sunDateString + " and " + ctx_r2.currentDateString + "."));
|
|
130
130
|
} }
|
|
131
131
|
function WorkSearchEmployerComponentMS_section_20_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
132
132
|
i0.ɵɵelementStart(0, "div")(1, "div", 6)(2, "label", 32);
|
|
@@ -348,6 +348,8 @@ export class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
348
348
|
this.isReadOnly = false;
|
|
349
349
|
this.displayJobSearchQuestions = false;
|
|
350
350
|
this.displayJobApplicationQuestions = false;
|
|
351
|
+
this.currentDate = new Date();
|
|
352
|
+
this.currentDateString = new Intl.DateTimeFormat('en-US').format(this.currentDate);
|
|
351
353
|
}
|
|
352
354
|
ngOnInit() {
|
|
353
355
|
if (!this.journal) {
|
|
@@ -399,7 +401,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
399
401
|
}
|
|
400
402
|
this.wsrForm = this.formBuilder.group({
|
|
401
403
|
'activityType': [wsr.activityType, Validators.required],
|
|
402
|
-
'workSearchDate': [wsr.workSearchDate != null ? this.getDate(wsr.workSearchDate) : '', Validators.compose([Validators.required, AppValidators.isBetween(this.sunDate, this.
|
|
404
|
+
'workSearchDate': [wsr.workSearchDate != null ? this.getDate(wsr.workSearchDate) : '', Validators.compose([Validators.required, AppValidators.isBetween(this.sunDate, this.currentDate)])],
|
|
403
405
|
'employerName': [wsr.employerName],
|
|
404
406
|
'city': [wsr.city],
|
|
405
407
|
'line1': [wsr.line1],
|
|
@@ -656,7 +658,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
656
658
|
}
|
|
657
659
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkSearchEmployerComponentMS, [{
|
|
658
660
|
type: Component,
|
|
659
|
-
args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'only letters, numbers, spaces, and . , & \\' ( ) - # are allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" maxlength=\"40\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + satDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" maxlength=\"50\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
|
|
661
|
+
args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'only letters, numbers, spaces, and . , & \\' ( ) - # are allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" maxlength=\"40\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" maxlength=\"50\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
|
|
660
662
|
}], () => [{ type: i1.WeeklyCertServiceV2 }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }], { wsrFormDirective: [{
|
|
661
663
|
type: ViewChild,
|
|
662
664
|
args: ['wsrFormDirective', { static: false }]
|
|
@@ -680,4 +682,4 @@ export class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
680
682
|
type: Input
|
|
681
683
|
}] }); })();
|
|
682
684
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkSearchEmployerComponentMS, { className: "WorkSearchEmployerComponentMS", filePath: "lib\\components\\weekly-work-search-employer-ms\\work-search-employer-ms.component.ts", lineNumber: 18 }); })();
|
|
683
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1M3QywrQkFBNkUsYUFBQSxnQkFBQTtJQUUvQyxZQUFrRDs7SUFBQSxpQkFBUTtJQUNwRiwrQ0FDb0I7SUFEOEIsc01BQVcsZUFBQSwwQkFBbUIsQ0FBQSxJQUFDO0lBQzdELGlCQUFzQjtJQUMxQywrQkFFZTtJQUNqQixpQkFBTTtJQUVOLDhCQUFtQixnQkFBQTtJ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LGlCQUFhLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7O1lBM0x0QyxrQ0FBb0IsNkNBQUE7WUFFekIsZUFDbkM7WUFEbUMscUdBQ25DO1lBQ3JCLGVBQXFCO1lBQXJCLHVDQUFxQjtZQU1XLGVBQW1EO1lBQW5ELGlGQUFtRDtZQUMvRCxlQUErQjtZQUEvQixpREFBK0IsaUNBQUE7WUFFbEMsZUFBb0I7WUFBcEIseUJBQW9CO1lBQUMsd0NBQXNCLGFBQUEsdUNBQUE7WUFLOUMsZUFBaUU7WUFBakUsMEZBQWlFO1lBMER2RCxlQUFpRTtZQUFqRSwwRkFBaUU7WUFVM0UsZUFBaUU7WUFBakUsMEZBQWlFO1lBbUdMLGVBQzNEO1lBRDJELDZEQUMzRDtZQUMyQyxlQUE0QjtZQUE1QiwwREFBNEI7OztpRkQxS2pGLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsrR0FRaEMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUloRCxPQUFPO2tCQUROLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxhQUFhO2tCQURuQixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLE9BQU87a0JBRGIsS0FBSzs7a0ZBN0JLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hFbXBsb3llckNvbXBvbmVudE1TIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQgIHtcclxuICAgXHJcbiAgQFZpZXdDaGlsZCgnd3NyRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyB3c3JGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBqb3VybmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpdml0eVR5cGVDb21ib01zID0gQ29tYm9PcHRpb24uQWN0aXZpdHlUeXBlQ29tYm9NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaE1ldGhvZENvbnRhY3RNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hNZXRob2RDb250YWN0TXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zO1xyXG4gIHB1YmxpYyBzdGF0ZXNDb21ibyA9IENvbWJvT3B0aW9uLlN0YXRlc0NvbWJvO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVjb3JkRGF0YSA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCA9IG51bGw7XHJcblxyXG4gIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIHB1YmxpYyB3c3JGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgaXNSZWFkT25seSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHdjU2VydmljZTogV2Vla2x5Q2VydFNlcnZpY2VWMiwgcHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmpvdXJuYWwpIHtcclxuICAgICAgdGhpcy5zYXREYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlKHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZSgpKVxyXG4gICAgICB0aGlzLnN1bkRhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGUodGhpcy53Y1NlcnZpY2UuZ2V0U3VuZGF5RGF0ZSgpKTtcclxuICAgICAgdGhpcy5zYXREYXRlU3RyaW5nID0gdGhpcy53Y1NlcnZpY2UuZ2V0U2F0dXJkYXlEYXRlQXNTdHJpbmcoKTtcclxuICAgICAgdGhpcy5zdW5EYXRlU3RyaW5nID0gdGhpcy53Y1NlcnZpY2UuZ2V0U3VuZGF5RGF0ZUFzU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmR5bmFtaWNQYXJhbSA9IHtcclxuICAgICAgJ3NhdHVyZGF5X2RhdGUnOiB0aGlzLnNhdERhdGVTdHJpbmcsXHJcbiAgICAgICdzdW5kYXlfZGF0ZSc6IHRoaXMuc3VuRGF0ZVN0cmluZyxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pbml0aWxpemVXb3JrU2VhcmNoRm9ybSgpO1xyXG4gICAgdGhpcy50cmltSW5wdXRIZWxwZXIoKTtcclxuICB9XHJcblxyXG4gIGRhdGVJbnB1dChldmVudCl7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlIDogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmKGN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyaW1JbnB1dEhlbHBlcigpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVtcGxveWVyRW1haWwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIGNvbnN0IHNhbml0aXplZCA9IHZhbC5yZXBsYWNlKC9cXHMrL2csICcnKTtcclxuICAgICAgICAgIGlmICh2YWwgIT09IHNhbml0aXplZCkge1xyXG4gICAgICAgICAgICB0aGlzLmVtcGxveWVyRW1haWwuc2V0VmFsdWUoc2FuaXRpemVkLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplV29ya1NlYXJjaEZvcm0oKSB7XHJcbiAgICBsZXQgd3NyOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWw7XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHdzciA9IHRoaXMuZGF0YTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yZWNvcmRJbmRleFRvRWRpdCA9PSB1bmRlZmluZWQgfHwgdGhpcy5yZWNvcmRJbmRleFRvRWRpdCA9PSBudWxsKSB7XHJcbiAgICAgIHdzciA9IG5ldyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdzciA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKClbdGhpcy5yZWNvcmRJbmRleFRvRWRpdF07XHJcbiAgICB9XHJcbiAgICB0aGlzLndzckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgJ2FjdGl2aXR5VHlwZSc6IFt3c3IuYWN0aXZpdHlUeXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ3dvcmtTZWFyY2hEYXRlJzogW3dzci53b3JrU2VhcmNoRGF0ZSAhPSBudWxsID8gdGhpcy5nZXREYXRlKHdzci53b3JrU2VhcmNoRGF0ZSkgOiAnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzQmV0d2Vlbih0aGlzLnN1bkRhdGUsIHRoaXMuc2F0RGF0ZSldKV0sXHJcbiAgICAgICdlbXBsb3llck5hbWUnOiBbd3NyLmVtcGxveWVyTmFtZV0sXHJcbiAgICAgICdjaXR5JzogW3dzci5jaXR5XSxcclxuICAgICAgJ2xpbmUxJzogW3dzci5saW5lMV0sXHJcbiAgICAgICdsaW5lMic6IFt3c3IubGluZTJdLFxyXG4gICAgICAnc3RhdGUnOiBbd3NyLnN0YXRlICE9IG51bGwgPyB3c3Iuc3RhdGUgOiBMaWJDb25zdGFudHMuU1RBVEVdLFxyXG4gICAgICAnY29udGFjdE1ldGhvZCc6IFt3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJ10sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uTmFtZSc6IFt3c3IuZW1wQ29udGFjdFBlcnNvbk5hbWVdLFxyXG4gICAgICAnZW1wQ29udGFjdFBlcnNvblRpdGxlJzogW3dzci5lbXBDb250YWN0UGVyc29uVGl0bGVdLFxyXG4gICAgICAnemlwJzogW3dzci56aXBdLFxyXG4gICAgICAnZW1wbG95ZXJQaG9uZSc6IFt3c3IuZW1wbG95ZXJQaG9uZSAhPSBudWxsID8gd3NyLmVtcGxveWVyUGhvbmUgOiAnJ10sXHJcbiAgICAgICdlbXBsb3llckVtYWlsJzogW3dzci5lbXBsb3llckVtYWlsXSxcclxuICAgICAgJ2VtcGxveWVyV2Vic2l0ZSc6IFt3c3IuZW1wbG95ZXJXZWJzaXRlXSxcclxuICAgICAgJ2VtcGxveWVyRmF4JzogW3dzci5lbXBsb3llckZheCAhPSBudWxsID8gd3NyLmVtcGxveWVyRmF4IDogJyddLFxyXG4gICAgICAncG9zaXRpb25BcHBsaWVkRm9yJzogW3dzci5wb3NpdGlvbkFwcGxpZWRGb3JdLFxyXG4gICAgICAnc2VhcmNoUmVzdWx0JzogW3dzci5zZWFyY2hSZXN1bHRdLFxyXG4gICAgICAnd2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCc6IFt3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZF0sXHJcbiAgICAgICdjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnOiBbd3NyLmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZF0sXHJcbiAgICAgICd3c3JJZCc6IFt3c3Iud3NySWRdXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAod3NyLmFjdGl2aXR5VHlwZSA9PSAnSk9BUCcpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT1NFJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCAhPSBudWxsICYmIHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC5zZXRWYWx1ZSh3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJyk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRhY3RNZXRob2QudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFjdGl2aXR5VHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odGhpcy5jb250YWN0TWV0aG9kLnZhbHVlKTtcclxuICAgICAgdGhpcy5zZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBzZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICBpZih2YWwgPT0gJ0pPQVAnICl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05XFxzXFwuLCYnKCkjLV0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMuY2l0eS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXRlKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuemlwKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbkFwcGxpZWRGb3IuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16MC05IC1dKiQvKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gICAgaWYodmFsID09ICdKT1NFJyl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05XFxzXFwuLCYnKCkjLV0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMuY2l0eS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXRlKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuemlwKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbkFwcGxpZWRGb3IuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16MC05IC1dKiQvKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udGFjdEluZm9WYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PSAnVEVMRScpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdFTUFMJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJQaG9uZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdPTkxJJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyV2Vic2l0ZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRXZWJzaXRlXSlcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnUFJTTicpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERhdGUod3NEYXRlKTogRGF0ZSB7XHJcbiAgICBpZighKHdzRGF0ZSBpbnN0YW5jZW9mIERhdGUpKXtcclxuICAgICAgcmV0dXJuIHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh3c0RhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdzRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpdml0eVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2FjdGl2aXR5VHlwZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtTZWFyY2hEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3b3JrU2VhcmNoRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRhY3RNZXRob2QoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NvbnRhY3RNZXRob2QnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wQ29udGFjdFBlcnNvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uVGl0bGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcENvbnRhY3RQZXJzb25UaXRsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snemlwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJQaG9uZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRW1haWwoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyRW1haWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llcldlYnNpdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyV2Vic2l0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRmF4KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llckZheCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uQXBwbGllZEZvcigpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1sncG9zaXRpb25BcHBsaWVkRm9yJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2VhcmNoUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzZWFyY2hSZXN1bHQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c3JJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd3NySWQnXTtcclxuICB9XHJcblxyXG4gIGFkZCgpe1xyXG4gICAgaWYodGhpcy53c3JGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy53c3JGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llclNlYXJjaFJlc3VsdCkge1xyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICAgIHRoaXMubGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgICAgdGhpcy5saW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgICB0aGlzLmNpdHkuc2V0VmFsdWUoZW1wbG95ZXIuY2l0eSk7XHJcbiAgICAgIHRoaXMuc3RhdGUuc2V0VmFsdWUoZW1wbG95ZXIuc3RhdGUudmFsdWUpO1xyXG4gICAgICB0aGlzLnppcC5zZXRWYWx1ZShlbXBsb3llci56aXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxyXG4gIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCI+XHJcbiAgPGg0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmV5KTsgcGFkZGluZy1sZWZ0OiAyMHB4O1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkuaGVhZGluZycgfFxyXG4gICAgdHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB9fTwvaDQ+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3c3JGb3JtXCIgI3dzckZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFjdGl2aXR5VHlwZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkudHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVDb21ib01zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhY3Rpdml0eVR5cGVcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwiYWN0aXZpdHlUeXBlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjdGl2aXR5VHlwZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbXBsb3llck5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyTmFtZVwiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZW1wVHlwZV09XCInUkVHJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJ29ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBhbmQgLiAsICYgXFwnICggKSAtICMgYXJlIGFsbG93ZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxpbmUxXCI+e3snd29yay5zZWFyY2guam91cm5hbC5zdHJlZXRBZGRyZXNzJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxpbmUxXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibGluZTFcIiBtYXhsZW5ndGg9XCI0MFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2xpbmUxJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsIHBhdHRlcm46ICdPbmx5IGxldHRlcnMsIG51bWJlcnMsIHNwYWNlcywgY29tbWFzLCBwZXJpb2RzLCBhcG9zdHJvcGhlcywgaHlwaGVucywgIyBhbmQgLyBhbGxvd2VkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjaXR5XCI+e3snd29yay5zZWFyY2guam91cm5hbC5jaXR5JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImNpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJjaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjaXR5JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWR3c0NpdHlMZW5ndGg6ICdDaXR5IHNob3VsZCBub3QgZXhjZWVkIGEgbGVuZ3RoIG9mIDMwIGNoYXJhY3RlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0NpdHkgbmFtZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RhdGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwic3RhdGVcIiBbb3B0aW9uc109XCJzdGF0ZXNDb21ib1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwic3RhdGVcIiBpbnB1dElkPVwic3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInppcFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuemlwJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInppcFwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInppcFwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ppcCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRMZW5ndGg6ICdaaXAgY29kZSBzaG91bGQgYmUgb2YgNSBvciA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogJ1ppcCBjb2RlIHNob3VsZCBvbmx5IGhhdmUgbnVtYmVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrU2VhcmNoRGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYXBwbGljYXRpb25EYXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIndvcmtTZWFyY2hEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndvcmtTZWFyY2hEYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIiBbc2VsZWN0T3RoZXJNb250aHNdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFxyXG4gICAgICAgICAgICAgICAgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+ICBcclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1NlYXJjaERhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIHN1bkRhdGVTdHJpbmcgKyAnIGFuZCAnICsgc2F0RGF0ZVN0cmluZyArICcuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zIHx8IGRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwb3NpdGlvbkFwcGxpZWRGb3JcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmpvYlRpdGxlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicG9zaXRpb25BcHBsaWVkRm9yXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwicG9zaXRpb25BcHBsaWVkRm9yXCIgIG1heGxlbmd0aD1cIjUwXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncG9zaXRpb25BcHBsaWVkRm9yJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdKb2IgVGl0bGUgY2FuIG9ubHkgY29udGFpbiBsZXR0ZXJzLCBzcGFjZXMsIGFuZCBoeXBoZW5zJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RNZXRob2RcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RNZXRob2QnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ3b3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFjdE1ldGhvZFwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjb250YWN0TWV0aG9kJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29udGFjdE1ldGhvZFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE1ldGhvZEpvYlNlYXJjaCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIndvcmtTZWFyY2hNZXRob2RDb250YWN0TXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250YWN0TWV0aG9kXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NvbnRhY3RNZXRob2QnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0gJ1RFTEUnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJQaG9uZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwucGhvbmVObycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cImVtcGxveWVyUGhvbmVcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJQaG9uZVwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyUGhvbmUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdFTUFMJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyRW1haWxcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmVtYWlsJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcGxveWVyRW1haWxcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llckVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbWFpbGlkQGV4YW1wbGUuY29tXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJFbWFpbCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBlbXBsb3llckVtYWlsOiAnSW52YWxpZCBlbWFpbCBhZGRyZXNzLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdPTkxJJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyV2Vic2l0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwud2Vic2l0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llcldlYnNpdGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llcldlYnNpdGVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzIC8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJXZWJzaXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWRXZWJzaXRlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgd2Vic2l0ZSBhZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0nUFJTTidcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBDb250YWN0UGVyc29uTmFtZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBDb250YWN0UGVyc29uTmFtZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcENvbnRhY3RQZXJzb25OYW1lJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09J1BSU04nXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0VGl0bGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wQ29udGFjdFBlcnNvblRpdGxlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoUmVzdWx0XCI+e3snd29yay5zZWFyY2guam91cm5hbC5yZXN1bHQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2aXR5VHlwZS52YWx1ZSA9PSdKT0FQJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZpdHlUeXBlLnZhbHVlID09J0pPU0UnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwid29ya1NlYXJjaFJlc3VsdENvbWJvSm9iU2VhcmNoTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPnt7J2J1dHRvbi5jYW5jZWwnIHxcclxuICAgICAgICAgICAgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImFkZCgpXCIgdHlwZT1cInN1Ym1pdFwiPnt7J2J1dHRvbi5hZGQnIHwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=
|
|
685
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1M3QywrQkFBNkUsYUFBQSxnQkFBQTtJQUUvQyxZQUFrRDs7SUFBQSxpQkFBUTtJQUNwRiwrQ0FDb0I7SUFEOEIsc01BQVcsZUFBQSwwQkFBbUIsQ0FBQSxJQUFDO0lBQzdELGlCQUFzQjtJQUMxQywrQkFFZTtJQUNqQixpQkFBTTtJQUVOLDhCQUFtQixnQkFBQTtJ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LEVBQUEsRUFBQTtZQUdWLGdDQUFTLG1CQUFBLHNCQUFBO1lBRW9DLCtHQUFTLFdBQU8sSUFBQztZQUFjLGFBQzNEOztZQUFBLGlCQUFhO1lBQzFCLHVDQUF3RDtZQUE5QiwrR0FBUyxTQUFLLElBQUM7WUFBZSxhQUE0Qjs7WUFBQSxpQkFBYSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUE7OztZQTNMdEMsa0NBQW9CLDZDQUFBO1lBRXpCLGVBQ25DO1lBRG1DLHFHQUNuQztZQUNyQixlQUFxQjtZQUFyQix1Q0FBcUI7WUFNVyxlQUFtRDtZQUFuRCxpRkFBbUQ7WUFDL0QsZUFBK0I7WUFBL0IsaURBQStCLGlDQUFBO1lBRWxDLGVBQW9CO1lBQXBCLHlCQUFvQjtZQUFDLHdDQUFzQixhQUFBLHVDQUFBO1lBSzlDLGVBQWlFO1lBQWpFLDBGQUFpRTtZQTBEdkQsZUFBaUU7WUFBakUsMEZBQWlFO1lBVTNFLGVBQWlFO1lBQWpFLDBGQUFpRTtZQW1HTCxlQUMzRDtZQUQyRCw2REFDM0Q7WUFDMkMsZUFBNEI7WUFBNUIsMERBQTRCOzs7aUZEMUtqRiw2QkFBNkI7Y0FOekMsU0FBUzsyQkFDRSw2QkFBNkI7K0dBUWhDLGdCQUFnQjtrQkFEdEIsU0FBUzttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJaEQsT0FBTztrQkFETixNQUFNO1lBSVAsT0FBTztrQkFETixNQUFNO1lBSUEsaUJBQWlCO2tCQUR2QixLQUFLO1lBSUMsSUFBSTtrQkFEVixLQUFLO1lBSUMsT0FBTztrQkFEYixLQUFLO1lBSUMsT0FBTztrQkFEYixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLGFBQWE7a0JBRG5CLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7O2tGQTdCSyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVBhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9CYXNlUGFnZSc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbWJvLW1vZGVsJztcclxuaW1wb3J0IHsgRW1wbG95ZXJTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrU2VhcmNoRW1wbG95ZXJDb21wb25lbnRNUyBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0ICB7XHJcbiAgIFxyXG4gIEBWaWV3Q2hpbGQoJ3dzckZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgd3NyRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRhdGE6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2F0RGF0ZTogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3VuRGF0ZTogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2F0RGF0ZVN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3VuRGF0ZVN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgam91cm5hbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZpdHlUeXBlQ29tYm9NcyA9IENvbWJvT3B0aW9uLkFjdGl2aXR5VHlwZUNvbWJvTXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hNZXRob2RDb250YWN0TXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zID0gQ29tYm9PcHRpb24uV29ya1NlYXJjaFJlc3VsdENvbWJvSm9iQXBwbGljYXRpb25NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaFJlc3VsdENvbWJvSm9iU2VhcmNoTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcztcclxuICBwdWJsaWMgc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5TdGF0ZXNDb21ibztcclxuICBwdWJsaWMgd29ya1NlYXJjaFJlY29yZERhdGEgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgPSBudWxsO1xyXG5cclxuICBkeW5hbWljUGFyYW06IGFueTtcclxuICBwdWJsaWMgd3NyRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGlzUmVhZE9ubHkgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGN1cnJlbnREYXRlU3RyaW5nID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJykuZm9ybWF0KHRoaXMuY3VycmVudERhdGUpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLCBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuam91cm5hbCkge1xyXG4gICAgICB0aGlzLnNhdERhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGUodGhpcy53Y1NlcnZpY2UuZ2V0U2F0dXJkYXlEYXRlKCkpXHJcbiAgICAgIHRoaXMuc3VuRGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh0aGlzLndjU2VydmljZS5nZXRTdW5kYXlEYXRlKCkpO1xyXG4gICAgICB0aGlzLnNhdERhdGVTdHJpbmcgPSB0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGVBc1N0cmluZygpO1xyXG4gICAgICB0aGlzLnN1bkRhdGVTdHJpbmcgPSB0aGlzLndjU2VydmljZS5nZXRTdW5kYXlEYXRlQXNTdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZHluYW1pY1BhcmFtID0ge1xyXG4gICAgICAnc2F0dXJkYXlfZGF0ZSc6IHRoaXMuc2F0RGF0ZVN0cmluZyxcclxuICAgICAgJ3N1bmRheV9kYXRlJzogdGhpcy5zdW5EYXRlU3RyaW5nLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmluaXRpbGl6ZVdvcmtTZWFyY2hGb3JtKCk7XHJcbiAgICB0aGlzLnRyaW1JbnB1dEhlbHBlcigpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KXtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYoY3VycmVudFZhbHVlKXtcclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJpbUlucHV0SGVscGVyKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJFbWFpbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgY29uc3Qgc2FuaXRpemVkID0gdmFsLnJlcGxhY2UoL1xccysvZywgJycpO1xyXG4gICAgICAgICAgaWYgKHZhbCAhPT0gc2FuaXRpemVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZXJFbWFpbC5zZXRWYWx1ZShzYW5pdGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVXb3JrU2VhcmNoRm9ybSgpIHtcclxuICAgIGxldCB3c3I6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbDtcclxuICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgd3NyID0gdGhpcy5kYXRhO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IHVuZGVmaW5lZCB8fCB0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IG51bGwpIHtcclxuICAgICAgd3NyID0gbmV3IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd3NyID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKVt0aGlzLnJlY29yZEluZGV4VG9FZGl0XTtcclxuICAgIH1cclxuICAgIHRoaXMud3NyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnYWN0aXZpdHlUeXBlJzogW3dzci5hY3Rpdml0eVR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnd29ya1NlYXJjaERhdGUnOiBbd3NyLndvcmtTZWFyY2hEYXRlICE9IG51bGwgPyB0aGlzLmdldERhdGUod3NyLndvcmtTZWFyY2hEYXRlKSA6ICcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNCZXR3ZWVuKHRoaXMuc3VuRGF0ZSwgdGhpcy5jdXJyZW50RGF0ZSldKV0sXHJcbiAgICAgICdlbXBsb3llck5hbWUnOiBbd3NyLmVtcGxveWVyTmFtZV0sXHJcbiAgICAgICdjaXR5JzogW3dzci5jaXR5XSxcclxuICAgICAgJ2xpbmUxJzogW3dzci5saW5lMV0sXHJcbiAgICAgICdsaW5lMic6IFt3c3IubGluZTJdLFxyXG4gICAgICAnc3RhdGUnOiBbd3NyLnN0YXRlICE9IG51bGwgPyB3c3Iuc3RhdGUgOiBMaWJDb25zdGFudHMuU1RBVEVdLFxyXG4gICAgICAnY29udGFjdE1ldGhvZCc6IFt3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJ10sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uTmFtZSc6IFt3c3IuZW1wQ29udGFjdFBlcnNvbk5hbWVdLFxyXG4gICAgICAnZW1wQ29udGFjdFBlcnNvblRpdGxlJzogW3dzci5lbXBDb250YWN0UGVyc29uVGl0bGVdLFxyXG4gICAgICAnemlwJzogW3dzci56aXBdLFxyXG4gICAgICAnZW1wbG95ZXJQaG9uZSc6IFt3c3IuZW1wbG95ZXJQaG9uZSAhPSBudWxsID8gd3NyLmVtcGxveWVyUGhvbmUgOiAnJ10sXHJcbiAgICAgICdlbXBsb3llckVtYWlsJzogW3dzci5lbXBsb3llckVtYWlsXSxcclxuICAgICAgJ2VtcGxveWVyV2Vic2l0ZSc6IFt3c3IuZW1wbG95ZXJXZWJzaXRlXSxcclxuICAgICAgJ2VtcGxveWVyRmF4JzogW3dzci5lbXBsb3llckZheCAhPSBudWxsID8gd3NyLmVtcGxveWVyRmF4IDogJyddLFxyXG4gICAgICAncG9zaXRpb25BcHBsaWVkRm9yJzogW3dzci5wb3NpdGlvbkFwcGxpZWRGb3JdLFxyXG4gICAgICAnc2VhcmNoUmVzdWx0JzogW3dzci5zZWFyY2hSZXN1bHRdLFxyXG4gICAgICAnd2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCc6IFt3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZF0sXHJcbiAgICAgICdjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnOiBbd3NyLmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZF0sXHJcbiAgICAgICd3c3JJZCc6IFt3c3Iud3NySWRdXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAod3NyLmFjdGl2aXR5VHlwZSA9PSAnSk9BUCcpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT1NFJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCAhPSBudWxsICYmIHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC5zZXRWYWx1ZSh3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJyk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRhY3RNZXRob2QudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFjdGl2aXR5VHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odGhpcy5jb250YWN0TWV0aG9kLnZhbHVlKTtcclxuICAgICAgdGhpcy5zZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBzZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICBpZih2YWwgPT0gJ0pPQVAnICl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05XFxzXFwuLCYnKCkjLV0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMuY2l0eS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXRlKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuemlwKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbkFwcGxpZWRGb3IuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16MC05IC1dKiQvKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gICAgaWYodmFsID09ICdKT1NFJyl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05XFxzXFwuLCYnKCkjLV0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMuY2l0eS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXRlKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuemlwKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbkFwcGxpZWRGb3IuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16MC05IC1dKiQvKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udGFjdEluZm9WYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PSAnVEVMRScpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdFTUFMJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJQaG9uZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdPTkxJJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyV2Vic2l0ZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRXZWJzaXRlXSlcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnUFJTTicpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERhdGUod3NEYXRlKTogRGF0ZSB7XHJcbiAgICBpZighKHdzRGF0ZSBpbnN0YW5jZW9mIERhdGUpKXtcclxuICAgICAgcmV0dXJuIHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh3c0RhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdzRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpdml0eVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2FjdGl2aXR5VHlwZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtTZWFyY2hEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3b3JrU2VhcmNoRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRhY3RNZXRob2QoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NvbnRhY3RNZXRob2QnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wQ29udGFjdFBlcnNvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uVGl0bGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcENvbnRhY3RQZXJzb25UaXRsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snemlwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJQaG9uZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRW1haWwoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyRW1haWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llcldlYnNpdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyV2Vic2l0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRmF4KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llckZheCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uQXBwbGllZEZvcigpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1sncG9zaXRpb25BcHBsaWVkRm9yJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2VhcmNoUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzZWFyY2hSZXN1bHQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c3JJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd3NySWQnXTtcclxuICB9XHJcblxyXG4gIGFkZCgpe1xyXG4gICAgaWYodGhpcy53c3JGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy53c3JGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llclNlYXJjaFJlc3VsdCkge1xyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICAgIHRoaXMubGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgICAgdGhpcy5saW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgICB0aGlzLmNpdHkuc2V0VmFsdWUoZW1wbG95ZXIuY2l0eSk7XHJcbiAgICAgIHRoaXMuc3RhdGUuc2V0VmFsdWUoZW1wbG95ZXIuc3RhdGUudmFsdWUpO1xyXG4gICAgICB0aGlzLnppcC5zZXRWYWx1ZShlbXBsb3llci56aXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxyXG4gIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCI+XHJcbiAgPGg0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmV5KTsgcGFkZGluZy1sZWZ0OiAyMHB4O1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkuaGVhZGluZycgfFxyXG4gICAgdHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB9fTwvaDQ+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3c3JGb3JtXCIgI3dzckZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFjdGl2aXR5VHlwZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkudHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVDb21ib01zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhY3Rpdml0eVR5cGVcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwiYWN0aXZpdHlUeXBlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjdGl2aXR5VHlwZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbXBsb3llck5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyTmFtZVwiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZW1wVHlwZV09XCInUkVHJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJ29ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBhbmQgLiAsICYgXFwnICggKSAtICMgYXJlIGFsbG93ZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxpbmUxXCI+e3snd29yay5zZWFyY2guam91cm5hbC5zdHJlZXRBZGRyZXNzJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxpbmUxXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibGluZTFcIiBtYXhsZW5ndGg9XCI0MFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2xpbmUxJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsIHBhdHRlcm46ICdPbmx5IGxldHRlcnMsIG51bWJlcnMsIHNwYWNlcywgY29tbWFzLCBwZXJpb2RzLCBhcG9zdHJvcGhlcywgaHlwaGVucywgIyBhbmQgLyBhbGxvd2VkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjaXR5XCI+e3snd29yay5zZWFyY2guam91cm5hbC5jaXR5JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImNpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJjaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjaXR5JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWR3c0NpdHlMZW5ndGg6ICdDaXR5IHNob3VsZCBub3QgZXhjZWVkIGEgbGVuZ3RoIG9mIDMwIGNoYXJhY3RlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0NpdHkgbmFtZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RhdGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwic3RhdGVcIiBbb3B0aW9uc109XCJzdGF0ZXNDb21ib1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwic3RhdGVcIiBpbnB1dElkPVwic3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInppcFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuemlwJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInppcFwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInppcFwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ppcCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRMZW5ndGg6ICdaaXAgY29kZSBzaG91bGQgYmUgb2YgNSBvciA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogJ1ppcCBjb2RlIHNob3VsZCBvbmx5IGhhdmUgbnVtYmVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrU2VhcmNoRGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYXBwbGljYXRpb25EYXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIndvcmtTZWFyY2hEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndvcmtTZWFyY2hEYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIiBbc2VsZWN0T3RoZXJNb250aHNdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFxyXG4gICAgICAgICAgICAgICAgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+ICBcclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1NlYXJjaERhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIHN1bkRhdGVTdHJpbmcgKyAnIGFuZCAnICsgY3VycmVudERhdGVTdHJpbmcgKyAnLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zaXRpb25BcHBsaWVkRm9yXCI+e3snd29yay5zZWFyY2guam91cm5hbC5qb2JUaXRsZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBvc2l0aW9uQXBwbGllZEZvclwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInBvc2l0aW9uQXBwbGllZEZvclwiICBtYXhsZW5ndGg9XCI1MFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3Bvc2l0aW9uQXBwbGllZEZvcicgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBwYXR0ZXJuOiAnSm9iIFRpdGxlIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycywgc3BhY2VzLCBhbmQgaHlwaGVucydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0TWV0aG9kXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0TWV0aG9kJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwid29ya1NlYXJjaE1ldGhvZENvbnRhY3RNc1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRhY3RNZXRob2RcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nY29udGFjdE1ldGhvZCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RNZXRob2RcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RNZXRob2RKb2JTZWFyY2gnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ3b3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFjdE1ldGhvZFwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjb250YWN0TWV0aG9kJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdURUxFJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyUGhvbmVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnBob25lTm8nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtaW5wdXRNYXNrIGlucHV0SWQ9XCJlbXBsb3llclBob25lXCIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyUGhvbmVcIiBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIlxyXG4gICAgICAgICAgICAgICAgICB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llclBob25lJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSAnRU1BTCdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llckVtYWlsXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbWFpbCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llckVtYWlsXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZW1haWxpZEBleGFtcGxlLmNvbVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyRW1haWwnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgZW1wbG95ZXJFbWFpbDogJ0ludmFsaWQgZW1haWwgYWRkcmVzcy4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSAnT05MSSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llcldlYnNpdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLndlYnNpdGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wbG95ZXJXZWJzaXRlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJXZWJzaXRlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycyAvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyV2Vic2l0ZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkV2Vic2l0ZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHdlYnNpdGUgYWRkcmVzcydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09J1BSU04nXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3ROYW1lJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcENvbnRhY3RQZXJzb25OYW1lXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBDb250YWN0UGVyc29uTmFtZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSdQUlNOJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdFRpdGxlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcENvbnRhY3RQZXJzb25UaXRsZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaFJlc3VsdFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwucmVzdWx0JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpdml0eVR5cGUudmFsdWUgPT0nSk9BUCdcIj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJ3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCIgaW5wdXRJZD1cInNlYXJjaFJlc3VsdFwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VhcmNoUmVzdWx0JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2aXR5VHlwZS52YWx1ZSA9PSdKT1NFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCIgaW5wdXRJZD1cInNlYXJjaFJlc3VsdFwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VhcmNoUmVzdWx0JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIj57eydidXR0b24uY2FuY2VsJyB8XHJcbiAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIj57eydidXR0b24uYWRkJyB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+XHJcbjwvcC1kaWFsb2c+Il19
|
|
@@ -47081,7 +47081,7 @@ function WorkSearchEmployerComponentMS_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
47081
47081
|
i0.ɵɵproperty("showIcon", true)("formControl", ctx_r2.workSearchDate)("minDate", ctx_r2.sunDate)("maxDate", ctx_r2.satDate)("defaultDate", ctx_r2.sunDate)("selectOtherMonths", true)("monthNavigator", true)("yearNavigator", true);
|
|
47082
47082
|
i0.ɵɵadvance(1);
|
|
47083
47083
|
i0.ɵɵclassMap("app-grid");
|
|
47084
|
-
i0.ɵɵproperty("field", ctx_r2.workSearchDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(16, _c9$1, "Date should be between " + ctx_r2.sunDateString + " and " + ctx_r2.
|
|
47084
|
+
i0.ɵɵproperty("field", ctx_r2.workSearchDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(16, _c9$1, "Date should be between " + ctx_r2.sunDateString + " and " + ctx_r2.currentDateString + "."));
|
|
47085
47085
|
} }
|
|
47086
47086
|
function WorkSearchEmployerComponentMS_section_20_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
47087
47087
|
i0.ɵɵelementStart(0, "div")(1, "div", 6)(2, "label", 32);
|
|
@@ -47303,6 +47303,8 @@ class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
47303
47303
|
this.isReadOnly = false;
|
|
47304
47304
|
this.displayJobSearchQuestions = false;
|
|
47305
47305
|
this.displayJobApplicationQuestions = false;
|
|
47306
|
+
this.currentDate = new Date();
|
|
47307
|
+
this.currentDateString = new Intl.DateTimeFormat('en-US').format(this.currentDate);
|
|
47306
47308
|
}
|
|
47307
47309
|
ngOnInit() {
|
|
47308
47310
|
if (!this.journal) {
|
|
@@ -47354,7 +47356,7 @@ class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
47354
47356
|
}
|
|
47355
47357
|
this.wsrForm = this.formBuilder.group({
|
|
47356
47358
|
'activityType': [wsr.activityType, Validators.required],
|
|
47357
|
-
'workSearchDate': [wsr.workSearchDate != null ? this.getDate(wsr.workSearchDate) : '', Validators.compose([Validators.required, AppValidators$1.isBetween(this.sunDate, this.
|
|
47359
|
+
'workSearchDate': [wsr.workSearchDate != null ? this.getDate(wsr.workSearchDate) : '', Validators.compose([Validators.required, AppValidators$1.isBetween(this.sunDate, this.currentDate)])],
|
|
47358
47360
|
'employerName': [wsr.employerName],
|
|
47359
47361
|
'city': [wsr.city],
|
|
47360
47362
|
'line1': [wsr.line1],
|
|
@@ -47611,7 +47613,7 @@ class WorkSearchEmployerComponentMS extends BasePage {
|
|
|
47611
47613
|
}
|
|
47612
47614
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkSearchEmployerComponentMS, [{
|
|
47613
47615
|
type: Component,
|
|
47614
|
-
args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'only letters, numbers, spaces, and . , & \\' ( ) - # are allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" maxlength=\"40\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + satDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" maxlength=\"50\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
|
|
47616
|
+
args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'only letters, numbers, spaces, and . , & \\' ( ) - # are allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" maxlength=\"40\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" maxlength=\"50\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
|
|
47615
47617
|
}], () => [{ type: WeeklyCertServiceV2 }, { type: i1$4.UntypedFormBuilder }, { type: UtilService }], { wsrFormDirective: [{
|
|
47616
47618
|
type: ViewChild,
|
|
47617
47619
|
args: ['wsrFormDirective', { static: false }]
|