@ieeesa-npm/events-and-meetings 0.3.7 → 0.4.0
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/create-modify-meeting/create-modify-meeting.component.mjs +3 -3
- package/esm2022/lib/events-and-meetings.component.mjs +1 -1
- package/esm2022/lib/services/events-and-meetings.service.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ieeesa-npm-events-and-meetings.mjs +2 -2
- package/fesm2022/ieeesa-npm-events-and-meetings.mjs.map +1 -1
- package/lib/events-and-meetings.component.d.ts +1 -1
- package/lib/services/events-and-meetings.service.d.ts +1 -2
- package/package.json +1 -1
- package/esm2022/lib/models/route-config.model.mjs +0 -2
- package/lib/models/route-config.model.d.ts +0 -6
|
@@ -1020,7 +1020,7 @@ export class CreateModifyMeetingComponent {
|
|
|
1020
1020
|
}
|
|
1021
1021
|
}
|
|
1022
1022
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyMeetingComponent, deps: [{ token: i1.AlertsService }, { token: i2.EventsAndMeetingsService }, { token: i1.CountryAndTimezoneService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1023
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyMeetingComponent, isStandalone: true, selector: "ieeesa-create-modify-meeting", outputs: { formCancel: "formCancel", formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"ieeesa-create-update-meeting-container\">\r\n <ieeesa-dynamic-form\r\n class=\"ieeesa-create-update-meeting-form\"\r\n *ngIf=\"createOrUpdateMeetingFormGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [isLegendVisible]=\"true\"\r\n [colWidth]=\"colWidth\"\r\n [formGroups]=\"createOrUpdateMeetingFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event)\"\r\n (formGroupsReference)=\"getMeetingFormGroupRef($event)\"\r\n (formLeftButtonClicked)=\"createMeetingCancelled()\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event); onMeetingFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n (formDateSelected)=\"selectedDate($event)\"\r\n (formTimeSelected)=\"formTimeSelected($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n ></ieeesa-dynamic-form>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-create-update-meeting-container{border:1px solid #b2b7be;border-top:none;padding-top:.625em}.ieeesa-meeting{background-color:#fff;padding:1em 1.5em 0;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form{margin:0 1.25em 1.25em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__form-field{margin-bottom:16px;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__legend{margin-bottom:16px!important;padding:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset{margin-bottom:32px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset:last-of-type{margin-bottom:48px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--focused,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date{width:70%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .ieeesa-datepicker,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .ieeesa-datepicker{min-width:unset}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix{position:relative;top:3px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mdc-text-field{border:none}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mat-mdc-form-field{position:relative;bottom:7px}@media (min-width: 767px){.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password{width:30%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .ieeesa-text-area-field{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time{width:21%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper{width:41%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-modal .ieeesa-create-update-meeting-form .start-date,.ieeesa-modal .ieeesa-create-update-meeting-form .end-date,.ieeesa-modal .ieeesa-create-update-meeting-form .start-time,.ieeesa-modal .ieeesa-create-update-meeting-form .end-time{width:20%}}.cdk-overlay-container:has(.ieeesa-add-meeting-form){z-index:1000}.timepicker-backdrop-overlay,.timepicker-overlay{z-index:1001!important}.ieeesa-alert-dialog{margin-top:10%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatExpansionModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1023
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyMeetingComponent, isStandalone: true, selector: "ieeesa-create-modify-meeting", outputs: { formCancel: "formCancel", formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"ieeesa-create-update-meeting-container\">\r\n <ieeesa-dynamic-form\r\n class=\"ieeesa-create-update-meeting-form\"\r\n *ngIf=\"createOrUpdateMeetingFormGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [isLegendVisible]=\"true\"\r\n [colWidth]=\"colWidth\"\r\n [formGroups]=\"createOrUpdateMeetingFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event)\"\r\n (formGroupsReference)=\"getMeetingFormGroupRef($event)\"\r\n (formLeftButtonClicked)=\"createMeetingCancelled()\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event); onMeetingFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n (formDateSelected)=\"selectedDate($event)\"\r\n (formTimeSelected)=\"formTimeSelected($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n ></ieeesa-dynamic-form>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-create-update-meeting-container{border:1px solid #b2b7be;border-top:none;padding-top:.625em}.ieeesa-meeting{background-color:#fff;padding:1em 1.5em 0;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form{margin:0 1.25em 1.25em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__form-field{margin-bottom:16px;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__legend{margin-bottom:16px!important;padding:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset{margin-bottom:32px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset:last-of-type{margin-bottom:48px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--focused,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field{border:1px solid #49454f;border-radius:4px;padding-left:.625em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date{width:70%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .ieeesa-datepicker,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .ieeesa-datepicker{min-width:unset}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-icon-button,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-icon-button{width:35px;height:40px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix{position:relative;top:3px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mdc-text-field{border:none}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mat-mdc-form-field{position:relative;bottom:7px}@media (min-width: 767px){.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password{width:30%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .ieeesa-text-area-field{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time{width:20%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper{width:41%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-modal .ieeesa-create-update-meeting-form .start-date,.ieeesa-modal .ieeesa-create-update-meeting-form .end-date,.ieeesa-modal .ieeesa-create-update-meeting-form .start-time,.ieeesa-modal .ieeesa-create-update-meeting-form .end-time{width:20%}}.cdk-overlay-container:has(.ieeesa-add-meeting-form){z-index:1000}.timepicker-backdrop-overlay,.timepicker-overlay{z-index:1001!important}.ieeesa-alert-dialog{margin-top:10%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatExpansionModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1024
1024
|
}
|
|
1025
1025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyMeetingComponent, decorators: [{
|
|
1026
1026
|
type: Component,
|
|
@@ -1030,7 +1030,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1030
1030
|
MatFormFieldModule,
|
|
1031
1031
|
MatInputModule,
|
|
1032
1032
|
MatExpansionModule,
|
|
1033
|
-
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-create-update-meeting-container\">\r\n <ieeesa-dynamic-form\r\n class=\"ieeesa-create-update-meeting-form\"\r\n *ngIf=\"createOrUpdateMeetingFormGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [isLegendVisible]=\"true\"\r\n [colWidth]=\"colWidth\"\r\n [formGroups]=\"createOrUpdateMeetingFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event)\"\r\n (formGroupsReference)=\"getMeetingFormGroupRef($event)\"\r\n (formLeftButtonClicked)=\"createMeetingCancelled()\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event); onMeetingFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n (formDateSelected)=\"selectedDate($event)\"\r\n (formTimeSelected)=\"formTimeSelected($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n ></ieeesa-dynamic-form>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-create-update-meeting-container{border:1px solid #b2b7be;border-top:none;padding-top:.625em}.ieeesa-meeting{background-color:#fff;padding:1em 1.5em 0;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form{margin:0 1.25em 1.25em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__form-field{margin-bottom:16px;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__legend{margin-bottom:16px!important;padding:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset{margin-bottom:32px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset:last-of-type{margin-bottom:48px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--focused,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date{width:70%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .ieeesa-datepicker,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .ieeesa-datepicker{min-width:unset}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix{position:relative;top:3px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mdc-text-field{border:none}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mat-mdc-form-field{position:relative;bottom:7px}@media (min-width: 767px){.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password{width:30%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .ieeesa-text-area-field{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time{width:21%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper{width:41%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-modal .ieeesa-create-update-meeting-form .start-date,.ieeesa-modal .ieeesa-create-update-meeting-form .end-date,.ieeesa-modal .ieeesa-create-update-meeting-form .start-time,.ieeesa-modal .ieeesa-create-update-meeting-form .end-time{width:20%}}.cdk-overlay-container:has(.ieeesa-add-meeting-form){z-index:1000}.timepicker-backdrop-overlay,.timepicker-overlay{z-index:1001!important}.ieeesa-alert-dialog{margin-top:10%!important}\n"] }]
|
|
1033
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-create-update-meeting-container\">\r\n <ieeesa-dynamic-form\r\n class=\"ieeesa-create-update-meeting-form\"\r\n *ngIf=\"createOrUpdateMeetingFormGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [isLegendVisible]=\"true\"\r\n [colWidth]=\"colWidth\"\r\n [formGroups]=\"createOrUpdateMeetingFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event)\"\r\n (formGroupsReference)=\"getMeetingFormGroupRef($event)\"\r\n (formLeftButtonClicked)=\"createMeetingCancelled()\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event); onMeetingFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n (formDateSelected)=\"selectedDate($event)\"\r\n (formTimeSelected)=\"formTimeSelected($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n ></ieeesa-dynamic-form>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-create-update-meeting-container{border:1px solid #b2b7be;border-top:none;padding-top:.625em}.ieeesa-meeting{background-color:#fff;padding:1em 1.5em 0;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form{margin:0 1.25em 1.25em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__form-field{margin-bottom:16px;padding-top:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__legend{margin-bottom:16px!important;padding:0!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset{margin-bottom:32px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form__fieldset:last-of-type{margin-bottom:48px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field--focused,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mdc-text-field{border:1px solid #49454f;border-radius:4px;padding-left:.625em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-name .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .address .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-link .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ip-address-range .mat-mdc-form-field{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date{width:70%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .ieeesa-datepicker,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .ieeesa-datepicker{min-width:unset}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date .mat-mdc-icon-button,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date .mat-mdc-icon-button{width:35px;height:40px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition .mat-mdc-form-field-infix{position:relative;top:3px}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mdc-text-field__input,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field ::placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-select-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-datepicker__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-time-picker-field__label,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mdc-text-field{border:none}.ieeesa-create-update-meeting-form .edition.ieeesa-dynamic-form__form-field .mat-mdc-form-field{position:relative;bottom:7px}@media (min-width: 767px){.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .related-group,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .meeting-type,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .edition,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .country,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .set-meeting-password{width:30%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .facilitator .ieeesa-text-area-field{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-date,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .start-time,.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .end-time{width:20%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone{width:60%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .time-zone .mat-mdc-text-field-wrapper{width:41%}.ieeesa-create-update-meeting-form .ieeesa-dynamic-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-modal .ieeesa-create-update-meeting-form .start-date,.ieeesa-modal .ieeesa-create-update-meeting-form .end-date,.ieeesa-modal .ieeesa-create-update-meeting-form .start-time,.ieeesa-modal .ieeesa-create-update-meeting-form .end-time{width:20%}}.cdk-overlay-container:has(.ieeesa-add-meeting-form){z-index:1000}.timepicker-backdrop-overlay,.timepicker-overlay{z-index:1001!important}.ieeesa-alert-dialog{margin-top:10%!important}\n"] }]
|
|
1034
1034
|
}], ctorParameters: function () { return [{ type: i1.AlertsService }, { type: i2.EventsAndMeetingsService }, { type: i1.CountryAndTimezoneService }]; }, propDecorators: { dynamicFormComponent: [{
|
|
1035
1035
|
type: ViewChild,
|
|
1036
1036
|
args: [DynamicFormComponent]
|
|
@@ -1039,4 +1039,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1039
1039
|
}], formSubmit: [{
|
|
1040
1040
|
type: Output
|
|
1041
1041
|
}] } });
|
|
1042
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1tZWV0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2ZW50cy1hbmQtbWVldGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1tb2RpZnktbWVldGluZy9jcmVhdGUtbW9kaWZ5LW1lZXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZlbnRzLWFuZC1tZWV0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1tZWV0aW5nL2NyZWF0ZS1tb2RpZnktbWVldGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUNMLGVBQWUsRUFFZixTQUFTLEVBQ1QsWUFBWSxFQU1aLG9CQUFvQixHQUdyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUF3QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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b24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy1hbmQtbWVldGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGaWVsZENvbmZpZyxcclxuICBBbGlnblR5cGUsXHJcbiAgQ2FsZW5kYXJUeXBlLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIEZvcm1HcmlkLFxyXG4gIFNlbGVjdE9wdGlvbixcclxuICBTZWxlY3RlZFRpbWUsXHJcbiAgU2VsZWN0ZWREYXRlLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gIEZvcm1Nb2RlbCxcclxuICBTZWxlY3RPcGVuZWRTdGF0ZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnMgfSBmcm9tICcuLi8uLi9hc3NldHMvZm9ybS12YWxpZGF0aW9ucyc7XHJcbmltcG9ydCB7IERhdGVGb3JtYXRzIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2RhdGUtZm9ybWF0cyc7XHJcbmltcG9ydCB7IENyZWF0ZU9yRWRpdE1lZXRpbmdQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1tZWV0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXN0YXR1cy5tb2RlbCc7XHJcbmltcG9ydCB7IEdldEdyb3VwUmVzcG9uc2UsIEdyb3VwSW5mbyB9IGZyb20gJ0BpZWVlc2EtbnBtL3NoYXJlZCc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgQ291bnRyeUFuZFRpbWV6b25lU2VydmljZSxcclxuICBkYXRlQW5kVGltZVZhbGlkYXRvcixcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBCdXNpbmVzc1J1bGUsXHJcbiAgTWVldGluZ1R5cGVDb25maWd1cmF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9tZWV0aW5nLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kZWVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGVlLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1tZWV0aW5nLWZ1bmN0aW9uLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgTWVldGluZ0RldGFpbHNDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctbWVldGluZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZPUk1fQ09OVFJPTFMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9scy5tb2RlbCc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBFdmVudERldGFpbHNDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudERhdGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWNyZWF0ZS1tb2RpZnktbWVldGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1tb2RpZnktbWVldGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW1vZGlmeS1tZWV0aW5nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICBhY3Rpb25CdXR0b25BbGlnbiA9IEFsaWduVHlwZS5MRUZUO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0czogYW55ID0gdGhpcy5jb25zdGFudHM/LmNyZWF0ZU9yTW9kaWZ5TWVldGluZztcclxuICBjb2xXaWR0aDogRm9ybUdyaWQgPSB7IHhzOiAxMiwgeGw6IDEyLCBzbTogMTIsIG1kOiAxMiwgbGc6IDEyIH07XHJcbiAgY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwITogRm9ybU1vZGVsO1xyXG4gIGdyb3VwczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBtZWV0aW5nVHlwZXM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgY291bnRyaWVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgdGltZXpvbmVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgZGVmYXVsdFRpbWVab25lcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlZmF1bHRDb3VudHJpZXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBkZWZhdWx0R3JvdXBzOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGlzTWVldGluZ0Zvcm1JbnZhbGlkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRBdHRlbmRlZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGxlZnRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5sZWZ0QnV0dG9uTGFiZWw7XHJcbiAgcmlnaHRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5yaWdodEJ1dHRvbkxhYmVsO1xyXG4gIGNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAhOiBGb3JtR3JvdXBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG1lZXRpbmdUeXBlUHJldmlvdXNWYWx1ZSE6IFNlbGVjdE9wdGlvbjtcclxuICBtZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb24hOiBNZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb25bXSB8IG51bGw7XHJcbiAgaW52YWxpZEZvcm1Db250cm9sczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZE1lZXRpbmdJZCE6IHN0cmluZztcclxuICBldmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUhOiBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGU7XHJcbiAgc2VsZWN0ZWRNZWV0aW5nRGF0YSE6IE1lZXRpbmdEZXRhaWxzQ29uZmlndXJhdGlvbjtcclxuICBhdHRlbmRlZXNUeXBlczogQ2hlY2tib3hPcHRpb25bXSA9IHRoaXMuY29uc3RhbnRzPy5hdHRlbmRlZXNUeXBlO1xyXG4gIGlzU3RhbmRhbG9uZU1lZXRpbmcgPSB0cnVlO1xyXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc2VsZWN0ZWRFdmVudERhdGEhOiBFdmVudERldGFpbHNDb25maWd1cmF0aW9uIHwgRXZlbnREYXRlcyB8IG51bGw7XHJcbiAgZXZlbnRTdGFydERhdGUhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgZXZlbnRFbmREYXRlITogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNZWV0aW5nQ29tcG9uZW50LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlOiBFdmVudHNBbmRNZWV0aW5nc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY291bnRyeUFuZFRpbWV6b25lU2VydmljZTogQ291bnRyeUFuZFRpbWV6b25lU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmRlZmF1bHRDb3VudHJpZXMgPVxyXG4gICAgICB0aGlzLmNvdW50cnlBbmRUaW1lem9uZVNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCk7XHJcbiAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZGVmYXVsdFRpbWVab25lcyA9XHJcbiAgICAgIHRoaXMuY291bnRyeUFuZFRpbWV6b25lU2VydmljZS5nZXRVVENUaW1lem9uZU9wdGlvbnMoKTtcclxuICAgIHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKCk7XHJcbiAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLm1hcCgoYXR0ZW5kZWUpID0+IHtcclxuICAgICAgYXR0ZW5kZWUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICBhdHRlbmRlZS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgcmVsYXRlZCBncm91cHMsIG1lZXRpbmcgdHlwZSBhbmQgY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEdyb3VwcygpO1xyXG4gICAgdGhpcy5nZXRNZWV0aW5nVHlwZXMoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nSWQgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRNZWV0aW5nSWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnREYXRhID1cclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmdldFNlbGVjdGVkRXZlbnREYXRhKCk7XHJcbiAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnZpZXdNZWV0aW5nRGV0YWlscyh0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRNZWV0aW5nSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBMb2FkcyBncm91cHMgdXNpbmcgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBHZXRHcm91cFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXM/LmJvZHk/LmZvckVhY2goKGdyb3VwOiBHcm91cEluZm8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBncm91cD8uZ3JvdXBJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBgJHtncm91cD8uZ3JvdXBOYW1lfSAtICR7Z3JvdXA/Lmdyb3VwQWNyb255bX1gLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0R3JvdXBzID0gdGhpcy5ncm91cHM7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICdyZWxhdGVkR3JvdXAnLFxyXG4gICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc29ydE9wdGlvbnModGhpcy5ncm91cHMpLFxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMF1cclxuICAgICAgICAgICAgLmdldCgncmVsYXRlZEdyb3VwJylcclxuICAgICAgICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICB0aGlzLmdyb3Vwcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5ncm91cElkXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIExvYWRzIG1lZXRpbmcgdHlwZXMgYW5kIGJ1c2luZXNzIHJ1bGVzIHVzaW5nIGV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0TWVldGluZ1R5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldE1lZXRpbmdUeXBlcygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHJlcz8uYm9keT8uZm9yRWFjaCgobWVldGluZ1R5cGU6IE1lZXRpbmdUeXBlQ29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVldGluZ1R5cGVzPy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBtZWV0aW5nVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IG1lZXRpbmdUeXBlPy5jb25maWdGaWVsZFZhbHVlPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubWVldGluZ1R5cGVDb25maWd1cmF0aW9uID0gcmVzPy5ib2R5O1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICAgJ21lZXRpbmdUeXBlJyxcclxuICAgICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcyxcclxuICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgICAgICAgICAgLmdldCgnbWVldGluZ1R5cGUnKVxyXG4gICAgICAgICAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAobWVldGluZ190eXBlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIG1lZXRpbmdfdHlwZS5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nVHlwZVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcy9hZGRzIGFwcHJvcHJpYXRlIGZvcm0gZWxlbWVudHMgYmFzZWQgb24gc2VsZWN0ZWQgbWVldGluZyB0eXBlXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybUdyb3Vwc1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKGZvcm1Hcm91cHM6IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAgPSBmb3JtR3JvdXBzO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5mb3JFYWNoKChmb3JtR3JvdXApID0+IHtcclxuICAgICAgaWYgKGZvcm1Hcm91cD8uY29udHJvbHMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChjb250cm9sPy5kaXJ0eSB8fCBjb250cm9sPy50b3VjaGVkKSAmJlxyXG4gICAgICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXHJcbiAgICAgICAgICAgICF0aGlzLmludmFsaWRGb3JtQ29udHJvbHMuaW5jbHVkZXMoY29udHJvbE5hbWUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5pbnZhbGlkRm9ybUNvbnRyb2xzLnB1c2goY29udHJvbE5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG1lZXRpbmdUeXBlQ29udHJvbCA9XHJcbiAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoJ21lZXRpbmdUeXBlJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgICFtZWV0aW5nVHlwZUNvbnRyb2w/LnByaXN0aW5lICYmXHJcbiAgICAgICh0aGlzLm1lZXRpbmdUeXBlUHJldmlvdXNWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdGhpcy5tZWV0aW5nVHlwZVByZXZpb3VzVmFsdWUgIT09IG1lZXRpbmdUeXBlQ29udHJvbD8udmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5tZWV0aW5nVHlwZVByZXZpb3VzVmFsdWUgPSBtZWV0aW5nVHlwZUNvbnRyb2w/LnZhbHVlO1xyXG4gICAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgdGhpcy51cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBtZWV0aW5nIGZvcm0gd2l0aCBjcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXBcclxuICAgKiB0aW1lem9uZSwgY291bnRyeSBhbmQgYXR0ZW5kZWV0eXBlcyBhcmUgbm90IHJlcXVpcmVkIGZvciBub24tc3RhbmRhbG9uZSBtZWV0aW5nXHJcbiAgICogYXMgdGhvc2UgZmllbGRzIGFyZSBjb25zaWRlcmVkIGF0IGV2ZW50IGNyZWF0aW9uIGZvcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEV2ZW50U3RhcnRBbmRFbmREYXRlKCk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cCA9IHtcclxuICAgICAgZm9ybUdyb3VwOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sZWdlbmQ/LmJhc2ljRGV0YWlscyxcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LnJlbGF0ZWRHcm91cCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdyb3Vwcz8uZmluZChcclxuICAgICAgICAgICAgICAgIChncm91cFR5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgIGdyb3VwVHlwZT8uaWQgPT09XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQXHJcbiAgICAgICAgICAgICAgICAgICk/LnZhbHVlPy5pZFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8ucmVsYXRlZEdyb3VwLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICBpc1NlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIG5hbWU6IEZPUk1fQ09OVFJPTFMuTUVFVElOR19OQU1FLFxyXG4gICAgICAgICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5tZWV0aW5nTmFtZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5NRUVUSU5HX05BTUUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfTkFNRVxyXG4gICAgICAgICAgICAgICAgKT8udmFsdWUgPz8gJycsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8ubWVldGluZ05hbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8uY2hhcmFjdGVyTGltaXRzLmxpbWl0VG8xNTBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgICAgICAgIEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zPy5tZWV0aW5nT3JFdmVudE5hbWVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm5cclxuICAgICAgICAgICAgICAgICAgPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgICAgICAgPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/Lm1lZXRpbmdOYW1lLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMTUwLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/Lm1lZXRpbmdUeXBlICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRSxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5tZWV0aW5nVHlwZXM/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAobWVldGluZ1R5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlPy5pZCA9PT1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMF0/LmdldChcclxuICAgICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRVxyXG4gICAgICAgICAgICAgICAgICApPy52YWx1ZT8uaWRcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/Lm1lZXRpbmdUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMubWVldGluZ1R5cGVzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lZXRpbmdUeXBlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8ubWVldGluZ1R5cGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sZWdlbmQ/LmRhdGVBbmRUaW1lLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5EQVRFLFxyXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXI6IHtcclxuICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLlNJTkdMRV9EQVRFX1NFTEVDVElPTixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uc3RhcnREYXRlICsgJyonLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDpcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LmRhdGUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5TVEFSVF9EQVRFLFxyXG4gICAgICAgICAgICAgIGlzTGFiZWxBbGlnbmVkTGVmdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBkYXRlQW5kVGltZVZhbGlkYXRvcihcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5TVEFSVF9EQVRFLFxyXG4gICAgICAgICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50RW5kRGF0ZVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVRpbWVFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvclxyXG4gICAgICAgICAgICAgICAgICA/LmludmFsaWRTdGFydERhdGVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgaW52YWxpZERhdGVSYW5nZUVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yXHJcbiAgICAgICAgICAgICAgICAgID8uaW52YWxpZEV2ZW50TWVldGluZ0RhdGVSYW5nZUVycm9yTWVzc2FnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5EQVRFLFxyXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXI6IHtcclxuICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLlNJTkdMRV9EQVRFX1NFTEVDVElPTixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZW5kRGF0ZSArICcqJyxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LnBsYWNlaG9sZGVyPy5kYXRlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuRU5EX0RBVEUsXHJcbiAgICAgICAgICAgICAgaXNMYWJlbEFsaWduZWRMZWZ0OiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgIEZPUk1fQ09OVFJPTFMuRU5EX0RBVEVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBkYXRlQW5kVGltZVZhbGlkYXRvcihcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5FTkRfREFURSxcclxuICAgICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudFN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudEVuZERhdGVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICBtaW5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8uaW52YWxpZEVuZERhdGUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZW5kRGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LmVuZERhdGUsXHJcbiAgICAgICAgICAgICAgaW52YWxpZERhdGVUaW1lRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3JcclxuICAgICAgICAgICAgICAgICAgPy5pbnZhbGlkRW5kRGF0ZUVycm9yTWVzc2FnZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVJhbmdlRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3JcclxuICAgICAgICAgICAgICAgICAgPy5pbnZhbGlkRXZlbnRNZWV0aW5nRGF0ZVJhbmdlRXJyb3JNZXNzYWdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5USU1FX1BJQ0tFUixcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5TVEFSVF9USU1FLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uc3RhcnRUaW1lICsgJyonLFxyXG4gICAgICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV0/LmdldChcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5TVEFSVF9USU1FXHJcbiAgICAgICAgICAgICAgICApPy52YWx1ZSA/PyAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LnRpbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIGRhdGVBbmRUaW1lVmFsaWRhdG9yKEZPUk1fQ09OVFJPTFMuU1RBUlRfVElNRSwgbnVsbCksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgICAgPy5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgaXMyNEhvdXJzVGltZUZvcm1hdDogdHJ1ZSxcclxuICAgICAgICAgICAgICBob3VyMjQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmhvdXIyNCxcclxuICAgICAgICAgICAgICBpc1JlYWRvbmx5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVRpbWVFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvclxyXG4gICAgICAgICAgICAgICAgICA/LmludmFsaWRTdGFydFRpbWVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRJTUVfUElDS0VSLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLkVORF9USU1FLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZW5kVGltZSArICcqJyxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgIEZPUk1fQ09OVFJPTFMuRU5EX1RJTUVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8udGltZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZGF0ZUFuZFRpbWVWYWxpZGF0b3IoRk9STV9DT05UUk9MUy5FTkRfVElNRSwgbnVsbCksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5lbmRUaW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uZW5kVGltZSxcclxuICAgICAgICAgICAgICBpczI0SG91cnNUaW1lRm9ybWF0OiB0cnVlLFxyXG4gICAgICAgICAgICAgIGhvdXIyNDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8uaG91cjI0LFxyXG4gICAgICAgICAgICAgIGlzUmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGludmFsaWREYXRlVGltZUVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yXHJcbiAgICAgICAgICAgICAgICAgID8uaW52YWxpZEVuZFRpbWVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaXNTdGFuZGFsb25lTWVldGluZykge1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMV0uY29udHJvbHMuc3BsaWNlKDIsIDAsIHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LnRpbWVab25lICsgJyonLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSxcclxuICAgICAgICB2YWx1ZTogdGhpcy50aW1lem9uZXM/LmZpbmQoXHJcbiAgICAgICAgICAoem9uZSkgPT5cclxuICAgICAgICAgICAgem9uZT8uaWQgPT09XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoRk9STV9DT05UUk9MUy5USU1FX1pPTkUpXHJcbiAgICAgICAgICAgICAgPy52YWx1ZT8uaWRcclxuICAgICAgICApLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8udGltZVpvbmUsXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy50aW1lem9uZXMsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy50aW1lWm9uZSxcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8udGltZVpvbmUsXHJcbiAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXAuc3BsaWNlKDIsIDAsIHtcclxuICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8ubG9jYXRpb24sXHJcbiAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5TRUxFQ1QsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uY291bnRyeSxcclxuICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQ09VTlRSWSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY291bnRyaWVzPy5maW5kKFxyXG4gICAgICAgICAgICAgIChjb3VudHJ5KSA9PlxyXG4gICAgICAgICAgICAgICAgY291bnRyeT8uaWQgPT09XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsyXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLkNPVU5UUllcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlPy5pZFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LmNvdW50cnksXHJcbiAgICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5jb3VudHJpZXMsXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5jb3VudHJ5LFxyXG4gICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgID8uY291bnRyeSxcclxuICAgICAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXAuc3BsaWNlKDMsIDAsIHtcclxuICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8uYXR0ZW5kZWVzLFxyXG4gICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXR0ZW5kZWVzVHlwZSArICcqJyxcclxuICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQVRURU5ERUVTX1RZUEUsXHJcbiAgICAgICAgICAgIGNoZWNrYm94T3B0aW9uczogdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICAgICAgbWluU2VsZWN0aW9uUmVxdWlyZWQ6IDEsXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5hdHRlbmRlZXNUeXBlLFxyXG4gICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgID8uYXR0ZW5kZWVzVHlwZSxcclxuICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cCBiYXNlZCBvbiBzZWxlY3RlZCBtZWV0aW5nIHR5cGUgYnVzaW5lc3MgcnVsZXMuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZTogQnVzaW5lc3NSdWxlIHwgdW5kZWZpbmVkID1cclxuICAgICAgdGhpcy5tZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb24/LmZpbmQoXHJcbiAgICAgICAgKG1lZXRpbmdUeXBlKSA9PlxyXG4gICAgICAgICAgbWVldGluZ1R5cGU/LmNvbmZpZ0ZpZWxkSWQgPT09XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRVxyXG4gICAgICAgICAgKT8udmFsdWU/LmlkXHJcbiAgICAgICk/LmNvbmZpZ0ZpZWxkVmFsdWU/LmJ1c2luZXNzUnVsZTtcclxuXHJcbiAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmFsbG93RWRpdGlvbikge1xyXG4gICAgICBjb25zdCBlZGl0aW9uRm9ybUNvbnRyb2w6IEZpZWxkQ29uZmlnID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmVkaXRpb24gK1xyXG4gICAgICAgICAgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc0VkaXRpb25NYW5kYXRvcnkgPyAnKicgOiAnJyksXHJcbiAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuRURJVElPTixcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoRk9STV9DT05UUk9MUy5FRElUSU9OKVxyXG4gICAgICAgICAgICA/LnZhbHVlID8/IHRoaXMuY29uc3RhbnRzPy5jaGFycz8uY2hhcjIwMjQsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5lZGl0aW9uLFxyXG4gICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5lZGl0aW9uLFxyXG4gICAgICAgIGlzUmVzaXplOiBmYWxzZSxcclxuICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNFZGl0aW9uTWFuZGF0b3J5XHJcbiAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgOiAnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNFZGl0aW9uTWFuZGF0b3J5XHJcbiAgICAgICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwPy5mb3JtR3JvdXA/LlswXT8uY29udHJvbHMpXHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzBdLmNvbnRyb2xzLnB1c2goXHJcbiAgICAgICAgICBlZGl0aW9uRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5hbGxvd01lZXRpbmdGYWNpbGl0YXRvcikge1xyXG4gICAgICBjb25zdCBmYWNpbGl0YXRvckZvcm1Db250cm9sOiBGaWVsZENvbmZpZyA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRFWFRfQVJFQSxcclxuICAgICAgICBuYW1lOiBGT1JNX0NPTlRST0xTLkZBQ0lMSVRBVE9SLFxyXG4gICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgbGFiZWw6IG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdGYWNpbGl0YXRvck1hbmRhdG9yeVxyXG4gICAgICAgICAgPyB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZmFjaWxpdGF0b3IgKyAnKidcclxuICAgICAgICAgIDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmZhY2lsaXRhdG9yLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLkZBQ0lMSVRBVE9SLFxyXG4gICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nRmFjaWxpdGF0b3JcclxuICAgICAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5GQUNJTElUQVRPUlxyXG4gICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8uZmFjaWxpdGF0b3IsXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvNzUpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFxyXG4gICAgICAgICAgICBFdmVudHNBbmRNZWV0aW5nc1ZhbGlkYXRpb25QYXR0ZXJucz8ubWVldGluZ0ZhY2lsaXRhdG9yXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8ubWVldGluZ0ZhY2lsaXRhdG9yLFxyXG4gICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICA/Lm1lZXRpbmdGYWNpbGl0YXRvcixcclxuICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5mYWNpbGl0YXRvcixcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICA/LmZhY2lsaXRhdG9yLFxyXG4gICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvNzUsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgaXNSZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdGYWNpbGl0YXRvck1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzTWVldGluZ0ZhY2lsaXRhdG9yTWFuZGF0b3J5KVxyXG4gICAgICAgIGZhY2lsaXRhdG9yRm9ybUNvbnRyb2w/LnZhbGlkYXRpb24/LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXA/LmZvcm1Hcm91cD8uWzBdPy5jb250cm9scylcclxuICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMF0uY29udHJvbHMucHVzaChcclxuICAgICAgICAgIGZhY2lsaXRhdG9yRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5hbGxvd01lZXRpbmdMb2NhdGlvbikge1xyXG4gICAgICBjb25zdCBhZGRyZXNzRm9ybUNvbnRyb2w6IEZpZWxkQ29uZmlnID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgIGxhYmVsOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNNZWV0aW5nTG9jYXRpb25NYW5kYXRvcnlcclxuICAgICAgICAgID8gdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFkZHJlc3MgKyAnKidcclxuICAgICAgICAgIDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgbmFtZTogRk9STV9DT05UUk9MUy5BRERSRVNTLFxyXG4gICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQUREUkVTUyxcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0xvY2F0aW9uXHJcbiAgICAgICAgICAgIDogdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMl0/LmdldChGT1JNX0NPTlRST0xTLkFERFJFU1MpXHJcbiAgICAgICAgICAgICAgICA/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuY29uc3RhbnRzPy5jaGFyYWN0ZXJMaW1pdHMubGltaXRUbzE1MCksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgIEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zPy5tZWV0aW5nTG9jYXRpb25cclxuICAgICAgICAgICksXHJcbiAgICAgICAgXSxcclxuICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm5cclxuICAgICAgICAgICAgPy5tZWV0aW5nTG9jYXRpb24sXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgID8ubWVldGluZ0xvY2F0aW9uLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8uYWRkcmVzcyxcclxuICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmFkZHJlc3MsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgaXNSZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICBtYXhDaGFyQ291bnQ6IHRoaXMuY29uc3RhbnRzPy5jaGFyYWN0ZXJMaW1pdHMubGltaXRUbzE1MCxcclxuICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdMb2NhdGlvbk1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzTWVldGluZ0xvY2F0aW9uTWFuZGF0b3J5KVxyXG4gICAgICAgIGFkZHJlc3NGb3JtQ29udHJvbD8udmFsaWRhdGlvbj8ucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyAmJlxyXG4gICAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwPy5mb3JtR3JvdXA/LlsyXT8uY29udHJvbHNcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzJdLmNvbnRyb2xzPy5zcGxpY2UoXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIGFkZHJlc3NGb3JtQ29udHJvbFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwLnNwbGljZSgyLCAwLCB7XHJcbiAgICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8ubG9jYXRpb24sXHJcbiAgICAgICAgICBjb250cm9sczogW2FkZHJlc3NGb3JtQ29udHJvbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uYWxsb3dWaXJ0dWFsTWVldGluZ1VybCkge1xyXG4gICAgICBjb25zdCBtZWV0aW5nTGlua0Zvcm1Db250cm9sOiBGaWVsZENvbmZpZyA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRFWFRfQVJFQSxcclxuICAgICAgICBsYWJlbDogbWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzVmlydHVhbE1lZXRpbmdVcmxNYW5kYXRvcnlcclxuICAgICAgICAgID8gdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/Lm1lZXRpbmdMaW5rICsgJyonXHJcbiAgICAgICAgICA6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5tZWV0aW5nTGluayxcclxuICAgICAgICByZW1haW5pbmdDaGFyc0xlZnRNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8uc3VwcG9ydFRleHQ/LmNoYXJhY3RlcnNMZWZ0LFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLk1FRVRJTkdfTElOSyxcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8udmlydHVhbE1lZXRpbmdVcmxcclxuICAgICAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsyXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5NRUVUSU5HX0xJTktcclxuICAgICAgICAgICAgICApPy52YWx1ZSA/PyAnJyxcclxuICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/Lm1lZXRpbmdMaW5rLFxyXG4gICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lZXRpbmdMaW5rLFxyXG4gICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgID8ubWVldGluZ0xpbmssXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMjUwKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcclxuICAgICAgICAgICAgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnM/LnZpcnR1YWxNZWV0aW5nVXJsXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8udmlydHVhbE1lZXRpbmdVcmwsXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgID8udmlydHVhbE1lZXRpbmdVcmwsXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNWaXJ0dWFsTWVldGluZ1VybE1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMjUwLFxyXG4gICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNWaXJ0dWFsTWVldGluZ1VybE1hbmRhdG9yeSlcclxuICAgICAgICBtZWV0aW5nTGlua0Zvcm1Db250cm9sPy52YWxpZGF0aW9uPy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICBpZiAodGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXA/LmZvcm1Hcm91cD8uWzJdPy5jb250cm9scylcclxuICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMl0uY29udHJvbHMucHVzaChcclxuICAgICAgICAgIG1lZXRpbmdMaW5rRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWVudCBzaWRlIHZhbGlkYXRpb24gYW5kIGNhbGxzIGNyZWF0ZSBtZWV0aW5nIG1ldGhvZHMuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybSAtQXJyYXkgb2YgZm9ybUdyb3VwXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TdWJtaXQoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgZm9ybUdyb3Vwcy5ldmVyeShcclxuICAgICAgICAoZm9ybUdyb3VwOiBGb3JtR3JvdXApID0+IGZvcm1Hcm91cC5zdGF0dXMgPT09IEZvcm1TdGF0dXMuVkFMSURcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KGZvcm1Hcm91cHMpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTWVldGluZyhmb3JtR3JvdXBzKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID09PVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZWRpdE1lZXRpbmcoZm9ybUdyb3Vwcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIG1lZXRpbmcgYmFzaWMgZGV0YWlscywgZGF0ZSBhbmQgdGltZSwgbG9jYXRpb24gZGV0YWlscywgYXR0ZW5kZWUgZGV0YWlscywgYWNjZXNzIGRldGFpbHMgZm9ybSBncm91cCBkYXRhIGFuZCBjb21iaW5pbmcgc3RhcnQgZGF0ZSZ0aW1lIGFuZCBlbmQgZGF0ZSZ0aW1lIGFuZCBjb252ZXJ0aW5nIHRvIFVUQyBmb3JtYXQgYW5kIHBhc3NpbmcgYWxsIHRoZSBmb3JtIGRhdGEgaW4gdGhlIHBheWxvYWQgb2JqZWN0IHRvIGNyZWF0ZSBtZWV0aW5nIEFQSSB0byB0aGUgc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1Hcm91cHNcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmcoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lZXRpbmdCYXNpY0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzFdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ0xvY2F0aW9uRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsyXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdBdHRlbmRlZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bM10/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nQWNjZXNzRGV0YWlscyA9IGZvcm1Hcm91cHM/Lls0XT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdTdGFydERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uc3RhcnREYXRlLmZvcm1hdChcclxuICAgICAgICBEYXRlRm9ybWF0cy5yZXF1ZXN0UGF5bG9hZEZvcm1hdFxyXG4gICAgICApICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnN0YXJ0VGltZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG1lZXRpbmdFbmREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LmVuZERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgICkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uZW5kVGltZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNyZWF0ZU1lZXRpbmdQYXlsb2FkOiBDcmVhdGVPckVkaXRNZWV0aW5nUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IG1lZXRpbmdCYXNpY0RldGFpbHM/LnJlbGF0ZWRHcm91cD8uaWQsXHJcbiAgICAgICAgY291bnRyeTogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQgPz8gbnVsbCxcclxuICAgICAgICBtZWV0aW5nSWQ6XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0U2VsZWN0ZWRNZWV0aW5nSWQoKSA/PyBudWxsLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRTZWxlY3RlZEV2ZW50SWQoKSA/PyBudWxsLFxyXG4gICAgICAgIG1lZXRpbmdGYWNpbGl0YXRvcjogbWVldGluZ0Jhc2ljRGV0YWlscz8uZmFjaWxpdGF0b3IgPz8gbnVsbCxcclxuICAgICAgICBlZGl0aW9uOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5lZGl0aW9uID8/IG51bGwsXHJcbiAgICAgICAgbWVldGluZ1RpdGxlOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICBtZWV0aW5nVHlwZTogbWVldGluZ0Jhc2ljRGV0YWlscz8ubWVldGluZ1R5cGU/LmlkLFxyXG4gICAgICAgIG1lZXRpbmdTdERhdGU6IG1lZXRpbmdTdGFydERhdGUsXHJcbiAgICAgICAgbWVldGluZ0VkRGF0ZTogbWVldGluZ0VuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnRpbWVab25lPy5uYW1lLFxyXG4gICAgICAgIG1lZXRpbmdMb2NhdGlvbjogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyA/PyBudWxsLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBtZWV0aW5nTG9jYXRpb25EZXRhaWxzPy5tZWV0aW5nTGluayA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwUGFydGljaXBhbnRzOiBtZWV0aW5nQXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgb3BlbkZvckFsbDogbWVldGluZ0F0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IG1lZXRpbmdBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBtZWV0aW5nUGFzc3dvcmQ6IG1lZXRpbmdBY2Nlc3NEZXRhaWxzPy5tZWV0aW5nUGFzc3dvcmQgPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuY3JlYXRlTWVldGluZyhjcmVhdGVNZWV0aW5nUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgY3JlYXRlTWVldGluZ1BheWxvYWQucGF5bG9hZC5tZWV0aW5nVGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtIGNhbmNlbCBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmdDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlcyBhbmQgZGlzYWJsZXMgZm9ybSBzdWJtaXQgYnV0dG9uIHdoZW4gY3JlYXRlIG9yIHVwZGF0ZSBtZWV0aW5nIGZvcm0gY2hhbmdlLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1Hcm91cHNcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ0Zvcm1DaGFuZ2UoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc01lZXRpbmdGb3JtSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMV0/LmNvbnRyb2xzWzFdPy5kYXRlUGlja2VyXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzFdLmNvbnRyb2xzWzFdLmRhdGVQaWNrZXIubWluRGF0ZSA9XHJcbiAgICAgICAgZm9ybUdyb3Vwc1sxXT8uZ2V0KCdzdGFydERhdGUnKT8udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgIGZvcm1Hcm91cHMuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgPSBmb3JtR3JvdXBzLnNvbWUoXHJcbiAgICAgIChmb3JtR3JvdXApID0+IGZvcm1Hcm91cD8uc3RhdHVzID09PSBGb3JtU3RhdHVzLklOVkFMSURcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgfHxcclxuICAgICAgKHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyAmJiB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcy5sZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWxlcnRzIGZvciBzdWNjZXNzLCBlcnJvciBhbmQgd2FybmluZy5cclxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBzdHJpbmdbXSl9IG1lc3NhZ2UgLXN1Y2Nlc3Mgb3IgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLlxyXG4gICAqIEBwYXJhbSB7QWxlcnRUeXBlfSBhbGVydFR5cGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dBbGVydE1lc3NhZ2UoYWxlcnRUeXBlOiBBbGVydFR5cGUsIG1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IGFsZXJ0VHlwZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYXR0ZW5kZWUgdHlwZSBzZWxlY3Rpb24gaW4gbWVldGluZyBmb3JtLlxyXG4gICAqIEBwYXJhbSB7Q2hlY2tib3hPcHRpb259IGF0dGVuZGVlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbihhdHRlbmRlZVR5cGU6IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoYXR0ZW5kZWVUeXBlPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTCkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzPy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICBpZiAoYXR0ZW5kZWVUeXBlPy5jaGVja2VkICYmIG9wdGlvbj8uaWQgIT09IGF0dGVuZGVlVHlwZS5pZClcclxuICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgZWxzZSBpZiAoIWF0dGVuZGVlVHlwZT8uY2hlY2tlZCAmJiBvcHRpb24/LmlkICE9PSBhdHRlbmRlZVR5cGUuaWQpXHJcbiAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAnYXR0ZW5kZWVzVHlwZScsXHJcbiAgICAgICAgJ2NoZWNrYm94T3B0aW9ucycsXHJcbiAgICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBhdHRlbmRlZVR5cGU/LmlkID09PSBBdHRlbmRlZVR5cGUuR1JPVVBfTUVNQkVSUyB8fFxyXG4gICAgICBhdHRlbmRlZVR5cGU/LmlkID09PSBBdHRlbmRlZVR5cGUuUkVHSVNURVJFRF9QQVJUSUNJUEFOVFNcclxuICAgICkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzXHJcbiAgICAgICAgPy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTClcclxuICAgICAgICAubWFwKChmaWx0ZXJlZE9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGF0dGVuZGVlVHlwZT8uY2hlY2tlZCkgcmV0dXJuIChmaWx0ZXJlZE9wdGlvbi5kaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgICAgICAgZWxzZSBpZiAodGhpcy5jYW5FbmFibGVPcGVuRm9yQWxsQ2hlY2tib3goKSlcclxuICAgICAgICAgICAgcmV0dXJuIChmaWx0ZXJlZE9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZE9wdGlvbjtcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICdhdHRlbmRlZXNUeXBlJyxcclxuICAgICAgICAnY2hlY2tib3hPcHRpb25zJyxcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLFxyXG4gICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKGF0dGVuZGVlVHlwZT8uY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcz8ucHVzaChhdHRlbmRlZVR5cGUuaWQgYXMgc3RyaW5nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRlbmRlZVR5cGVzID0gdGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMuZmlsdGVyKFxyXG4gICAgICAgICh2YWx1ZSkgPT4gdmFsdWUgIT09IGF0dGVuZGVlVHlwZS5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgPSB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAuc29tZShcclxuICAgICAgKGZvcm1Hcm91cDogRm9ybUdyb3VwKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1Hcm91cC5zdGF0dXMgPT09IEZvcm1TdGF0dXMuSU5WQUxJRDtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pc01lZXRpbmdGb3JtSW52YWxpZCkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHdoZXRoZXIgYXR0ZW5kZWUgdHlwZSBvciBmb3JtIGlzIGludmFsaWQsIHRoZW4gZGlzYWJsZSBzdWJtaXQgYnV0dG9uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBjaGVja0F0dGVuZGVlVHlwZU9yRm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEodGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMubGVuZ3RoICYmICF0aGlzLmlzTWVldGluZ0Zvcm1JbnZhbGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0IGNyZWF0ZSBtZWV0aW5nIGZvcm0gZ3JvdXAgcmVmZXJlbmNlLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldE1lZXRpbmdGb3JtR3JvdXBSZWYoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cCA9IGZvcm07XHJcbiAgICB0aGlzLmRpc2FibGVBdHRlbmRlZVR5cGVzKCk7XHJcbiAgICB0aGlzLm1hcmtJbnZhbGlkQ29udHJvbHNBc1RvdWNoZWQoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWFyayBpbnZhbGlkIGZvcm0gY29udHJvbHMgdG91Y2hlZFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbWFya0ludmFsaWRDb250cm9sc0FzVG91Y2hlZCgpIHtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cC5mb3JFYWNoKChmb3JtR3JvdXApID0+IHtcclxuICAgICAgdGhpcy5pbnZhbGlkRm9ybUNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XHJcbiAgICAgICAgZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIHRoZSBkcm9wZG93biBvcHRpb25zIGFuZCBzaG93IG9wdGlvbnMgcmVsYXRlZCB0byB0aGF0IHNlYXJjaCBzdHJpbmdcclxuICAgKiBAcGFyYW0ge3sgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH19IGRhdGEgaXQgY29udGFpbnMgb2JqZWN0IG9mIHNlYXJjaEV2ZW50IGFuZCBjb250cm9sTmFtZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybVNlbGVjdFNlYXJjaChkYXRhOiB7IHNlYXJjaEV2ZW50OiBFdmVudDsgY29udHJvbE5hbWU6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGRhdGEuY29udHJvbE5hbWUpIHtcclxuICAgICAgY2FzZSBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORTpcclxuICAgICAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0VGltZVpvbmVzLFxyXG4gICAgICAgICAgdGhpcy50aW1lem9uZXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudGltZXpvbmVzID0gZGF0YS5zZWFyY2hFdmVudFxyXG4gICAgICAgICAgPyB0aGlzLnRpbWV6b25lc1xyXG4gICAgICAgICAgOiB0aGlzLmRlZmF1bHRUaW1lWm9uZXM7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5USU1FX1pPTkUsXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMudGltZXpvbmVzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5DT1VOVFJZOlxyXG4gICAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZmlsdGVyT3B0aW9ucyhcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJpZXMsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5DT1VOVFJZLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZPUk1fQ09OVFJPTFMuUkVMQVRFRF9HUk9VUDpcclxuICAgICAgICB0aGlzLmdyb3VwcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0R3JvdXBzLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgIEZPUk1fQ09OVFJPTFMuUkVMQVRFRF9HUk9VUCxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tpbmcgZm9yIHVuY2hlY2tlZCBjaGVja2JveCBjb3VudCBleGNlcHQgT1BFTl9GT1JfQUxMXHJcbiAgICogQHJldHVybiB7Kn0gIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHVuY2hlY2tlZENvdW50ID0gMDtcclxuICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXM/LmZvckVhY2goKGF0dGVuZGVlVHlwZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgYXR0ZW5kZWVUeXBlPy5pZCAhPT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTCAmJlxyXG4gICAgICAgICFhdHRlbmRlZVR5cGU/LmNoZWNrZWRcclxuICAgICAgKVxyXG4gICAgICAgIHVuY2hlY2tlZENvdW50Kys7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1bmNoZWNrZWRDb3VudCA9PT0gdGhpcy5hdHRlbmRlZXNUeXBlcz8ubGVuZ3RoIC0gMTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgc2V0VmFsaWRhdG9ycyBmdW5jdGlvbiB0byByZXNldCB2YWxpZGF0b3JzIGZvciBTdGFydCBEYXRlIGFuZCBFbmQgRGF0ZS5cclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkRGF0ZX0gZGF0YVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2VsZWN0ZWREYXRlKGRhdGE6IFNlbGVjdGVkRGF0ZSkge1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKGRhdGEuZGF0ZSwgZGF0YT8uY29udHJvbE5hbWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBzZXRWYWxpZGF0b3JzIGZ1bmN0aW9uIHRvIHJlc2V0IHZhbGlkYXRvcnMgZm9yIFN0YXJ0IFRpbWUgYW5kIEVuZCBUaW1lXHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZFRpbWV9IHNlbGVjdGVkVGltZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybVRpbWVTZWxlY3RlZChzZWxlY3RlZFRpbWU6IFNlbGVjdGVkVGltZSkge1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKHNlbGVjdGVkVGltZS50aW1lLCBzZWxlY3RlZFRpbWU/LmNvbnRyb2xOYW1lKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBWYWxpZGF0b3IgYWdhaW4gZm9yIHRoZSBjb250cm9scyBzdGFydCBEYXRlLCBFbmQgRGF0ZSwgU3RhcnQgVGltZSAmIEVuZCBUaW1lIHdoaWNoIGlzIEludmFsaWRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udHJvbE5hbWVcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFZhbGlkYXRvcnModmFsdWU6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFdmVudFN0YXJ0QW5kRW5kRGF0ZSgpO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9XHJcbiAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICA/IHZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5nZXQoJ3N0YXJ0RGF0ZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IGVuZERhdGUgPVxyXG4gICAgICBjb250cm9sTmFtZSA9PT0gRk9STV9DT05UUk9MUy5FTkRfREFURVxyXG4gICAgICAgID8gdmFsdWVcclxuICAgICAgICA6IHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdLmdldCgnZW5kRGF0ZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9XHJcbiAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX1RJTUVcclxuICAgICAgICA/IHZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5nZXQoJ3N0YXJ0VGltZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IGVuZFRpbWUgPVxyXG4gICAgICBjb250cm9sTmFtZSA9PT0gRk9STV9DT05UUk9MUy5FTkRfVElNRVxyXG4gICAgICAgID8gdmFsdWVcclxuICAgICAgICA6IHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdLmdldCgnZW5kVGltZScpPy52YWx1ZTtcclxuICAgIGlmIChcclxuICAgICAgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlICYmIHN0YXJ0VGltZSAmJiBlbmRUaW1lKSB8fFxyXG4gICAgICAoKHN0YXJ0RGF0ZSB8fCBlbmREYXRlKSAmJiB0aGlzLmV2ZW50U3RhcnREYXRlICYmIHRoaXMuZXZlbnRFbmREYXRlKVxyXG4gICAgKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5jb250cm9scykuZm9yRWFjaChcclxuICAgICAgICAoa2V5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoa2V5ICE9PSBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV0uZ2V0KGtleSk/LnN0YXR1cyA9PT1cclxuICAgICAgICAgICAgICAgIEZvcm1TdGF0dXMuSU5WQUxJRCAmJlxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lICE9PSBrZXlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5zZXRWYWxpZGF0b3JzKFtcclxuICAgICAgICAgICAgICAgICAgZGF0ZUFuZFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICAgICAgICAgICAgICAgID8gc3RhcnREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLkVORF9EQVRFXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGVuZERhdGVcclxuICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbE5hbWUgPT09IEZPUk1fQ09OVFJPTFMuU1RBUlRfVElNRVxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBzdGFydFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgIDogZW5kVGltZSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRFbmREYXRlXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdXHJcbiAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KVxyXG4gICAgICAgICAgICAgICAgICA/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmlzTWVldGluZ0Zvcm1JbnZhbGlkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cC5zb21lKFxyXG4gICAgICAgICAgICAgICAgICAoZm9ybUdyb3VwOiBGb3JtR3JvdXApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUdyb3VwLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5JTlZBTElEO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRoaXMuY2hlY2tBdHRlbmRlZVR5cGVPckZvcm1WYWxpZCgpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgYXR0ZW5kZWVUeXBlIGNoZWNrYm94IGFjY29yZGluZyB0byB0aGUgc2VsZWN0aW9uXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNhYmxlQXR0ZW5kZWVUeXBlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk6IEZvcm1BcnJheSA9IHRoaXNcclxuICAgICAgLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlszXT8uY29udHJvbHNbXHJcbiAgICAgICdhdHRlbmRlZXNUeXBlJ1xyXG4gICAgXSBhcyBGb3JtQXJyYXk7XHJcbiAgICBpZiAoIXRoaXMuY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCkpXHJcbiAgICAgIGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk/LmF0KDApPy5kaXNhYmxlKCk7XHJcbiAgICBlbHNlIGlmIChhdHRlbmRlZXNUeXBlRm9ybUFycmF5Py5hdCgwKT8udmFsdWUpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5hdHRlbmRlZXNUeXBlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk/LmF0KGkpPy5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB2aWV3IG1lZXRpbmcgZGV0YWlscyBhbmQgY2FsbHMgZ2V0IG1lZXRpbmcgZGV0YWlscyBBUEkgYW5kIGVtaXRzIHZpZXcgbWVldGluZyBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHttZWV0aW5nSUR9XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICB2aWV3TWVldGluZ0RldGFpbHMobWVldGluZ0lEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRNZWV0aW5nRGV0YWlscyhtZWV0aW5nSUQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YSA9IHJlcz8uYm9keTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGUgZWRpdCBtZWV0aW5nIGRldGFpbHMgb24gZ2V0IHZpZXcgbWVldGluZyBkZXRhaWxzIEFQSSBjYWxsLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRGb3JtR3JvdXBWYWx1ZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXVxyXG4gICAgICAuZ2V0KCdyZWxhdGVkR3JvdXAnKVxyXG4gICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBzPy5maWx0ZXIoXHJcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/Lmdyb3VwSWRcclxuICAgICAgICApPy5bMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoJ21lZXRpbmdOYW1lJylcclxuICAgICAgPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/Lm1lZXRpbmdUaXRsZSk7XHJcbiAgICBpZiAodGhpcy5pc1N0YW5kYWxvbmVNZWV0aW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEub3BlbkZvckFsbCkge1xyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNbMF0uY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzBdKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEuZ3JvdXBQYXJ0aWNpcGFudHMgJiZcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEucmVnaXN0ZXJlZFBhcnRpY2lwYW50c1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzFdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub25BdHRlbmRlZVR5cGVTZWxlY3Rpb24odGhpcy5hdHRlbmRlZXNUeXBlc1sxXSk7XHJcbiAgICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1syXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMl0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YS5ncm91cFBhcnRpY2lwYW50cykge1xyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNbMV0uY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzFdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzJdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub25BdHRlbmRlZVR5cGVTZWxlY3Rpb24odGhpcy5hdHRlbmRlZXNUeXBlc1syXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoJ21lZXRpbmdUeXBlJylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nVHlwZVxyXG4gICAgICAgIClbMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoRk9STV9DT05UUk9MUy5FRElUSU9OKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8uZWRpdGlvbik7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuU1RBUlRfREFURSlcclxuICAgICAgPy5zZXRWYWx1ZShtb21lbnQodGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nU3REYXRlKSk7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuRU5EX0RBVEUpXHJcbiAgICAgID8uc2V0VmFsdWUobW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0VkRGF0ZSkpO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV1cclxuICAgICAgLmdldChGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSlcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLnRpbWV6b25lcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/LnRpbWVab25lXHJcbiAgICAgICAgKVswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV1cclxuICAgICAgLmdldChGT1JNX0NPTlRST0xTLlNUQVJUX1RJTUUpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgbW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ1N0RGF0ZSkuZm9ybWF0KCdoaDptbScpXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuRU5EX1RJTUUpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgbW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0VkRGF0ZSkuZm9ybWF0KCdoaDptbScpXHJcbiAgICAgICk7XHJcbiAgICBpZiAodGhpcy5pc1N0YW5kYWxvbmVNZWV0aW5nKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzJdXHJcbiAgICAgICAgLmdldChGT1JNX0NPTlRST0xTLkNPVU5UUlkpXHJcbiAgICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICAgIHRoaXMuY291bnRyaWVzPy5maWx0ZXIoXHJcbiAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8uY291bnRyeVxyXG4gICAgICAgICAgKVswXVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgZWRpdCBtZWV0aW5nIHBheWxvYWQgYW5kIGNhbGxzIGVkaXQgbWVldGluZyBBUEkgYW5kIGVtaXRzIGVkaXQgbWVldGluZyBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtR3JvdXBzXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBlZGl0TWVldGluZyhmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbWVldGluZ0Jhc2ljRGV0YWlscyA9IGZvcm1Hcm91cHM/LlswXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bMV0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nTG9jYXRpb25EZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzJdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ0F0dGVuZGVlRGV0YWlscyA9IGZvcm1Hcm91cHM/LlszXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdBY2Nlc3NEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzRdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ1N0YXJ0RGF0ZSA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmNvbnZlcnREYXRlVGltZVRvVVRDKFxyXG4gICAgICBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzPy5zdGFydERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgICkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uc3RhcnRUaW1lXHJcbiAgICApO1xyXG4gICAgY29uc3QgbWVldGluZ0VuZERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uZW5kRGF0ZS5mb3JtYXQoXHJcbiAgICAgICAgRGF0ZUZvcm1hdHMucmVxdWVzdFBheWxvYWRGb3JtYXRcclxuICAgICAgKSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzPy5lbmRUaW1lXHJcbiAgICApO1xyXG4gICAgY29uc3QgZWRpdE1lZXRpbmdQYXlsb2FkOiBDcmVhdGVPckVkaXRNZWV0aW5nUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IG1lZXRpbmdCYXNpY0RldGFpbHM/LnJlbGF0ZWRHcm91cD8uaWQsXHJcbiAgICAgICAgY291bnRyeTogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQgPz8gbnVsbCxcclxuICAgICAgICBtZWV0aW5nSWQ6XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0U2VsZWN0ZWRNZWV0aW5nSWQoKSA/PyBudWxsLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRTZWxlY3RlZEV2ZW50SWQoKSA/PyBudWxsLFxyXG4gICAgICAgIG1lZXRpbmdGYWNpbGl0YXRvcjogbWVldGluZ0Jhc2ljRGV0YWlscz8uZmFjaWxpdGF0b3IgPz8gbnVsbCxcclxuICAgICAgICBlZGl0aW9uOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5lZGl0aW9uID8/IG51bGwsXHJcbiAgICAgICAgbWVldGluZ1RpdGxlOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICBtZWV0aW5nVHlwZTogbWVldGluZ0Jhc2ljRGV0YWlscz8ubWVldGluZ1R5cGU/LmlkLFxyXG4gICAgICAgIG1lZXRpbmdTdERhdGU6IG1lZXRpbmdTdGFydERhdGUsXHJcbiAgICAgICAgbWVldGluZ0VkRGF0ZTogbWVldGluZ0VuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnRpbWVab25lPy5uYW1lLFxyXG4gICAgICAgIG1lZXRpbmdMb2NhdGlvbjogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyA/PyBudWxsLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBtZWV0aW5nTG9jYXRpb25EZXRhaWxzPy5tZWV0aW5nTGluayA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwUGFydGljaXBhbnRzOiBtZWV0aW5nQXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgb3BlbkZvckFsbDogbWVldGluZ0F0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IG1lZXRpbmdBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBtZWV0aW5nUGFzc3dvcmQ6IG1lZXRpbmdBY2Nlc3NEZXRhaWxzPy5tZWV0aW5nUGFzc3dvcmQgPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZWRpdE1lZXRpbmcoZWRpdE1lZXRpbmdQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBlZGl0TWVldGluZ1BheWxvYWQucGF5bG9hZC5tZWV0aW5nVGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8udXBkYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzZWxlY3RlZCBldmVudCBzdGFydCBhbmQgZW5kIGRhdGUuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRFdmVudFN0YXJ0QW5kRW5kRGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRTdGFydERhdGUgPSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5zdGFydERhdGUgPz8gJyc7XHJcbiAgICB0aGlzLmV2ZW50RW5kRGF0ZSA9IHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmVuZERhdGUgPz8gJyc7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBkcm9wZG93biBvcHRpb25zIHRvIGRlZmF1bHQgd2hlbiB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIGFuZCB0aGUgZHJvcGRvd24gb3B0aW9ucyBhcmUgaXMgZW1wdHkuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcGVuZWRTdGF0ZX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5USU1FX1pPTkU6XHJcbiAgICAgICAgdGhpcy50aW1lem9uZXMgPVxyXG4gICAgICAgICAgIWV2ZW50Lm9wZW5lZCAmJiB0aGlzLnRpbWV6b25lcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICAgPyB0aGlzLmRlZmF1bHRUaW1lWm9uZXNcclxuICAgICAgICAgICAgOiB0aGlzLnRpbWV6b25lcztcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy50aW1lem9uZXMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGT1JNX0NPTlRST0xTLkNPVU5UUlk6XHJcbiAgICAgICAgdGhpcy5jb3VudHJpZXMgPVxyXG4gICAgICAgICAgIWV2ZW50Lm9wZW5lZCAmJiB0aGlzLmNvdW50cmllcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICAgPyB0aGlzLmRlZmF1bHRDb3VudHJpZXNcclxuICAgICAgICAgICAgOiB0aGlzLmNvdW50cmllcztcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICBGT1JNX0NPTlRST0xTLkNPVU5UUlksXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMuY291bnRyaWVzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQOlxyXG4gICAgICAgIHRoaXMuZ3JvdXBzID1cclxuICAgICAgICAgICFldmVudC5vcGVuZWQgJiYgdGhpcy5ncm91cHMubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICAgID8gdGhpcy5kZWZhdWx0R3JvdXBzXHJcbiAgICAgICAgICAgIDogdGhpcy5ncm91cHM7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLmdyb3VwcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWNyZWF0ZS11cGRhdGUtbWVldGluZy1jb250YWluZXJcIj5cclxuICA8aWVlZXNhLWR5bmFtaWMtZm9ybVxyXG4gICAgY2xhc3M9XCJpZWVlc2EtY3JlYXRlLXVwZGF0ZS1tZWV0aW5nLWZvcm1cIlxyXG4gICAgKm5nSWY9XCJjcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXBcIlxyXG4gICAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gICAgW3JpZ2h0QnV0dG9uTGFiZWxdPVwicmlnaHRCdXR0b25MYWJlbFwiXHJcbiAgICBbYWN0aW9uQnV0dG9uQWxpZ25dPVwiYWN0aW9uQnV0dG9uQWxpZ25cIlxyXG4gICAgW2lzU3VibWl0QnV0dG9uRGlzYWJsZWRdPVwiaXNTdWJtaXRCdXR0b25EaXNhYmxlZFwiXHJcbiAgICBbaXNMZWdlbmRWaXNpYmxlXT1cInRydWVcIlxyXG4gICAgW2NvbFdpZHRoXT1cImNvbFdpZHRoXCJcclxuICAgIFtmb3JtR3JvdXBzXT1cImNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cFwiXHJcbiAgICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cInRydWVcIlxyXG4gICAgKGZvcm1DaGVja2JveFNlbGVjdGlvbik9XCJvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldE1lZXRpbmdGb3JtR3JvdXBSZWYoJGV2ZW50KVwiXHJcbiAgICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cImNyZWF0ZU1lZXRpbmdDYW5jZWxsZWQoKVwiXHJcbiAgICAoZm9ybVN1Ym1pdCk9XCJvbkZvcm1TdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAoZm9ybUNoYW5nZSk9XCJvbkZvcm1DaGFuZ2UoJGV2ZW50KTsgb25NZWV0aW5nRm9ybUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cImZvcm1TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAoZm9ybURhdGVTZWxlY3RlZCk9XCJzZWxlY3RlZERhdGUoJGV2ZW50KVwiXHJcbiAgICAoZm9ybVRpbWVTZWxlY3RlZCk9XCJmb3JtVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgKGRyb3Bkb3duT3BlbmVkQ2hhbmdlKT1cIm9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWR5bmFtaWMtZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
1042
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1tZWV0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2ZW50cy1hbmQtbWVldGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1tb2RpZnktbWVldGluZy9jcmVhdGUtbW9kaWZ5LW1lZXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZlbnRzLWFuZC1tZWV0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1tZWV0aW5nL2NyZWF0ZS1tb2RpZnktbWVldGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUNMLGVBQWUsRUFFZixTQUFTLEVBQ1QsWUFBWSxFQU1aLG9CQUFvQixHQUdyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUF3QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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b24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy1hbmQtbWVldGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGaWVsZENvbmZpZyxcclxuICBBbGlnblR5cGUsXHJcbiAgQ2FsZW5kYXJUeXBlLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIEZvcm1HcmlkLFxyXG4gIFNlbGVjdE9wdGlvbixcclxuICBTZWxlY3RlZFRpbWUsXHJcbiAgU2VsZWN0ZWREYXRlLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gIEZvcm1Nb2RlbCxcclxuICBTZWxlY3RPcGVuZWRTdGF0ZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnMgfSBmcm9tICcuLi8uLi9hc3NldHMvZm9ybS12YWxpZGF0aW9ucyc7XHJcbmltcG9ydCB7IERhdGVGb3JtYXRzIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2RhdGUtZm9ybWF0cyc7XHJcbmltcG9ydCB7IENyZWF0ZU9yRWRpdE1lZXRpbmdQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1tZWV0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXN0YXR1cy5tb2RlbCc7XHJcbmltcG9ydCB7IEdldEdyb3VwUmVzcG9uc2UsIEdyb3VwSW5mbyB9IGZyb20gJ0BpZWVlc2EtbnBtL3NoYXJlZCc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgQ291bnRyeUFuZFRpbWV6b25lU2VydmljZSxcclxuICBkYXRlQW5kVGltZVZhbGlkYXRvcixcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBCdXNpbmVzc1J1bGUsXHJcbiAgTWVldGluZ1R5cGVDb25maWd1cmF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9tZWV0aW5nLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kZWVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGVlLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1tZWV0aW5nLWZ1bmN0aW9uLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgTWVldGluZ0RldGFpbHNDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctbWVldGluZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZPUk1fQ09OVFJPTFMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9scy5tb2RlbCc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBFdmVudERldGFpbHNDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudERhdGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWNyZWF0ZS1tb2RpZnktbWVldGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1tb2RpZnktbWVldGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW1vZGlmeS1tZWV0aW5nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICBhY3Rpb25CdXR0b25BbGlnbiA9IEFsaWduVHlwZS5MRUZUO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0czogYW55ID0gdGhpcy5jb25zdGFudHM/LmNyZWF0ZU9yTW9kaWZ5TWVldGluZztcclxuICBjb2xXaWR0aDogRm9ybUdyaWQgPSB7IHhzOiAxMiwgeGw6IDEyLCBzbTogMTIsIG1kOiAxMiwgbGc6IDEyIH07XHJcbiAgY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwITogRm9ybU1vZGVsO1xyXG4gIGdyb3VwczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBtZWV0aW5nVHlwZXM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgY291bnRyaWVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgdGltZXpvbmVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgZGVmYXVsdFRpbWVab25lcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlZmF1bHRDb3VudHJpZXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBkZWZhdWx0R3JvdXBzOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGlzTWVldGluZ0Zvcm1JbnZhbGlkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRBdHRlbmRlZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGxlZnRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5sZWZ0QnV0dG9uTGFiZWw7XHJcbiAgcmlnaHRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5yaWdodEJ1dHRvbkxhYmVsO1xyXG4gIGNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAhOiBGb3JtR3JvdXBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG1lZXRpbmdUeXBlUHJldmlvdXNWYWx1ZSE6IFNlbGVjdE9wdGlvbjtcclxuICBtZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb24hOiBNZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb25bXSB8IG51bGw7XHJcbiAgaW52YWxpZEZvcm1Db250cm9sczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZE1lZXRpbmdJZCE6IHN0cmluZztcclxuICBldmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUhOiBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGU7XHJcbiAgc2VsZWN0ZWRNZWV0aW5nRGF0YSE6IE1lZXRpbmdEZXRhaWxzQ29uZmlndXJhdGlvbjtcclxuICBhdHRlbmRlZXNUeXBlczogQ2hlY2tib3hPcHRpb25bXSA9IHRoaXMuY29uc3RhbnRzPy5hdHRlbmRlZXNUeXBlO1xyXG4gIGlzU3RhbmRhbG9uZU1lZXRpbmcgPSB0cnVlO1xyXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc2VsZWN0ZWRFdmVudERhdGEhOiBFdmVudERldGFpbHNDb25maWd1cmF0aW9uIHwgRXZlbnREYXRlcyB8IG51bGw7XHJcbiAgZXZlbnRTdGFydERhdGUhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgZXZlbnRFbmREYXRlITogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNZWV0aW5nQ29tcG9uZW50LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlOiBFdmVudHNBbmRNZWV0aW5nc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY291bnRyeUFuZFRpbWV6b25lU2VydmljZTogQ291bnRyeUFuZFRpbWV6b25lU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmRlZmF1bHRDb3VudHJpZXMgPVxyXG4gICAgICB0aGlzLmNvdW50cnlBbmRUaW1lem9uZVNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCk7XHJcbiAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZGVmYXVsdFRpbWVab25lcyA9XHJcbiAgICAgIHRoaXMuY291bnRyeUFuZFRpbWV6b25lU2VydmljZS5nZXRVVENUaW1lem9uZU9wdGlvbnMoKTtcclxuICAgIHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKCk7XHJcbiAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLm1hcCgoYXR0ZW5kZWUpID0+IHtcclxuICAgICAgYXR0ZW5kZWUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICBhdHRlbmRlZS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgcmVsYXRlZCBncm91cHMsIG1lZXRpbmcgdHlwZSBhbmQgY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEdyb3VwcygpO1xyXG4gICAgdGhpcy5nZXRNZWV0aW5nVHlwZXMoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nSWQgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRNZWV0aW5nSWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnREYXRhID1cclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmdldFNlbGVjdGVkRXZlbnREYXRhKCk7XHJcbiAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnZpZXdNZWV0aW5nRGV0YWlscyh0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRNZWV0aW5nSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBMb2FkcyBncm91cHMgdXNpbmcgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBHZXRHcm91cFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXM/LmJvZHk/LmZvckVhY2goKGdyb3VwOiBHcm91cEluZm8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBncm91cD8uZ3JvdXBJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBgJHtncm91cD8uZ3JvdXBOYW1lfSAtICR7Z3JvdXA/Lmdyb3VwQWNyb255bX1gLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0R3JvdXBzID0gdGhpcy5ncm91cHM7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICdyZWxhdGVkR3JvdXAnLFxyXG4gICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc29ydE9wdGlvbnModGhpcy5ncm91cHMpLFxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMF1cclxuICAgICAgICAgICAgLmdldCgncmVsYXRlZEdyb3VwJylcclxuICAgICAgICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICB0aGlzLmdyb3Vwcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5ncm91cElkXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIExvYWRzIG1lZXRpbmcgdHlwZXMgYW5kIGJ1c2luZXNzIHJ1bGVzIHVzaW5nIGV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0TWVldGluZ1R5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldE1lZXRpbmdUeXBlcygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHJlcz8uYm9keT8uZm9yRWFjaCgobWVldGluZ1R5cGU6IE1lZXRpbmdUeXBlQ29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVldGluZ1R5cGVzPy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBtZWV0aW5nVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IG1lZXRpbmdUeXBlPy5jb25maWdGaWVsZFZhbHVlPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubWVldGluZ1R5cGVDb25maWd1cmF0aW9uID0gcmVzPy5ib2R5O1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICAgJ21lZXRpbmdUeXBlJyxcclxuICAgICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcyxcclxuICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgICAgICAgICAgLmdldCgnbWVldGluZ1R5cGUnKVxyXG4gICAgICAgICAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAobWVldGluZ190eXBlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIG1lZXRpbmdfdHlwZS5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nVHlwZVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcy9hZGRzIGFwcHJvcHJpYXRlIGZvcm0gZWxlbWVudHMgYmFzZWQgb24gc2VsZWN0ZWQgbWVldGluZyB0eXBlXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybUdyb3Vwc1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKGZvcm1Hcm91cHM6IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAgPSBmb3JtR3JvdXBzO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5mb3JFYWNoKChmb3JtR3JvdXApID0+IHtcclxuICAgICAgaWYgKGZvcm1Hcm91cD8uY29udHJvbHMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChjb250cm9sPy5kaXJ0eSB8fCBjb250cm9sPy50b3VjaGVkKSAmJlxyXG4gICAgICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXHJcbiAgICAgICAgICAgICF0aGlzLmludmFsaWRGb3JtQ29udHJvbHMuaW5jbHVkZXMoY29udHJvbE5hbWUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5pbnZhbGlkRm9ybUNvbnRyb2xzLnB1c2goY29udHJvbE5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG1lZXRpbmdUeXBlQ29udHJvbCA9XHJcbiAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoJ21lZXRpbmdUeXBlJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgICFtZWV0aW5nVHlwZUNvbnRyb2w/LnByaXN0aW5lICYmXHJcbiAgICAgICh0aGlzLm1lZXRpbmdUeXBlUHJldmlvdXNWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdGhpcy5tZWV0aW5nVHlwZVByZXZpb3VzVmFsdWUgIT09IG1lZXRpbmdUeXBlQ29udHJvbD8udmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5tZWV0aW5nVHlwZVByZXZpb3VzVmFsdWUgPSBtZWV0aW5nVHlwZUNvbnRyb2w/LnZhbHVlO1xyXG4gICAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgdGhpcy51cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBtZWV0aW5nIGZvcm0gd2l0aCBjcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXBcclxuICAgKiB0aW1lem9uZSwgY291bnRyeSBhbmQgYXR0ZW5kZWV0eXBlcyBhcmUgbm90IHJlcXVpcmVkIGZvciBub24tc3RhbmRhbG9uZSBtZWV0aW5nXHJcbiAgICogYXMgdGhvc2UgZmllbGRzIGFyZSBjb25zaWRlcmVkIGF0IGV2ZW50IGNyZWF0aW9uIGZvcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEV2ZW50U3RhcnRBbmRFbmREYXRlKCk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cCA9IHtcclxuICAgICAgZm9ybUdyb3VwOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sZWdlbmQ/LmJhc2ljRGV0YWlscyxcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LnJlbGF0ZWRHcm91cCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdyb3Vwcz8uZmluZChcclxuICAgICAgICAgICAgICAgIChncm91cFR5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgIGdyb3VwVHlwZT8uaWQgPT09XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQXHJcbiAgICAgICAgICAgICAgICAgICk/LnZhbHVlPy5pZFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8ucmVsYXRlZEdyb3VwLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICBpc1NlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIG5hbWU6IEZPUk1fQ09OVFJPTFMuTUVFVElOR19OQU1FLFxyXG4gICAgICAgICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5tZWV0aW5nTmFtZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5NRUVUSU5HX05BTUUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfTkFNRVxyXG4gICAgICAgICAgICAgICAgKT8udmFsdWUgPz8gJycsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8ubWVldGluZ05hbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8uY2hhcmFjdGVyTGltaXRzLmxpbWl0VG8xNTBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgICAgICAgIEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zPy5tZWV0aW5nT3JFdmVudE5hbWVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm5cclxuICAgICAgICAgICAgICAgICAgPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgICAgICAgPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/Lm1lZXRpbmdOYW1lLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMTUwLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/Lm1lZXRpbmdUeXBlICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRSxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5tZWV0aW5nVHlwZXM/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAobWVldGluZ1R5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlPy5pZCA9PT1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMF0/LmdldChcclxuICAgICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRVxyXG4gICAgICAgICAgICAgICAgICApPy52YWx1ZT8uaWRcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/Lm1lZXRpbmdUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMubWVldGluZ1R5cGVzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lZXRpbmdUeXBlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8ubWVldGluZ1R5cGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sZWdlbmQ/LmRhdGVBbmRUaW1lLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5EQVRFLFxyXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXI6IHtcclxuICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLlNJTkdMRV9EQVRFX1NFTEVDVElPTixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uc3RhcnREYXRlICsgJyonLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDpcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LmRhdGUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5TVEFSVF9EQVRFLFxyXG4gICAgICAgICAgICAgIGlzTGFiZWxBbGlnbmVkTGVmdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBkYXRlQW5kVGltZVZhbGlkYXRvcihcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5TVEFSVF9EQVRFLFxyXG4gICAgICAgICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50RW5kRGF0ZVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVRpbWVFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvclxyXG4gICAgICAgICAgICAgICAgICA/LmludmFsaWRTdGFydERhdGVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgaW52YWxpZERhdGVSYW5nZUVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yXHJcbiAgICAgICAgICAgICAgICAgID8uaW52YWxpZEV2ZW50TWVldGluZ0RhdGVSYW5nZUVycm9yTWVzc2FnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5EQVRFLFxyXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXI6IHtcclxuICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLlNJTkdMRV9EQVRFX1NFTEVDVElPTixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZW5kRGF0ZSArICcqJyxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LnBsYWNlaG9sZGVyPy5kYXRlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuRU5EX0RBVEUsXHJcbiAgICAgICAgICAgICAgaXNMYWJlbEFsaWduZWRMZWZ0OiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgIEZPUk1fQ09OVFJPTFMuRU5EX0RBVEVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBkYXRlQW5kVGltZVZhbGlkYXRvcihcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5FTkRfREFURSxcclxuICAgICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudFN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudEVuZERhdGVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICBtaW5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8uaW52YWxpZEVuZERhdGUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZW5kRGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LmVuZERhdGUsXHJcbiAgICAgICAgICAgICAgaW52YWxpZERhdGVUaW1lRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3JcclxuICAgICAgICAgICAgICAgICAgPy5pbnZhbGlkRW5kRGF0ZUVycm9yTWVzc2FnZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVJhbmdlRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3JcclxuICAgICAgICAgICAgICAgICAgPy5pbnZhbGlkRXZlbnRNZWV0aW5nRGF0ZVJhbmdlRXJyb3JNZXNzYWdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5USU1FX1BJQ0tFUixcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogRk9STV9DT05UUk9MUy5TVEFSVF9USU1FLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uc3RhcnRUaW1lICsgJyonLFxyXG4gICAgICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV0/LmdldChcclxuICAgICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5TVEFSVF9USU1FXHJcbiAgICAgICAgICAgICAgICApPy52YWx1ZSA/PyAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LnRpbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIGRhdGVBbmRUaW1lVmFsaWRhdG9yKEZPUk1fQ09OVFJPTFMuU1RBUlRfVElNRSwgbnVsbCksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgICAgPy5zdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgaXMyNEhvdXJzVGltZUZvcm1hdDogdHJ1ZSxcclxuICAgICAgICAgICAgICBob3VyMjQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmhvdXIyNCxcclxuICAgICAgICAgICAgICBpc1JlYWRvbmx5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBpbnZhbGlkRGF0ZVRpbWVFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvclxyXG4gICAgICAgICAgICAgICAgICA/LmludmFsaWRTdGFydFRpbWVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRJTUVfUElDS0VSLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLkVORF9USU1FLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZW5kVGltZSArICcqJyxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoXHJcbiAgICAgICAgICAgICAgICAgIEZPUk1fQ09OVFJPTFMuRU5EX1RJTUVcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8udGltZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgZGF0ZUFuZFRpbWVWYWxpZGF0b3IoRk9STV9DT05UUk9MUy5FTkRfVElNRSwgbnVsbCksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5lbmRUaW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uZW5kVGltZSxcclxuICAgICAgICAgICAgICBpczI0SG91cnNUaW1lRm9ybWF0OiB0cnVlLFxyXG4gICAgICAgICAgICAgIGhvdXIyNDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8uaG91cjI0LFxyXG4gICAgICAgICAgICAgIGlzUmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGludmFsaWREYXRlVGltZUVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yXHJcbiAgICAgICAgICAgICAgICAgID8uaW52YWxpZEVuZFRpbWVFcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaXNTdGFuZGFsb25lTWVldGluZykge1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMV0uY29udHJvbHMuc3BsaWNlKDIsIDAsIHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LnRpbWVab25lICsgJyonLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSxcclxuICAgICAgICB2YWx1ZTogdGhpcy50aW1lem9uZXM/LmZpbmQoXHJcbiAgICAgICAgICAoem9uZSkgPT5cclxuICAgICAgICAgICAgem9uZT8uaWQgPT09XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5nZXQoRk9STV9DT05UUk9MUy5USU1FX1pPTkUpXHJcbiAgICAgICAgICAgICAgPy52YWx1ZT8uaWRcclxuICAgICAgICApLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8udGltZVpvbmUsXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy50aW1lem9uZXMsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy50aW1lWm9uZSxcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8udGltZVpvbmUsXHJcbiAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXAuc3BsaWNlKDIsIDAsIHtcclxuICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8ubG9jYXRpb24sXHJcbiAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5TRUxFQ1QsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uY291bnRyeSxcclxuICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQ09VTlRSWSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY291bnRyaWVzPy5maW5kKFxyXG4gICAgICAgICAgICAgIChjb3VudHJ5KSA9PlxyXG4gICAgICAgICAgICAgICAgY291bnRyeT8uaWQgPT09XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsyXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgICBGT1JNX0NPTlRST0xTLkNPVU5UUllcclxuICAgICAgICAgICAgICAgICk/LnZhbHVlPy5pZFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/LmNvdW50cnksXHJcbiAgICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5jb3VudHJpZXMsXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5jb3VudHJ5LFxyXG4gICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgID8uY291bnRyeSxcclxuICAgICAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXAuc3BsaWNlKDMsIDAsIHtcclxuICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8uYXR0ZW5kZWVzLFxyXG4gICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXR0ZW5kZWVzVHlwZSArICcqJyxcclxuICAgICAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQVRURU5ERUVTX1RZUEUsXHJcbiAgICAgICAgICAgIGNoZWNrYm94T3B0aW9uczogdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICAgICAgbWluU2VsZWN0aW9uUmVxdWlyZWQ6IDEsXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5hdHRlbmRlZXNUeXBlLFxyXG4gICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgID8uYXR0ZW5kZWVzVHlwZSxcclxuICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cCBiYXNlZCBvbiBzZWxlY3RlZCBtZWV0aW5nIHR5cGUgYnVzaW5lc3MgcnVsZXMuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZTogQnVzaW5lc3NSdWxlIHwgdW5kZWZpbmVkID1cclxuICAgICAgdGhpcy5tZWV0aW5nVHlwZUNvbmZpZ3VyYXRpb24/LmZpbmQoXHJcbiAgICAgICAgKG1lZXRpbmdUeXBlKSA9PlxyXG4gICAgICAgICAgbWVldGluZ1R5cGU/LmNvbmZpZ0ZpZWxkSWQgPT09XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICBGT1JNX0NPTlRST0xTLk1FRVRJTkdfVFlQRVxyXG4gICAgICAgICAgKT8udmFsdWU/LmlkXHJcbiAgICAgICk/LmNvbmZpZ0ZpZWxkVmFsdWU/LmJ1c2luZXNzUnVsZTtcclxuXHJcbiAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmFsbG93RWRpdGlvbikge1xyXG4gICAgICBjb25zdCBlZGl0aW9uRm9ybUNvbnRyb2w6IEZpZWxkQ29uZmlnID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmVkaXRpb24gK1xyXG4gICAgICAgICAgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc0VkaXRpb25NYW5kYXRvcnkgPyAnKicgOiAnJyksXHJcbiAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuRURJVElPTixcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdPy5nZXQoRk9STV9DT05UUk9MUy5FRElUSU9OKVxyXG4gICAgICAgICAgICA/LnZhbHVlID8/IHRoaXMuY29uc3RhbnRzPy5jaGFycz8uY2hhcjIwMjQsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5lZGl0aW9uLFxyXG4gICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5lZGl0aW9uLFxyXG4gICAgICAgIGlzUmVzaXplOiBmYWxzZSxcclxuICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNFZGl0aW9uTWFuZGF0b3J5XHJcbiAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgOiAnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNFZGl0aW9uTWFuZGF0b3J5XHJcbiAgICAgICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwPy5mb3JtR3JvdXA/LlswXT8uY29udHJvbHMpXHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzBdLmNvbnRyb2xzLnB1c2goXHJcbiAgICAgICAgICBlZGl0aW9uRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5hbGxvd01lZXRpbmdGYWNpbGl0YXRvcikge1xyXG4gICAgICBjb25zdCBmYWNpbGl0YXRvckZvcm1Db250cm9sOiBGaWVsZENvbmZpZyA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRFWFRfQVJFQSxcclxuICAgICAgICBuYW1lOiBGT1JNX0NPTlRST0xTLkZBQ0lMSVRBVE9SLFxyXG4gICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgbGFiZWw6IG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdGYWNpbGl0YXRvck1hbmRhdG9yeVxyXG4gICAgICAgICAgPyB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uZmFjaWxpdGF0b3IgKyAnKidcclxuICAgICAgICAgIDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmZhY2lsaXRhdG9yLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLkZBQ0lMSVRBVE9SLFxyXG4gICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nRmFjaWxpdGF0b3JcclxuICAgICAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5GQUNJTElUQVRPUlxyXG4gICAgICAgICAgICAgICk/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8uZmFjaWxpdGF0b3IsXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvNzUpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFxyXG4gICAgICAgICAgICBFdmVudHNBbmRNZWV0aW5nc1ZhbGlkYXRpb25QYXR0ZXJucz8ubWVldGluZ0ZhY2lsaXRhdG9yXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8ubWVldGluZ0ZhY2lsaXRhdG9yLFxyXG4gICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICA/Lm1lZXRpbmdGYWNpbGl0YXRvcixcclxuICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5mYWNpbGl0YXRvcixcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICA/LmZhY2lsaXRhdG9yLFxyXG4gICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvNzUsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgaXNSZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdGYWNpbGl0YXRvck1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzTWVldGluZ0ZhY2lsaXRhdG9yTWFuZGF0b3J5KVxyXG4gICAgICAgIGZhY2lsaXRhdG9yRm9ybUNvbnRyb2w/LnZhbGlkYXRpb24/LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXA/LmZvcm1Hcm91cD8uWzBdPy5jb250cm9scylcclxuICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMF0uY29udHJvbHMucHVzaChcclxuICAgICAgICAgIGZhY2lsaXRhdG9yRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5hbGxvd01lZXRpbmdMb2NhdGlvbikge1xyXG4gICAgICBjb25zdCBhZGRyZXNzRm9ybUNvbnRyb2w6IEZpZWxkQ29uZmlnID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgIGxhYmVsOiBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNNZWV0aW5nTG9jYXRpb25NYW5kYXRvcnlcclxuICAgICAgICAgID8gdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFkZHJlc3MgKyAnKidcclxuICAgICAgICAgIDogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgbmFtZTogRk9STV9DT05UUk9MUy5BRERSRVNTLFxyXG4gICAgICAgIHJlbWFpbmluZ0NoYXJzTGVmdE1lc3NhZ2U6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5zdXBwb3J0VGV4dD8uY2hhcmFjdGVyc0xlZnQsXHJcbiAgICAgICAgY29udHJvbE5hbWU6IEZPUk1fQ09OVFJPTFMuQUREUkVTUyxcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0xvY2F0aW9uXHJcbiAgICAgICAgICAgIDogdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMl0/LmdldChGT1JNX0NPTlRST0xTLkFERFJFU1MpXHJcbiAgICAgICAgICAgICAgICA/LnZhbHVlID8/ICcnLFxyXG4gICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuY29uc3RhbnRzPy5jaGFyYWN0ZXJMaW1pdHMubGltaXRUbzE1MCksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgIEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zPy5tZWV0aW5nTG9jYXRpb25cclxuICAgICAgICAgICksXHJcbiAgICAgICAgXSxcclxuICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm5cclxuICAgICAgICAgICAgPy5tZWV0aW5nTG9jYXRpb24sXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgID8ubWVldGluZ0xvY2F0aW9uLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5wbGFjZWhvbGRlcj8uYWRkcmVzcyxcclxuICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yTW9kaWZ5TWVldGluZ1RleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmFkZHJlc3MsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgaXNSZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICBtYXhDaGFyQ291bnQ6IHRoaXMuY29uc3RhbnRzPy5jaGFyYWN0ZXJMaW1pdHMubGltaXRUbzE1MCxcclxuICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIG1lZXRpbmdUeXBlQnVzaW5lc3NSdWxlPy5pc01lZXRpbmdMb2NhdGlvbk1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAobWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzTWVldGluZ0xvY2F0aW9uTWFuZGF0b3J5KVxyXG4gICAgICAgIGFkZHJlc3NGb3JtQ29udHJvbD8udmFsaWRhdGlvbj8ucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyAmJlxyXG4gICAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVNZWV0aW5nRm9ybUdyb3VwPy5mb3JtR3JvdXA/LlsyXT8uY29udHJvbHNcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzJdLmNvbnRyb2xzPy5zcGxpY2UoXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIGFkZHJlc3NGb3JtQ29udHJvbFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwLnNwbGljZSgyLCAwLCB7XHJcbiAgICAgICAgICBsZWdlbmQ6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxlZ2VuZD8ubG9jYXRpb24sXHJcbiAgICAgICAgICBjb250cm9sczogW2FkZHJlc3NGb3JtQ29udHJvbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uYWxsb3dWaXJ0dWFsTWVldGluZ1VybCkge1xyXG4gICAgICBjb25zdCBtZWV0aW5nTGlua0Zvcm1Db250cm9sOiBGaWVsZENvbmZpZyA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRFWFRfQVJFQSxcclxuICAgICAgICBsYWJlbDogbWVldGluZ1R5cGVCdXNpbmVzc1J1bGU/LmlzVmlydHVhbE1lZXRpbmdVcmxNYW5kYXRvcnlcclxuICAgICAgICAgID8gdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/Lm1lZXRpbmdMaW5rICsgJyonXHJcbiAgICAgICAgICA6IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5tZWV0aW5nTGluayxcclxuICAgICAgICByZW1haW5pbmdDaGFyc0xlZnRNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8uc3VwcG9ydFRleHQ/LmNoYXJhY3RlcnNMZWZ0LFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiBGT1JNX0NPTlRST0xTLk1FRVRJTkdfTElOSyxcclxuICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8udmlydHVhbE1lZXRpbmdVcmxcclxuICAgICAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsyXT8uZ2V0KFxyXG4gICAgICAgICAgICAgICAgRk9STV9DT05UUk9MUy5NRUVUSU5HX0xJTktcclxuICAgICAgICAgICAgICApPy52YWx1ZSA/PyAnJyxcclxuICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ucGxhY2Vob2xkZXI/Lm1lZXRpbmdMaW5rLFxyXG4gICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lZXRpbmdMaW5rLFxyXG4gICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgID8ubWVldGluZ0xpbmssXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMjUwKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcclxuICAgICAgICAgICAgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnM/LnZpcnR1YWxNZWV0aW5nVXJsXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8udmlydHVhbE1lZXRpbmdVcmwsXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgID8udmlydHVhbE1lZXRpbmdVcmwsXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICBtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNWaXJ0dWFsTWVldGluZ1VybE1hbmRhdG9yeVxyXG4gICAgICAgICAgICA/IHRoaXMuY3JlYXRlT3JNb2RpZnlNZWV0aW5nVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cy5saW1pdFRvMjUwLFxyXG4gICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChtZWV0aW5nVHlwZUJ1c2luZXNzUnVsZT8uaXNWaXJ0dWFsTWVldGluZ1VybE1hbmRhdG9yeSlcclxuICAgICAgICBtZWV0aW5nTGlua0Zvcm1Db250cm9sPy52YWxpZGF0aW9uPy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICBpZiAodGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXA/LmZvcm1Hcm91cD8uWzJdPy5jb250cm9scylcclxuICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMl0uY29udHJvbHMucHVzaChcclxuICAgICAgICAgIG1lZXRpbmdMaW5rRm9ybUNvbnRyb2xcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWVudCBzaWRlIHZhbGlkYXRpb24gYW5kIGNhbGxzIGNyZWF0ZSBtZWV0aW5nIG1ldGhvZHMuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybSAtQXJyYXkgb2YgZm9ybUdyb3VwXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TdWJtaXQoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgZm9ybUdyb3Vwcy5ldmVyeShcclxuICAgICAgICAoZm9ybUdyb3VwOiBGb3JtR3JvdXApID0+IGZvcm1Hcm91cC5zdGF0dXMgPT09IEZvcm1TdGF0dXMuVkFMSURcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KGZvcm1Hcm91cHMpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTWVldGluZyhmb3JtR3JvdXBzKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID09PVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZWRpdE1lZXRpbmcoZm9ybUdyb3Vwcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIG1lZXRpbmcgYmFzaWMgZGV0YWlscywgZGF0ZSBhbmQgdGltZSwgbG9jYXRpb24gZGV0YWlscywgYXR0ZW5kZWUgZGV0YWlscywgYWNjZXNzIGRldGFpbHMgZm9ybSBncm91cCBkYXRhIGFuZCBjb21iaW5pbmcgc3RhcnQgZGF0ZSZ0aW1lIGFuZCBlbmQgZGF0ZSZ0aW1lIGFuZCBjb252ZXJ0aW5nIHRvIFVUQyBmb3JtYXQgYW5kIHBhc3NpbmcgYWxsIHRoZSBmb3JtIGRhdGEgaW4gdGhlIHBheWxvYWQgb2JqZWN0IHRvIGNyZWF0ZSBtZWV0aW5nIEFQSSB0byB0aGUgc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1Hcm91cHNcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmcoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lZXRpbmdCYXNpY0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzFdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ0xvY2F0aW9uRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsyXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdBdHRlbmRlZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bM10/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nQWNjZXNzRGV0YWlscyA9IGZvcm1Hcm91cHM/Lls0XT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdTdGFydERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uc3RhcnREYXRlLmZvcm1hdChcclxuICAgICAgICBEYXRlRm9ybWF0cy5yZXF1ZXN0UGF5bG9hZEZvcm1hdFxyXG4gICAgICApICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnN0YXJ0VGltZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG1lZXRpbmdFbmREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LmVuZERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgICkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uZW5kVGltZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNyZWF0ZU1lZXRpbmdQYXlsb2FkOiBDcmVhdGVPckVkaXRNZWV0aW5nUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IG1lZXRpbmdCYXNpY0RldGFpbHM/LnJlbGF0ZWRHcm91cD8uaWQsXHJcbiAgICAgICAgY291bnRyeTogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQgPz8gbnVsbCxcclxuICAgICAgICBtZWV0aW5nSWQ6XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0U2VsZWN0ZWRNZWV0aW5nSWQoKSA/PyBudWxsLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRTZWxlY3RlZEV2ZW50SWQoKSA/PyBudWxsLFxyXG4gICAgICAgIG1lZXRpbmdGYWNpbGl0YXRvcjogbWVldGluZ0Jhc2ljRGV0YWlscz8uZmFjaWxpdGF0b3IgPz8gbnVsbCxcclxuICAgICAgICBlZGl0aW9uOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5lZGl0aW9uID8/IG51bGwsXHJcbiAgICAgICAgbWVldGluZ1RpdGxlOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICBtZWV0aW5nVHlwZTogbWVldGluZ0Jhc2ljRGV0YWlscz8ubWVldGluZ1R5cGU/LmlkLFxyXG4gICAgICAgIG1lZXRpbmdTdERhdGU6IG1lZXRpbmdTdGFydERhdGUsXHJcbiAgICAgICAgbWVldGluZ0VkRGF0ZTogbWVldGluZ0VuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnRpbWVab25lPy5uYW1lLFxyXG4gICAgICAgIG1lZXRpbmdMb2NhdGlvbjogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyA/PyBudWxsLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBtZWV0aW5nTG9jYXRpb25EZXRhaWxzPy5tZWV0aW5nTGluayA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwUGFydGljaXBhbnRzOiBtZWV0aW5nQXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgb3BlbkZvckFsbDogbWVldGluZ0F0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IG1lZXRpbmdBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBtZWV0aW5nUGFzc3dvcmQ6IG1lZXRpbmdBY2Nlc3NEZXRhaWxzPy5tZWV0aW5nUGFzc3dvcmQgPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuY3JlYXRlTWVldGluZyhjcmVhdGVNZWV0aW5nUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgY3JlYXRlTWVldGluZ1BheWxvYWQucGF5bG9hZC5tZWV0aW5nVGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtIGNhbmNlbCBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZU1lZXRpbmdDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlcyBhbmQgZGlzYWJsZXMgZm9ybSBzdWJtaXQgYnV0dG9uIHdoZW4gY3JlYXRlIG9yIHVwZGF0ZSBtZWV0aW5nIGZvcm0gY2hhbmdlLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1Hcm91cHNcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ0Zvcm1DaGFuZ2UoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc01lZXRpbmdGb3JtSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cC5mb3JtR3JvdXBbMV0/LmNvbnRyb2xzWzFdPy5kYXRlUGlja2VyXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXAuZm9ybUdyb3VwWzFdLmNvbnRyb2xzWzFdLmRhdGVQaWNrZXIubWluRGF0ZSA9XHJcbiAgICAgICAgZm9ybUdyb3Vwc1sxXT8uZ2V0KCdzdGFydERhdGUnKT8udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgIGZvcm1Hcm91cHMuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgPSBmb3JtR3JvdXBzLnNvbWUoXHJcbiAgICAgIChmb3JtR3JvdXApID0+IGZvcm1Hcm91cD8uc3RhdHVzID09PSBGb3JtU3RhdHVzLklOVkFMSURcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgfHxcclxuICAgICAgKHRoaXMuaXNTdGFuZGFsb25lTWVldGluZyAmJiB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcy5sZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWxlcnRzIGZvciBzdWNjZXNzLCBlcnJvciBhbmQgd2FybmluZy5cclxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBzdHJpbmdbXSl9IG1lc3NhZ2UgLXN1Y2Nlc3Mgb3IgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLlxyXG4gICAqIEBwYXJhbSB7QWxlcnRUeXBlfSBhbGVydFR5cGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dBbGVydE1lc3NhZ2UoYWxlcnRUeXBlOiBBbGVydFR5cGUsIG1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IGFsZXJ0VHlwZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYXR0ZW5kZWUgdHlwZSBzZWxlY3Rpb24gaW4gbWVldGluZyBmb3JtLlxyXG4gICAqIEBwYXJhbSB7Q2hlY2tib3hPcHRpb259IGF0dGVuZGVlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbihhdHRlbmRlZVR5cGU6IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoYXR0ZW5kZWVUeXBlPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTCkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzPy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICBpZiAoYXR0ZW5kZWVUeXBlPy5jaGVja2VkICYmIG9wdGlvbj8uaWQgIT09IGF0dGVuZGVlVHlwZS5pZClcclxuICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgZWxzZSBpZiAoIWF0dGVuZGVlVHlwZT8uY2hlY2tlZCAmJiBvcHRpb24/LmlkICE9PSBhdHRlbmRlZVR5cGUuaWQpXHJcbiAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAnYXR0ZW5kZWVzVHlwZScsXHJcbiAgICAgICAgJ2NoZWNrYm94T3B0aW9ucycsXHJcbiAgICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBhdHRlbmRlZVR5cGU/LmlkID09PSBBdHRlbmRlZVR5cGUuR1JPVVBfTUVNQkVSUyB8fFxyXG4gICAgICBhdHRlbmRlZVR5cGU/LmlkID09PSBBdHRlbmRlZVR5cGUuUkVHSVNURVJFRF9QQVJUSUNJUEFOVFNcclxuICAgICkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzXHJcbiAgICAgICAgPy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTClcclxuICAgICAgICAubWFwKChmaWx0ZXJlZE9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGF0dGVuZGVlVHlwZT8uY2hlY2tlZCkgcmV0dXJuIChmaWx0ZXJlZE9wdGlvbi5kaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgICAgICAgZWxzZSBpZiAodGhpcy5jYW5FbmFibGVPcGVuRm9yQWxsQ2hlY2tib3goKSlcclxuICAgICAgICAgICAgcmV0dXJuIChmaWx0ZXJlZE9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZE9wdGlvbjtcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICdhdHRlbmRlZXNUeXBlJyxcclxuICAgICAgICAnY2hlY2tib3hPcHRpb25zJyxcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLFxyXG4gICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKGF0dGVuZGVlVHlwZT8uY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcz8ucHVzaChhdHRlbmRlZVR5cGUuaWQgYXMgc3RyaW5nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRlbmRlZVR5cGVzID0gdGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMuZmlsdGVyKFxyXG4gICAgICAgICh2YWx1ZSkgPT4gdmFsdWUgIT09IGF0dGVuZGVlVHlwZS5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNNZWV0aW5nRm9ybUludmFsaWQgPSB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAuc29tZShcclxuICAgICAgKGZvcm1Hcm91cDogRm9ybUdyb3VwKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1Hcm91cC5zdGF0dXMgPT09IEZvcm1TdGF0dXMuSU5WQUxJRDtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pc01lZXRpbmdGb3JtSW52YWxpZCkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXAuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHdoZXRoZXIgYXR0ZW5kZWUgdHlwZSBvciBmb3JtIGlzIGludmFsaWQsIHRoZW4gZGlzYWJsZSBzdWJtaXQgYnV0dG9uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBjaGVja0F0dGVuZGVlVHlwZU9yRm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEodGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMubGVuZ3RoICYmICF0aGlzLmlzTWVldGluZ0Zvcm1JbnZhbGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0IGNyZWF0ZSBtZWV0aW5nIGZvcm0gZ3JvdXAgcmVmZXJlbmNlLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldE1lZXRpbmdGb3JtR3JvdXBSZWYoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cCA9IGZvcm07XHJcbiAgICB0aGlzLmRpc2FibGVBdHRlbmRlZVR5cGVzKCk7XHJcbiAgICB0aGlzLm1hcmtJbnZhbGlkQ29udHJvbHNBc1RvdWNoZWQoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWFyayBpbnZhbGlkIGZvcm0gY29udHJvbHMgdG91Y2hlZFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbWFya0ludmFsaWRDb250cm9sc0FzVG91Y2hlZCgpIHtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cC5mb3JFYWNoKChmb3JtR3JvdXApID0+IHtcclxuICAgICAgdGhpcy5pbnZhbGlkRm9ybUNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XHJcbiAgICAgICAgZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIHRoZSBkcm9wZG93biBvcHRpb25zIGFuZCBzaG93IG9wdGlvbnMgcmVsYXRlZCB0byB0aGF0IHNlYXJjaCBzdHJpbmdcclxuICAgKiBAcGFyYW0ge3sgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH19IGRhdGEgaXQgY29udGFpbnMgb2JqZWN0IG9mIHNlYXJjaEV2ZW50IGFuZCBjb250cm9sTmFtZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybVNlbGVjdFNlYXJjaChkYXRhOiB7IHNlYXJjaEV2ZW50OiBFdmVudDsgY29udHJvbE5hbWU6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGRhdGEuY29udHJvbE5hbWUpIHtcclxuICAgICAgY2FzZSBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORTpcclxuICAgICAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0VGltZVpvbmVzLFxyXG4gICAgICAgICAgdGhpcy50aW1lem9uZXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudGltZXpvbmVzID0gZGF0YS5zZWFyY2hFdmVudFxyXG4gICAgICAgICAgPyB0aGlzLnRpbWV6b25lc1xyXG4gICAgICAgICAgOiB0aGlzLmRlZmF1bHRUaW1lWm9uZXM7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5USU1FX1pPTkUsXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMudGltZXpvbmVzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5DT1VOVFJZOlxyXG4gICAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZmlsdGVyT3B0aW9ucyhcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJpZXMsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5DT1VOVFJZLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZPUk1fQ09OVFJPTFMuUkVMQVRFRF9HUk9VUDpcclxuICAgICAgICB0aGlzLmdyb3VwcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0R3JvdXBzLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgIEZPUk1fQ09OVFJPTFMuUkVMQVRFRF9HUk9VUCxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tpbmcgZm9yIHVuY2hlY2tlZCBjaGVja2JveCBjb3VudCBleGNlcHQgT1BFTl9GT1JfQUxMXHJcbiAgICogQHJldHVybiB7Kn0gIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHVuY2hlY2tlZENvdW50ID0gMDtcclxuICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXM/LmZvckVhY2goKGF0dGVuZGVlVHlwZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgYXR0ZW5kZWVUeXBlPy5pZCAhPT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTCAmJlxyXG4gICAgICAgICFhdHRlbmRlZVR5cGU/LmNoZWNrZWRcclxuICAgICAgKVxyXG4gICAgICAgIHVuY2hlY2tlZENvdW50Kys7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1bmNoZWNrZWRDb3VudCA9PT0gdGhpcy5hdHRlbmRlZXNUeXBlcz8ubGVuZ3RoIC0gMTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgc2V0VmFsaWRhdG9ycyBmdW5jdGlvbiB0byByZXNldCB2YWxpZGF0b3JzIGZvciBTdGFydCBEYXRlIGFuZCBFbmQgRGF0ZS5cclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkRGF0ZX0gZGF0YVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2VsZWN0ZWREYXRlKGRhdGE6IFNlbGVjdGVkRGF0ZSkge1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKGRhdGEuZGF0ZSwgZGF0YT8uY29udHJvbE5hbWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBzZXRWYWxpZGF0b3JzIGZ1bmN0aW9uIHRvIHJlc2V0IHZhbGlkYXRvcnMgZm9yIFN0YXJ0IFRpbWUgYW5kIEVuZCBUaW1lXHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZFRpbWV9IHNlbGVjdGVkVGltZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybVRpbWVTZWxlY3RlZChzZWxlY3RlZFRpbWU6IFNlbGVjdGVkVGltZSkge1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKHNlbGVjdGVkVGltZS50aW1lLCBzZWxlY3RlZFRpbWU/LmNvbnRyb2xOYW1lKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBWYWxpZGF0b3IgYWdhaW4gZm9yIHRoZSBjb250cm9scyBzdGFydCBEYXRlLCBFbmQgRGF0ZSwgU3RhcnQgVGltZSAmIEVuZCBUaW1lIHdoaWNoIGlzIEludmFsaWRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udHJvbE5hbWVcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFZhbGlkYXRvcnModmFsdWU6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFdmVudFN0YXJ0QW5kRW5kRGF0ZSgpO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9XHJcbiAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICA/IHZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5nZXQoJ3N0YXJ0RGF0ZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IGVuZERhdGUgPVxyXG4gICAgICBjb250cm9sTmFtZSA9PT0gRk9STV9DT05UUk9MUy5FTkRfREFURVxyXG4gICAgICAgID8gdmFsdWVcclxuICAgICAgICA6IHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdLmdldCgnZW5kRGF0ZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9XHJcbiAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX1RJTUVcclxuICAgICAgICA/IHZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5nZXQoJ3N0YXJ0VGltZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IGVuZFRpbWUgPVxyXG4gICAgICBjb250cm9sTmFtZSA9PT0gRk9STV9DT05UUk9MUy5FTkRfVElNRVxyXG4gICAgICAgID8gdmFsdWVcclxuICAgICAgICA6IHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdLmdldCgnZW5kVGltZScpPy52YWx1ZTtcclxuICAgIGlmIChcclxuICAgICAgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlICYmIHN0YXJ0VGltZSAmJiBlbmRUaW1lKSB8fFxyXG4gICAgICAoKHN0YXJ0RGF0ZSB8fCBlbmREYXRlKSAmJiB0aGlzLmV2ZW50U3RhcnREYXRlICYmIHRoaXMuZXZlbnRFbmREYXRlKVxyXG4gICAgKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdPy5jb250cm9scykuZm9yRWFjaChcclxuICAgICAgICAoa2V5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoa2V5ICE9PSBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV0uZ2V0KGtleSk/LnN0YXR1cyA9PT1cclxuICAgICAgICAgICAgICAgIEZvcm1TdGF0dXMuSU5WQUxJRCAmJlxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lICE9PSBrZXlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXS5zZXRWYWxpZGF0b3JzKFtcclxuICAgICAgICAgICAgICAgICAgZGF0ZUFuZFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLlNUQVJUX0RBVEVcclxuICAgICAgICAgICAgICAgICAgICAgID8gc3RhcnREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xOYW1lID09PSBGT1JNX0NPTlRST0xTLkVORF9EQVRFXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGVuZERhdGVcclxuICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbE5hbWUgPT09IEZPUk1fQ09OVFJPTFMuU1RBUlRfVElNRVxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBzdGFydFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgIDogZW5kVGltZSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRFbmREYXRlXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzFdXHJcbiAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KVxyXG4gICAgICAgICAgICAgICAgICA/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmlzTWVldGluZ0Zvcm1JbnZhbGlkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cC5zb21lKFxyXG4gICAgICAgICAgICAgICAgICAoZm9ybUdyb3VwOiBGb3JtR3JvdXApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUdyb3VwLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5JTlZBTElEO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRoaXMuY2hlY2tBdHRlbmRlZVR5cGVPckZvcm1WYWxpZCgpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgYXR0ZW5kZWVUeXBlIGNoZWNrYm94IGFjY29yZGluZyB0byB0aGUgc2VsZWN0aW9uXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNhYmxlQXR0ZW5kZWVUeXBlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk6IEZvcm1BcnJheSA9IHRoaXNcclxuICAgICAgLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlszXT8uY29udHJvbHNbXHJcbiAgICAgICdhdHRlbmRlZXNUeXBlJ1xyXG4gICAgXSBhcyBGb3JtQXJyYXk7XHJcbiAgICBpZiAoIXRoaXMuY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCkpXHJcbiAgICAgIGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk/LmF0KDApPy5kaXNhYmxlKCk7XHJcbiAgICBlbHNlIGlmIChhdHRlbmRlZXNUeXBlRm9ybUFycmF5Py5hdCgwKT8udmFsdWUpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5hdHRlbmRlZXNUeXBlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGF0dGVuZGVlc1R5cGVGb3JtQXJyYXk/LmF0KGkpPy5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB2aWV3IG1lZXRpbmcgZGV0YWlscyBhbmQgY2FsbHMgZ2V0IG1lZXRpbmcgZGV0YWlscyBBUEkgYW5kIGVtaXRzIHZpZXcgbWVldGluZyBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHttZWV0aW5nSUR9XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICB2aWV3TWVldGluZ0RldGFpbHMobWVldGluZ0lEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRNZWV0aW5nRGV0YWlscyhtZWV0aW5nSUQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YSA9IHJlcz8uYm9keTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDcmVhdGVPck1vZGlmeU1lZXRpbmdGb3JtR3JvdXAoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGUgZWRpdCBtZWV0aW5nIGRldGFpbHMgb24gZ2V0IHZpZXcgbWVldGluZyBkZXRhaWxzIEFQSSBjYWxsLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRGb3JtR3JvdXBWYWx1ZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlswXVxyXG4gICAgICAuZ2V0KCdyZWxhdGVkR3JvdXAnKVxyXG4gICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBzPy5maWx0ZXIoXHJcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/Lmdyb3VwSWRcclxuICAgICAgICApPy5bMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoJ21lZXRpbmdOYW1lJylcclxuICAgICAgPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/Lm1lZXRpbmdUaXRsZSk7XHJcbiAgICBpZiAodGhpcy5pc1N0YW5kYWxvbmVNZWV0aW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEub3BlbkZvckFsbCkge1xyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNbMF0uY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzBdKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEuZ3JvdXBQYXJ0aWNpcGFudHMgJiZcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGEucmVnaXN0ZXJlZFBhcnRpY2lwYW50c1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzFdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub25BdHRlbmRlZVR5cGVTZWxlY3Rpb24odGhpcy5hdHRlbmRlZXNUeXBlc1sxXSk7XHJcbiAgICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1syXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMl0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YS5ncm91cFBhcnRpY2lwYW50cykge1xyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNbMV0uY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzFdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzJdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub25BdHRlbmRlZVR5cGVTZWxlY3Rpb24odGhpcy5hdHRlbmRlZXNUeXBlc1syXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoJ21lZXRpbmdUeXBlJylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLm1lZXRpbmdUeXBlcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nVHlwZVxyXG4gICAgICAgIClbMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzBdXHJcbiAgICAgIC5nZXQoRk9STV9DT05UUk9MUy5FRElUSU9OKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8uZWRpdGlvbik7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuU1RBUlRfREFURSlcclxuICAgICAgPy5zZXRWYWx1ZShtb21lbnQodGhpcy5zZWxlY3RlZE1lZXRpbmdEYXRhPy5tZWV0aW5nU3REYXRlKSk7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuRU5EX0RBVEUpXHJcbiAgICAgID8uc2V0VmFsdWUobW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0VkRGF0ZSkpO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV1cclxuICAgICAgLmdldChGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSlcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLnRpbWV6b25lcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWVldGluZ0RhdGE/LnRpbWVab25lXHJcbiAgICAgICAgKVswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlNZWV0aW5nRm9ybUdyb3VwPy5bMV1cclxuICAgICAgLmdldChGT1JNX0NPTlRST0xTLlNUQVJUX1RJTUUpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgbW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ1N0RGF0ZSkuZm9ybWF0KCdoaDptbScpXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeU1lZXRpbmdGb3JtR3JvdXA/LlsxXVxyXG4gICAgICAuZ2V0KEZPUk1fQ09OVFJPTFMuRU5EX1RJTUUpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgbW9tZW50KHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8ubWVldGluZ0VkRGF0ZSkuZm9ybWF0KCdoaDptbScpXHJcbiAgICAgICk7XHJcbiAgICBpZiAodGhpcy5pc1N0YW5kYWxvbmVNZWV0aW5nKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5TWVldGluZ0Zvcm1Hcm91cD8uWzJdXHJcbiAgICAgICAgLmdldChGT1JNX0NPTlRST0xTLkNPVU5UUlkpXHJcbiAgICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICAgIHRoaXMuY291bnRyaWVzPy5maWx0ZXIoXHJcbiAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuc2VsZWN0ZWRNZWV0aW5nRGF0YT8uY291bnRyeVxyXG4gICAgICAgICAgKVswXVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgZWRpdCBtZWV0aW5nIHBheWxvYWQgYW5kIGNhbGxzIGVkaXQgbWVldGluZyBBUEkgYW5kIGVtaXRzIGVkaXQgbWVldGluZyBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtR3JvdXBzXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBlZGl0TWVldGluZyhmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbWVldGluZ0Jhc2ljRGV0YWlscyA9IGZvcm1Hcm91cHM/LlswXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bMV0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBtZWV0aW5nTG9jYXRpb25EZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzJdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ0F0dGVuZGVlRGV0YWlscyA9IGZvcm1Hcm91cHM/LlszXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IG1lZXRpbmdBY2Nlc3NEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzRdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgbWVldGluZ1N0YXJ0RGF0ZSA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmNvbnZlcnREYXRlVGltZVRvVVRDKFxyXG4gICAgICBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzPy5zdGFydERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgICkgK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uc3RhcnRUaW1lXHJcbiAgICApO1xyXG4gICAgY29uc3QgbWVldGluZ0VuZERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgbWVldGluZ0RhdGVBbmRUaW1lRGV0YWlscz8uZW5kRGF0ZS5mb3JtYXQoXHJcbiAgICAgICAgRGF0ZUZvcm1hdHMucmVxdWVzdFBheWxvYWRGb3JtYXRcclxuICAgICAgKSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICBtZWV0aW5nRGF0ZUFuZFRpbWVEZXRhaWxzPy5lbmRUaW1lXHJcbiAgICApO1xyXG4gICAgY29uc3QgZWRpdE1lZXRpbmdQYXlsb2FkOiBDcmVhdGVPckVkaXRNZWV0aW5nUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IG1lZXRpbmdCYXNpY0RldGFpbHM/LnJlbGF0ZWRHcm91cD8uaWQsXHJcbiAgICAgICAgY291bnRyeTogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQgPz8gbnVsbCxcclxuICAgICAgICBtZWV0aW5nSWQ6XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0U2VsZWN0ZWRNZWV0aW5nSWQoKSA/PyBudWxsLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRTZWxlY3RlZEV2ZW50SWQoKSA/PyBudWxsLFxyXG4gICAgICAgIG1lZXRpbmdGYWNpbGl0YXRvcjogbWVldGluZ0Jhc2ljRGV0YWlscz8uZmFjaWxpdGF0b3IgPz8gbnVsbCxcclxuICAgICAgICBlZGl0aW9uOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5lZGl0aW9uID8/IG51bGwsXHJcbiAgICAgICAgbWVldGluZ1RpdGxlOiBtZWV0aW5nQmFzaWNEZXRhaWxzPy5tZWV0aW5nTmFtZSxcclxuICAgICAgICBtZWV0aW5nVHlwZTogbWVldGluZ0Jhc2ljRGV0YWlscz8ubWVldGluZ1R5cGU/LmlkLFxyXG4gICAgICAgIG1lZXRpbmdTdERhdGU6IG1lZXRpbmdTdGFydERhdGUsXHJcbiAgICAgICAgbWVldGluZ0VkRGF0ZTogbWVldGluZ0VuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IG1lZXRpbmdEYXRlQW5kVGltZURldGFpbHM/LnRpbWVab25lPy5uYW1lLFxyXG4gICAgICAgIG1lZXRpbmdMb2NhdGlvbjogbWVldGluZ0xvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyA/PyBudWxsLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBtZWV0aW5nTG9jYXRpb25EZXRhaWxzPy5tZWV0aW5nTGluayA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwUGFydGljaXBhbnRzOiBtZWV0aW5nQXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgb3BlbkZvckFsbDogbWVldGluZ0F0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IG1lZXRpbmdBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBtZWV0aW5nUGFzc3dvcmQ6IG1lZXRpbmdBY2Nlc3NEZXRhaWxzPy5tZWV0aW5nUGFzc3dvcmQgPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZWRpdE1lZXRpbmcoZWRpdE1lZXRpbmdQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBlZGl0TWVldGluZ1BheWxvYWQucGF5bG9hZC5tZWV0aW5nVGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVPck1vZGlmeU1lZXRpbmdUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8udXBkYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzZWxlY3RlZCBldmVudCBzdGFydCBhbmQgZW5kIGRhdGUuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRFdmVudFN0YXJ0QW5kRW5kRGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRTdGFydERhdGUgPSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5zdGFydERhdGUgPz8gJyc7XHJcbiAgICB0aGlzLmV2ZW50RW5kRGF0ZSA9IHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmVuZERhdGUgPz8gJyc7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBkcm9wZG93biBvcHRpb25zIHRvIGRlZmF1bHQgd2hlbiB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIGFuZCB0aGUgZHJvcGRvd24gb3B0aW9ucyBhcmUgaXMgZW1wdHkuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcGVuZWRTdGF0ZX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5USU1FX1pPTkU6XHJcbiAgICAgICAgdGhpcy50aW1lem9uZXMgPVxyXG4gICAgICAgICAgIWV2ZW50Lm9wZW5lZCAmJiB0aGlzLnRpbWV6b25lcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICAgPyB0aGlzLmRlZmF1bHRUaW1lWm9uZXNcclxuICAgICAgICAgICAgOiB0aGlzLnRpbWV6b25lcztcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICBGT1JNX0NPTlRST0xTLlRJTUVfWk9ORSxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy50aW1lem9uZXMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGT1JNX0NPTlRST0xTLkNPVU5UUlk6XHJcbiAgICAgICAgdGhpcy5jb3VudHJpZXMgPVxyXG4gICAgICAgICAgIWV2ZW50Lm9wZW5lZCAmJiB0aGlzLmNvdW50cmllcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICAgPyB0aGlzLmRlZmF1bHRDb3VudHJpZXNcclxuICAgICAgICAgICAgOiB0aGlzLmNvdW50cmllcztcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICBGT1JNX0NPTlRST0xTLkNPVU5UUlksXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMuY291bnRyaWVzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQOlxyXG4gICAgICAgIHRoaXMuZ3JvdXBzID1cclxuICAgICAgICAgICFldmVudC5vcGVuZWQgJiYgdGhpcy5ncm91cHMubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICAgID8gdGhpcy5kZWZhdWx0R3JvdXBzXHJcbiAgICAgICAgICAgIDogdGhpcy5ncm91cHM7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgRk9STV9DT05UUk9MUy5SRUxBVEVEX0dST1VQLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLmdyb3VwcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWNyZWF0ZS11cGRhdGUtbWVldGluZy1jb250YWluZXJcIj5cclxuICA8aWVlZXNhLWR5bmFtaWMtZm9ybVxyXG4gICAgY2xhc3M9XCJpZWVlc2EtY3JlYXRlLXVwZGF0ZS1tZWV0aW5nLWZvcm1cIlxyXG4gICAgKm5nSWY9XCJjcmVhdGVPclVwZGF0ZU1lZXRpbmdGb3JtR3JvdXBcIlxyXG4gICAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gICAgW3JpZ2h0QnV0dG9uTGFiZWxdPVwicmlnaHRCdXR0b25MYWJlbFwiXHJcbiAgICBbYWN0aW9uQnV0dG9uQWxpZ25dPVwiYWN0aW9uQnV0dG9uQWxpZ25cIlxyXG4gICAgW2lzU3VibWl0QnV0dG9uRGlzYWJsZWRdPVwiaXNTdWJtaXRCdXR0b25EaXNhYmxlZFwiXHJcbiAgICBbaXNMZWdlbmRWaXNpYmxlXT1cInRydWVcIlxyXG4gICAgW2NvbFdpZHRoXT1cImNvbFdpZHRoXCJcclxuICAgIFtmb3JtR3JvdXBzXT1cImNyZWF0ZU9yVXBkYXRlTWVldGluZ0Zvcm1Hcm91cFwiXHJcbiAgICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cInRydWVcIlxyXG4gICAgKGZvcm1DaGVja2JveFNlbGVjdGlvbik9XCJvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldE1lZXRpbmdGb3JtR3JvdXBSZWYoJGV2ZW50KVwiXHJcbiAgICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cImNyZWF0ZU1lZXRpbmdDYW5jZWxsZWQoKVwiXHJcbiAgICAoZm9ybVN1Ym1pdCk9XCJvbkZvcm1TdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAoZm9ybUNoYW5nZSk9XCJvbkZvcm1DaGFuZ2UoJGV2ZW50KTsgb25NZWV0aW5nRm9ybUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cImZvcm1TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAoZm9ybURhdGVTZWxlY3RlZCk9XCJzZWxlY3RlZERhdGUoJGV2ZW50KVwiXHJcbiAgICAoZm9ybVRpbWVTZWxlY3RlZCk9XCJmb3JtVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgKGRyb3Bkb3duT3BlbmVkQ2hhbmdlKT1cIm9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWR5bmFtaWMtZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|