@james_jayaraj/test-npm 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,8 +16,10 @@ export class ConfirmPatientContactDetailsComponent {
16
16
  this.rxemailId = "";
17
17
  this.rxEmailFlag = true;
18
18
  this.MobileNo = this.commonServices.patientDetails.phone;
19
- this.Email = this.commonServices.isScriptToPharmacy == 1 && this.commonServices.pharmacyEmail != null && this.commonServices.pharmacyEmail != "" ? this.commonServices.pharmacyEmail : this.commonServices.patientDetails.email;
19
+ this.Email = this.commonServices.isScriptToPharmacy == 1 && this.commonServices.scriptType?.toLocaleLowerCase() !== 'm' && this.commonServices.pharmacyEmail != null && this.commonServices.pharmacyEmail != "" ? this.commonServices.pharmacyEmail : this.commonServices.patientDetails.email;
20
20
  this.commonServices.isScriptToPharmacy == 1 ? this.AddressSendToAddType = "Email" : this.AddressSendToAddType = "SMS";
21
+ this.scriptType = this.commonServices.scriptType?.toLocaleLowerCase();
22
+ this.AddressSendToAddType = this.commonServices.scriptType.toLocaleLowerCase() == 'e' ? 'SMS' : 'email';
21
23
  }
22
24
  ngOnInit() {
23
25
  try {
@@ -125,10 +127,10 @@ export class ConfirmPatientContactDetailsComponent {
125
127
  }
126
128
  }
127
129
  ConfirmPatientContactDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfirmPatientContactDetailsComponent, deps: [{ token: i0.ElementRef }, { token: i1.CommonServices }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
128
- ConfirmPatientContactDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ConfirmPatientContactDetailsComponent, selector: "app-confirm-patient-contact-details", outputs: { closeEvent: "closeEvent", submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["rxwidgets"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">{{modaldata==1?'Confirm Patient Contact Details':'Cease Prescription'}}</p>\r\n <button type=\"button\" class=\"rx_record_popup_close\" (click)=\"close(1)\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div *ngIf=\"modaldata==1\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span\r\n class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\" [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n (click)=\"radioChange(2)\" class=\"mdl-radio__button d-inline radio custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"tel\"\r\n id=\"mobile-number\" (keypress)=\"checkMobile($event)\"\r\n placeholder=\"04 123 45678\" [(ngModel)]=\"MobileNo\"\r\n style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"email\"\r\n id=\"mobile-number\"\r\n placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n (click)=\"close(2)\">Send</button>\r\n </div>\r\n <div class=\"btn-print\"><button (click)=\"close(3)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Send\r\n &amp; Print</button></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modaldata==2\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <span class=\"new_rx_IncludeBrand_popup_text\">The selected SCID is already dispensed to the patient. You can choose to cease the prescription to\r\n prevent future dispenses to the patient.</span>\r\n </div>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n <div class=\"btn-print \" style=\"margin-left: 10px;\"><button (click)=\"close(4)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Cease Prescription</button></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.btn-print{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
130
+ ConfirmPatientContactDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ConfirmPatientContactDetailsComponent, selector: "app-confirm-patient-contact-details", outputs: { closeEvent: "closeEvent", submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["rxwidgets"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">{{modaldata==1?'Confirm Patient Contact Details':'Cease Prescription'}}</p>\r\n <button type=\"button\" class=\"rx_record_popup_close\" (click)=\"close(1)\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div *ngIf=\"modaldata==1\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span\r\n class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\" *ngIf=\"scriptType !== 'm'\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\" [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n (click)=\"radioChange(2)\" class=\"mdl-radio__button d-inline radio custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"tel\"\r\n id=\"mobile-number\" (keypress)=\"checkMobile($event)\"\r\n placeholder=\"04 123 45678\" [(ngModel)]=\"MobileNo\"\r\n style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"email\"\r\n id=\"mobile-number\"\r\n placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n (click)=\"close(2)\">Send</button>\r\n </div>\r\n <div class=\"btn-print\" *ngIf=\"scriptType !== 'm'\"><button (click)=\"close(3)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Send\r\n &amp; Print</button></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modaldata==2\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <span class=\"new_rx_IncludeBrand_popup_text\">The selected SCID is already dispensed to the patient. You can choose to cease the prescription to\r\n prevent future dispenses to the patient.</span>\r\n </div>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n <div class=\"btn-print \" style=\"margin-left: 10px;\"><button (click)=\"close(4)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Cease Prescription</button></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.btn-print{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
129
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfirmPatientContactDetailsComponent, decorators: [{
130
132
  type: Component,
131
- args: [{ selector: 'app-confirm-patient-contact-details', template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">{{modaldata==1?'Confirm Patient Contact Details':'Cease Prescription'}}</p>\r\n <button type=\"button\" class=\"rx_record_popup_close\" (click)=\"close(1)\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div *ngIf=\"modaldata==1\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span\r\n class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\" [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n (click)=\"radioChange(2)\" class=\"mdl-radio__button d-inline radio custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"tel\"\r\n id=\"mobile-number\" (keypress)=\"checkMobile($event)\"\r\n placeholder=\"04 123 45678\" [(ngModel)]=\"MobileNo\"\r\n style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"email\"\r\n id=\"mobile-number\"\r\n placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n (click)=\"close(2)\">Send</button>\r\n </div>\r\n <div class=\"btn-print\"><button (click)=\"close(3)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Send\r\n &amp; Print</button></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modaldata==2\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <span class=\"new_rx_IncludeBrand_popup_text\">The selected SCID is already dispensed to the patient. You can choose to cease the prescription to\r\n prevent future dispenses to the patient.</span>\r\n </div>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n <div class=\"btn-print \" style=\"margin-left: 10px;\"><button (click)=\"close(4)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Cease Prescription</button></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.btn-print{display:inline-block}\n"] }]
133
+ args: [{ selector: 'app-confirm-patient-contact-details', template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">{{modaldata==1?'Confirm Patient Contact Details':'Cease Prescription'}}</p>\r\n <button type=\"button\" class=\"rx_record_popup_close\" (click)=\"close(1)\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div *ngIf=\"modaldata==1\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span\r\n class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\" *ngIf=\"scriptType !== 'm'\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\" [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n (click)=\"radioChange(2)\" class=\"mdl-radio__button d-inline radio custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"tel\"\r\n id=\"mobile-number\" (keypress)=\"checkMobile($event)\"\r\n placeholder=\"04 123 45678\" [(ngModel)]=\"MobileNo\"\r\n style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\" type=\"email\"\r\n id=\"mobile-number\"\r\n placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n (click)=\"close(2)\">Send</button>\r\n </div>\r\n <div class=\"btn-print\" *ngIf=\"scriptType !== 'm'\"><button (click)=\"close(3)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Send\r\n &amp; Print</button></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modaldata==2\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <span class=\"new_rx_IncludeBrand_popup_text\">The selected SCID is already dispensed to the patient. You can choose to cease the prescription to\r\n prevent future dispenses to the patient.</span>\r\n </div>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\">Cancel</button>\r\n <div class=\"btn-print \" style=\"margin-left: 10px;\"><button (click)=\"close(4)\"\r\n class=\"mdl-button mdl-js-button mdl-button--raised mdl-button--colored rx_record_change_popup_submit rx_popup_margin_mobile_top\">Cease Prescription</button></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.btn-print{display:inline-block}\n"] }]
132
134
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.CommonServices }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { closeEvent: [{
133
135
  type: Output
134
136
  }], submitEvent: [{
@@ -137,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
137
139
  type: ViewChild,
138
140
  args: ['rxwidgets', { static: true }]
139
141
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob2xhLXJ4L3NyYy9saWIvY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscy9jb25maXJtLXBhdGllbnQtY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvbGEtcngvc3JjL2xpYi9jb25maXJtLXBhdGllbnQtY29udGFjdC1kZXRhaWxzL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU8vSCxNQUFNLE9BQU8scUNBQXFDO0lBV2hELFlBQW9CLFVBQXNCLEVBQVMsY0FBOEIsRUFBVSxZQUErQjtRQUF0RyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBVmhILGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFHZixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUdqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxj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LEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDckQsSUFBSSxRQUFRLEdBQUcsRUFBRSxJQUFJLFFBQVEsR0FBRyxFQUFFO2dCQUNoQyxPQUFPLEtBQUssQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEVBQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsdUNBQXVDLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckgsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O2tJQXZIVSxxQ0FBcUM7c0hBQXJDLHFDQUFxQyxrUUNUbEQsNHhMQXdGeUM7MkZEL0U1QixxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UscUNBQXFDOzhKQUtyQyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ21DLE9BQU87c0JBQWhELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9yY29uZmlnIH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2NvbmZpZyc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2VzIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY2xvc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgncnh3aWRnZXRzJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiO1xyXG4gIHJ4bnVtYmVyID0gXCJcIjtcclxuICByeGVtYWlsSWQgPSBcIlwiO1xyXG4gIE1vYmlsZU5vOiBhbnk7XHJcbiAgRW1haWw6IGFueTtcclxuICByeEVtYWlsRmxhZyA9IHRydWU7XHJcbiAgbW9kYWxkYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgY29tbW9uU2VydmljZXM6IENvbW1vblNlcnZpY2VzLCBwcml2YXRlIGNoYW5nZWRldGVjdDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuTW9iaWxlTm8gPSB0aGlzLmNvbW1vblNlcnZpY2VzLnBhdGllbnREZXRhaWxzLnBob25lO1xyXG4gICAgdGhpcy5FbWFpbCA9IHRoaXMuY29tbW9uU2VydmljZXMuaXNTY3JpcHRUb1BoYXJtYWN5ID09IDEgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IG51bGwgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IFwiXCI/IHRoaXMuY29tbW9uU2VydmljZXMucGhhcm1hY3lFbWFpbCA6IHRoaXMuY29tbW9uU2VydmljZXMucGF0aWVudERldGFpbHMuZW1haWw7XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmlzU2NyaXB0VG9QaGFybWFjeSA9PSAxID8gdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiRW1haWxcIiA6IHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWVwcmVzY3JpcHRpb25fcG9wdXBfd2lkdGgnLCAnNDUwcHgnKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIkNvbmZpcm1QYXRpZW50Q29udGFjdERldGFpbHNDb21wb25lbnRcIiwgXCJuZ09uSW5pdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKGluZGV4OiBhbnkpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdmFyIHNjaGVkdWxlTnVtYmVyID0gdGhpcy5jb21tb25TZXJ2aWNlcy5nZXRTY2hlZHVsZU51bWJlcih0aGlzLmNvbW1vblNlcnZpY2VzLnNlbGVjdGVkRm9ybXVsYXRpb24pO1xyXG4gICAgICBpZiAoaW5kZXggPT0gMiB8fCBpbmRleCA9PSAzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSBcInNtc1wiKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb21tb25TZXJ2aWNlcy5Jc051bGxPckVtcHR5KHRoaXMuTW9iaWxlTm8udHJpbSgpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciB2YWxpZGJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlcy52YWxpZEJ5TW9iaWxlTm8odGhpcy5Nb2JpbGVOby50cmltKCkpO1xyXG4gICAgICAgICAgaWYgKHZhbGlkYnkgPT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWxpZGJ5ID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsaWRieSA9PSAyKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLk1vYmlsZU5vLmNoYXJBdCgwKSAhPSAnMCcpIHsgdGhpcy5Nb2JpbGVObyA9IFwiMFwiICsgdGhpcy5Nb2JpbGVObzsgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLkVtYWlsID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSBcImVtYWlsXCIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbW1vblNlcnZpY2VzLklzTnVsbE9yRW1wdHkodGhpcy5FbWFpbC50cmltKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU5Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTkuY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81OS5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81OS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbW1vblNlcnZpY2VzLnZhbGlkQnlFbWFpbE5vKHRoaXMuRW1haWwudHJpbSgpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl82MC5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzYwLmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNjAuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNjAubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuTW9iaWxlTm8gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5kZXggPT0gMikge1xyXG4gICAgICAgIHZhciBpc1ByaW50QXZhaWxhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoeyBzY2hlZHVsZU51bWJlcjogc2NoZWR1bGVOdW1iZXIsIGlzUHJpbnRBdmFpbGFibGU6IGlzUHJpbnRBdmFpbGFibGUsIEFkZHJlc3NTZW5kVG9BZGRUeXBlOiB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLCByeG51bWJlcjogdGhpcy5Nb2JpbGVOby50cmltKCksIHJ4ZW1haWxJZDogdGhpcy5FbWFpbC50cmltKCkgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgIHZhciBpc1ByaW50QXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdCh7IHNjaGVkdWxlTnVtYmVyOiBzY2hlZHVsZU51bWJlciwgaXNQcmludEF2YWlsYWJsZTogaXNQcmludEF2YWlsYWJsZSwgQWRkcmVzc1NlbmRUb0FkZFR5cGU6IHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUsIHJ4bnVtYmVyOiB0aGlzLk1vYmlsZU5vLnRyaW0oKSwgcnhlbWFpbElkOiB0aGlzLkVtYWlsLnRyaW0oKSB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoeyBmbGFnOiB0cnVlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGluZGV4ID09IDEpIHtcclxuICAgICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChudWxsKTtcclxuICAgICAgICB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnJ4bnVtYmVyID0gXCJcIjtcclxuICAgICAgICB0aGlzLnJ4ZW1haWxJZCA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50XCIsIFwiY2xvc2VcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYWRpb0NoYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaW5kZXggPT0gMSkge1xyXG4gICAgICAgIHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiRW1haWxcIlxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0LmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIkNvbmZpcm1QYXRpZW50Q29udGFjdERldGFpbHNDb21wb25lbnRcIiwgXCJyYWRpb0NoYW5nZVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrTW9iaWxlKGV2dDogYW55KTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHZhciBjaGFyQ29kZSA9IChldnQud2hpY2gpID8gZXZ0LndoaWNoIDogZXZ0LmtleUNvZGU7XHJcbiAgICAgIGlmIChjaGFyQ29kZSA8IDQ4IHx8IGNoYXJDb2RlID4gNTcpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIkNvbmZpcm1QYXRpZW50Q29udGFjdERldGFpbHNDb21wb25lbnRcIiwgXCJjaGVja01vYmlsZVwiKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiUmVhY3RNb2RhbFBvcnRhbCBlX3ByZXNjcmlwdGlvbl9ib3hcIj5cclxuICA8ZGl2IGNsYXNzPVwiUmVhY3RNb2RhbF9fT3ZlcmxheSBSZWFjdE1vZGFsX19PdmVybGF5LS1hZnRlci1vcGVuIG9wZW5fcG9wdXBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJSZWFjdE1vZGFsX19Db250ZW50IFJlYWN0TW9kYWxfX0NvbnRlbnQtLWFmdGVyLW9wZW4gcG9wdXBfaGVhZGVyIGVfcHJlc2NyaXB0aW9uX3BvcHVwX2lubmVyX2JveFwiXHJcbiAgICAgIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cclxuICAgICAgPHAgY2xhc3M9XCJyeF9yZWNvcmRfY2hhbmdlX3BvcHVwXCI+e3ttb2RhbGRhdGE9PTE/J0NvbmZpcm0gUGF0aWVudCBDb250YWN0IERldGFpbHMnOidDZWFzZSBQcmVzY3JpcHRpb24nfX08L3A+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicnhfcmVjb3JkX3BvcHVwX2Nsb3NlXCIgKGNsaWNrKT1cImNsb3NlKDEpXCI+WDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxociBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbGRhdGE9PTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZGwtY2VsbCBtZGwtY2VsbC0tMTItY29sIG1kbC1jZWxsLS04LWNvbC10YWJsZXQgbWRsLWNlbGwtLTQtY29sLXBob25lICBuZXdfcnhfbW9iaWxlX2Z1bGx3aWR0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZW5kIFRva2VuIFZpYTxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dF9jb250ZW50XCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJ4X25ld19wb3B1cF9jaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyeF9uZXdfcmFkaW9ib3hfYnV0dG9uIHJ4LWJ0biByeF9yYWRpb19vdmVyYWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJyeF9yYWRpb19sYWJlbFwiPjxpbnB1dCBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5pc1NjcmlwdFRvUGhhcm1hY3k9PTFcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiIFt2YWx1ZV09XCInU01TJ1wiIChjbGljayk9XCJyYWRpb0NoYW5nZSgxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnc21zJ1wiIC8+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1yYWRpb19fbGFiZWwgcmFkaW9fdHh0XCI+U01TPC9zcGFuPjwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicnhfcmFkaW9fbGFiZWxcIj48aW5wdXQgdHlwZT1cInJhZGlvXCIgW2NoZWNrZWRdPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnZW1haWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmFkaW9DaGFuZ2UoMilcIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGQtaW5saW5lIHJhZGlvIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiIFt2YWx1ZV09XCInRW1haWwnXCI+PHNwYW4gY2xhc3M9XCJtZGwtcmFkaW9fX2xhYmVsIHJhZGlvX3R4dFwiPkUtTWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnc21zJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSBtb2JpbGVudW1iZXItaW5wdXQgYWRkcGF0aWVudC1kZXRhaWxzLWNvbCBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1kbC10ZXh0ZmllbGQgbWRsLWpzLXRleHRmaWVsZCBmaXJzdC1yb3ctaW5wdXRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGZvcj1cIm1vYmlsZS1udW1iZXJcIiBjbGFzcz1cIm5vX3R4dF9jbHJcIj5Nb2JpbGVcclxuICAgICAgICAgICAgICAgICAgTnVtYmVyPC9sYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19mbGFnX251bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZy13XCI+PHNwYW4gY2xhc3M9XCJhZGRwYXRpZW50LWNvdW50cnktZmxhZ1wiPjxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcGFzc2V0cy5ob2xhLmhlYWx0aC9yeC13aWRnZXRzL3J4LWF1c3RyYWxpYS5wbmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX21vYmlsZU5vX2lucHV0XCI+PGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwibWRsLXRleHRmaWVsZF9faW5wdXQgaW5wdXRfdGV4dGZpZWxkXCIgdHlwZT1cInRlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2JpbGUtbnVtYmVyXCIgKGtleXByZXNzKT1cImNoZWNrTW9iaWxlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDQgMTIzIDQ1Njc4XCIgWyhuZ01vZGVsKV09XCJNb2JpbGVOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IG5vbmU7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnZW1haWwnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtZGwtY2VsbCBtZGwtY2VsbC0tMTItY29sIG1kbC1jZWxsLS04LWNvbC10YWJsZXQgbWRsLWNlbGwtLTQtY29sLXBob25lIG1vYmlsZW51bWJlci1pbnB1dCBhZGRwYXRpZW50LWRldGFpbHMtY29sIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLXRleHRmaWVsZCBtZGwtanMtdGV4dGZpZWxkIGZpcnN0LXJvdy1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX3dpZHRoX2ZsZXhcIj48bGFiZWwgZm9yPVwibW9iaWxlLW51bWJlclwiIGNsYXNzPVwibm9fdHh0X2NsclwiPkVtYWlsXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX2ZsYWdfbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19tb2JpbGVOb19pbnB1dFwiPjxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cIm1kbC10ZXh0ZmllbGRfX2lucHV0IGlucHV0X3RleHRmaWVsZFwiIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2JpbGUtbnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInRleHRAZ21haWwuY29tXCIgWyhuZ01vZGVsKV09XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IG5vbmU7XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aHIgY2xhc3M9XCJtLTBcIj48YnI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLW91dGVyXCI+PGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9jYW5jZWwgY2FuY2VsX3NlbmRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKDEpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXNlbmRcIj48YnV0dG9uIGNsYXNzPVwibWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uICByeF9yZWNvcmRfY2hhbmdlX3BvcHVwX3N1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoMilcIj5TZW5kPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXByaW50XCI+PGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoMylcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24gbWRsLWJ1dHRvbi0tcmFpc2VkIG1kbC1idXR0b24tLWNvbG9yZWQgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXQgcnhfcG9wdXBfbWFyZ2luX21vYmlsZV90b3BcIj5TZW5kXHJcbiAgICAgICAgICAgICAgICAmYW1wOyBQcmludDwvYnV0dG9uPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsZGF0YT09MlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1kbC1jZWxsIG1kbC1jZWxsLS0xMi1jb2wgbWRsLWNlbGwtLTgtY29sLXRhYmxldCBtZGwtY2VsbC0tNC1jb2wtcGhvbmUgIG5ld19yeF9tb2JpbGVfZnVsbHdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmV3X3J4X0luY2x1ZGVCcmFuZF9wb3B1cF90ZXh0XCI+VGhlIHNlbGVjdGVkIFNDSUQgaXMgYWxyZWFkeSBkaXNwZW5zZWQgdG8gdGhlIHBhdGllbnQuIFlvdSBjYW4gY2hvb3NlIHRvIGNlYXNlIHRoZSBwcmVzY3JpcHRpb24gdG9cclxuICAgICAgICAgICAgICBwcmV2ZW50IGZ1dHVyZSBkaXNwZW5zZXMgdG8gdGhlIHBhdGllbnQuPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLW91dGVyXCI+PGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9jYW5jZWwgY2FuY2VsX3NlbmRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKDEpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1wcmludCBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4O1wiPjxidXR0b24gKGNsaWNrKT1cImNsb3NlKDQpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24gbWRsLWJ1dHRvbi0tcmFpc2VkIG1kbC1idXR0b24tLWNvbG9yZWQgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXQgcnhfcG9wdXBfbWFyZ2luX21vYmlsZV90b3BcIj5DZWFzZSBQcmVzY3JpcHRpb248L2J1dHRvbj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNyeHdpZGdldHM+IDwvbmctdGVtcGxhdGU+Il19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob2xhLXJ4L3NyYy9saWIvY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscy9jb25maXJtLXBhdGllbnQtY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvbGEtcngvc3JjL2xpYi9jb25maXJtLXBhdGllbnQtY29udGFjdC1kZXRhaWxzL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU8vSCxNQUFNLE9BQU8scUNBQXFDO0lBWWhELFlBQW9CLFVBQXNCLEVBQVMsY0FBOEIsRUFBVSxZQUErQjtRQUF0RyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBWGhILGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFHZixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUlqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDL1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDdEgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDMUcsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJO1lBQ0YsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsT0FBTyxFQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLHVDQUF1QyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ25IO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVO1FBQ2QsSUFBSTtZQUNGLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BHLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLEVBQUU7b0JBQ3BELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO3dCQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDM0YsT0FBTztxQkFDUjtvQkFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2hHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzNGLE9BQU87cUJBQ1I7b0JBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFO3dCQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDM0YsT0FBTztxQkFDUjtvQkFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUU7d0JBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFOzRCQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7eUJBQUU7cUJBQzdFO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNoRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMzRixPQUFPO3FCQUNSO29CQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2lCQUNqQjtnQkFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLEVBQUU7b0JBQ3RELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO3dCQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDM0YsT0FBTztxQkFDUjtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO3dCQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDM0YsT0FBTztxQkFDUjtvQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztpQkFDcEI7YUFDRjtZQUNELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDZCxJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDN007aUJBQ0ksSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNuQixJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDN007aUJBQ0ksSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3RDO2lCQUNJLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxFQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLHVDQUF1QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hIO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUk7WUFDRixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQTthQUNsQztpQkFDSTtnQkFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFBO2FBQ3BDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNuQztRQUNELE9BQU8sRUFBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSx1Q0FBdUMsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUN0SDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUTtRQUNsQixJQUFJO1lBQ0YsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDckQsSUFBSSxRQUFRLEdBQUcsRUFBRSxJQUFJLFFBQVEsR0FBRyxFQUFFO2dCQUNoQyxPQUFPLEtBQUssQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEVBQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsdUNBQXVDLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckgsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O2tJQTFIVSxxQ0FBcUM7c0hBQXJDLHFDQUFxQyxrUUNUbEQsczFMQXdGeUM7MkZEL0U1QixxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UscUNBQXFDOzhKQUtyQyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ21DLE9BQU87c0JBQWhELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9yY29uZmlnIH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2NvbmZpZyc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2VzIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY29uZmlybS1wYXRpZW50LWNvbnRhY3QtZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm0tcGF0aWVudC1jb250YWN0LWRldGFpbHMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY2xvc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgncnh3aWRnZXRzJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiO1xyXG4gIHJ4bnVtYmVyID0gXCJcIjtcclxuICByeGVtYWlsSWQgPSBcIlwiO1xyXG4gIE1vYmlsZU5vOiBhbnk7XHJcbiAgRW1haWw6IGFueTtcclxuICByeEVtYWlsRmxhZyA9IHRydWU7XHJcbiAgbW9kYWxkYXRhOiBhbnk7XHJcbiAgc2NyaXB0VHlwZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNvbW1vblNlcnZpY2VzOiBDb21tb25TZXJ2aWNlcywgcHJpdmF0ZSBjaGFuZ2VkZXRlY3Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLk1vYmlsZU5vID0gdGhpcy5jb21tb25TZXJ2aWNlcy5wYXRpZW50RGV0YWlscy5waG9uZTtcclxuICAgIHRoaXMuRW1haWwgPSB0aGlzLmNvbW1vblNlcnZpY2VzLmlzU2NyaXB0VG9QaGFybWFjeSA9PSAxICYmICB0aGlzLmNvbW1vblNlcnZpY2VzLnNjcmlwdFR5cGU/LnRvTG9jYWxlTG93ZXJDYXNlKCkgIT09ICdtJyAmJiB0aGlzLmNvbW1vblNlcnZpY2VzLnBoYXJtYWN5RW1haWwgIT0gbnVsbCAmJiB0aGlzLmNvbW1vblNlcnZpY2VzLnBoYXJtYWN5RW1haWwgIT0gXCJcIj8gdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsIDogdGhpcy5jb21tb25TZXJ2aWNlcy5wYXRpZW50RGV0YWlscy5lbWFpbDtcclxuICAgIHRoaXMuY29tbW9uU2VydmljZXMuaXNTY3JpcHRUb1BoYXJtYWN5ID09IDEgPyB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gXCJFbWFpbFwiIDogdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiU01TXCI7XHJcbiAgICB0aGlzLnNjcmlwdFR5cGUgPSB0aGlzLmNvbW1vblNlcnZpY2VzLnNjcmlwdFR5cGU/LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gdGhpcy5jb21tb25TZXJ2aWNlcy5zY3JpcHRUeXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gJ2UnID8gJ1NNUycgOiAnZW1haWwnO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1lcHJlc2NyaXB0aW9uX3BvcHVwX3dpZHRoJywgJzQ1MHB4Jyk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50XCIsIFwibmdPbkluaXRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZShpbmRleDogYW55KTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHZhciBzY2hlZHVsZU51bWJlciA9IHRoaXMuY29tbW9uU2VydmljZXMuZ2V0U2NoZWR1bGVOdW1iZXIodGhpcy5jb21tb25TZXJ2aWNlcy5zZWxlY3RlZEZvcm11bGF0aW9uKTtcclxuICAgICAgaWYgKGluZGV4ID09IDIgfHwgaW5kZXggPT0gMykge1xyXG4gICAgICAgIGlmICh0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gXCJzbXNcIikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29tbW9uU2VydmljZXMuSXNOdWxsT3JFbXB0eSh0aGlzLk1vYmlsZU5vLnRyaW0oKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81Ny5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU3Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB2YXIgdmFsaWRieSA9IHRoaXMuY29tbW9uU2VydmljZXMudmFsaWRCeU1vYmlsZU5vKHRoaXMuTW9iaWxlTm8udHJpbSgpKTtcclxuICAgICAgICAgIGlmICh2YWxpZGJ5ID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81Ny5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU3Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsaWRieSA9PSAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTguY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHZhbGlkYnkgPT0gMikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5Nb2JpbGVOby5jaGFyQXQoMCkgIT0gJzAnKSB7IHRoaXMuTW9iaWxlTm8gPSBcIjBcIiArIHRoaXMuTW9iaWxlTm87IH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTguY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5FbWFpbCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gXCJlbWFpbFwiKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb21tb25TZXJ2aWNlcy5Jc051bGxPckVtcHR5KHRoaXMuRW1haWwudHJpbSgpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81OS5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU5LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTkuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTkubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghdGhpcy5jb21tb25TZXJ2aWNlcy52YWxpZEJ5RW1haWxObyh0aGlzLkVtYWlsLnRyaW0oKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNjAubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl82MC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzYwLmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzYwLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLk1vYmlsZU5vID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluZGV4ID09IDIpIHtcclxuICAgICAgICB2YXIgaXNQcmludEF2YWlsYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KHsgc2NoZWR1bGVOdW1iZXI6IHNjaGVkdWxlTnVtYmVyLCBpc1ByaW50QXZhaWxhYmxlOiBpc1ByaW50QXZhaWxhYmxlLCBBZGRyZXNzU2VuZFRvQWRkVHlwZTogdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSwgcnhudW1iZXI6IHRoaXMuTW9iaWxlTm8udHJpbSgpLCByeGVtYWlsSWQ6IHRoaXMuRW1haWwudHJpbSgpIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGluZGV4ID09IDMpIHtcclxuICAgICAgICB2YXIgaXNQcmludEF2YWlsYWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoeyBzY2hlZHVsZU51bWJlcjogc2NoZWR1bGVOdW1iZXIsIGlzUHJpbnRBdmFpbGFibGU6IGlzUHJpbnRBdmFpbGFibGUsIEFkZHJlc3NTZW5kVG9BZGRUeXBlOiB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLCByeG51bWJlcjogdGhpcy5Nb2JpbGVOby50cmltKCksIHJ4ZW1haWxJZDogdGhpcy5FbWFpbC50cmltKCkgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KHsgZmxhZzogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpbmRleCA9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5yeG51bWJlciA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5yeGVtYWlsSWQgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgZXgubWVzc2FnZSwgZXguc3RhY2ssIFwiQ29uZmlybVBhdGllbnRDb250YWN0RGV0YWlsc0NvbXBvbmVudFwiLCBcImNsb3NlXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmFkaW9DaGFuZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGluZGV4ID09IDEpIHtcclxuICAgICAgICB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gXCJTTVNcIlxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIkVtYWlsXCJcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50XCIsIFwicmFkaW9DaGFuZ2VcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja01vYmlsZShldnQ6IGFueSk6IGFueSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YXIgY2hhckNvZGUgPSAoZXZ0LndoaWNoKSA/IGV2dC53aGljaCA6IGV2dC5rZXlDb2RlO1xyXG4gICAgICBpZiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJDb25maXJtUGF0aWVudENvbnRhY3REZXRhaWxzQ29tcG9uZW50XCIsIFwiY2hlY2tNb2JpbGVcIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIlJlYWN0TW9kYWxQb3J0YWwgZV9wcmVzY3JpcHRpb25fYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cIlJlYWN0TW9kYWxfX092ZXJsYXkgUmVhY3RNb2RhbF9fT3ZlcmxheS0tYWZ0ZXItb3BlbiBvcGVuX3BvcHVwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiUmVhY3RNb2RhbF9fQ29udGVudCBSZWFjdE1vZGFsX19Db250ZW50LS1hZnRlci1vcGVuIHBvcHVwX2hlYWRlciBlX3ByZXNjcmlwdGlvbl9wb3B1cF9pbm5lcl9ib3hcIlxyXG4gICAgICB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwicnhfcmVjb3JkX2NoYW5nZV9wb3B1cFwiPnt7bW9kYWxkYXRhPT0xPydDb25maXJtIFBhdGllbnQgQ29udGFjdCBEZXRhaWxzJzonQ2Vhc2UgUHJlc2NyaXB0aW9uJ319PC9wPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInJ4X3JlY29yZF9wb3B1cF9jbG9zZVwiIChjbGljayk9XCJjbG9zZSgxKVwiPlg8L2J1dHRvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICA8aHIgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kYWxkYXRhPT0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSAgbmV3X3J4X21vYmlsZV9mdWxsd2lkdGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfd2lkdGhfZmxleFwiPjxsYWJlbCBjbGFzcz1cImxhYmVsXCI+U2VuZCBUb2tlbiBWaWE8c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHRfY29udGVudFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyeF9uZXdfcG9wdXBfY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnhfbmV3X3JhZGlvYm94X2J1dHRvbiByeC1idG4gcnhfcmFkaW9fb3ZlcmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicnhfcmFkaW9fbGFiZWxcIiAqbmdJZj1cInNjcmlwdFR5cGUgIT09ICdtJ1wiPjxpbnB1dCBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5pc1NjcmlwdFRvUGhhcm1hY3k9PTFcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiIFt2YWx1ZV09XCInU01TJ1wiIChjbGljayk9XCJyYWRpb0NoYW5nZSgxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnc21zJ1wiIC8+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1yYWRpb19fbGFiZWwgcmFkaW9fdHh0XCI+U01TPC9zcGFuPjwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicnhfcmFkaW9fbGFiZWxcIj48aW5wdXQgdHlwZT1cInJhZGlvXCIgW2NoZWNrZWRdPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnZW1haWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmFkaW9DaGFuZ2UoMilcIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGQtaW5saW5lIHJhZGlvIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiIFt2YWx1ZV09XCInRW1haWwnXCI+PHNwYW4gY2xhc3M9XCJtZGwtcmFkaW9fX2xhYmVsIHJhZGlvX3R4dFwiPkUtTWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnc21zJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSBtb2JpbGVudW1iZXItaW5wdXQgYWRkcGF0aWVudC1kZXRhaWxzLWNvbCBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1kbC10ZXh0ZmllbGQgbWRsLWpzLXRleHRmaWVsZCBmaXJzdC1yb3ctaW5wdXRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGZvcj1cIm1vYmlsZS1udW1iZXJcIiBjbGFzcz1cIm5vX3R4dF9jbHJcIj5Nb2JpbGVcclxuICAgICAgICAgICAgICAgICAgTnVtYmVyPC9sYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19mbGFnX251bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZy13XCI+PHNwYW4gY2xhc3M9XCJhZGRwYXRpZW50LWNvdW50cnktZmxhZ1wiPjxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcGFzc2V0cy5ob2xhLmhlYWx0aC9yeC13aWRnZXRzL3J4LWF1c3RyYWxpYS5wbmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX21vYmlsZU5vX2lucHV0XCI+PGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwibWRsLXRleHRmaWVsZF9faW5wdXQgaW5wdXRfdGV4dGZpZWxkXCIgdHlwZT1cInRlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2JpbGUtbnVtYmVyXCIgKGtleXByZXNzKT1cImNoZWNrTW9iaWxlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDQgMTIzIDQ1Njc4XCIgWyhuZ01vZGVsKV09XCJNb2JpbGVOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IG5vbmU7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSAnZW1haWwnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtZGwtY2VsbCBtZGwtY2VsbC0tMTItY29sIG1kbC1jZWxsLS04LWNvbC10YWJsZXQgbWRsLWNlbGwtLTQtY29sLXBob25lIG1vYmlsZW51bWJlci1pbnB1dCBhZGRwYXRpZW50LWRldGFpbHMtY29sIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLXRleHRmaWVsZCBtZGwtanMtdGV4dGZpZWxkIGZpcnN0LXJvdy1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX3dpZHRoX2ZsZXhcIj48bGFiZWwgZm9yPVwibW9iaWxlLW51bWJlclwiIGNsYXNzPVwibm9fdHh0X2NsclwiPkVtYWlsXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX2ZsYWdfbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19tb2JpbGVOb19pbnB1dFwiPjxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cIm1kbC10ZXh0ZmllbGRfX2lucHV0IGlucHV0X3RleHRmaWVsZFwiIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2JpbGUtbnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInRleHRAZ21haWwuY29tXCIgWyhuZ01vZGVsKV09XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IG5vbmU7XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aHIgY2xhc3M9XCJtLTBcIj48YnI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLW91dGVyXCI+PGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9jYW5jZWwgY2FuY2VsX3NlbmRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKDEpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXNlbmRcIj48YnV0dG9uIGNsYXNzPVwibWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uICByeF9yZWNvcmRfY2hhbmdlX3BvcHVwX3N1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoMilcIj5TZW5kPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXByaW50XCIgKm5nSWY9XCJzY3JpcHRUeXBlICE9PSAnbSdcIj48YnV0dG9uIChjbGljayk9XCJjbG9zZSgzKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiBtZGwtYnV0dG9uLS1yYWlzZWQgbWRsLWJ1dHRvbi0tY29sb3JlZCByeF9yZWNvcmRfY2hhbmdlX3BvcHVwX3N1Ym1pdCByeF9wb3B1cF9tYXJnaW5fbW9iaWxlX3RvcFwiPlNlbmRcclxuICAgICAgICAgICAgICAgICZhbXA7IFByaW50PC9idXR0b24+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kYWxkYXRhPT0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSAgbmV3X3J4X21vYmlsZV9mdWxsd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZXdfcnhfSW5jbHVkZUJyYW5kX3BvcHVwX3RleHRcIj5UaGUgc2VsZWN0ZWQgU0NJRCBpcyBhbHJlYWR5IGRpc3BlbnNlZCB0byB0aGUgcGF0aWVudC4gWW91IGNhbiBjaG9vc2UgdG8gY2Vhc2UgdGhlIHByZXNjcmlwdGlvbiB0b1xyXG4gICAgICAgICAgICAgIHByZXZlbnQgZnV0dXJlIGRpc3BlbnNlcyB0byB0aGUgcGF0aWVudC48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tb3V0ZXJcIj48YnV0dG9uIGNsYXNzPVwibWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uICByeF9yZWNvcmRfY2hhbmdlX3BvcHVwX2NhbmNlbCBjYW5jZWxfc2VuZFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoMSlcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXByaW50IFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHg7XCI+PGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoNClcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiBtZGwtYnV0dG9uLS1yYWlzZWQgbWRsLWJ1dHRvbi0tY29sb3JlZCByeF9yZWNvcmRfY2hhbmdlX3BvcHVwX3N1Ym1pdCByeF9wb3B1cF9tYXJnaW5fbW9iaWxlX3RvcFwiPkNlYXNlIFByZXNjcmlwdGlvbjwvYnV0dG9uPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3J4d2lkZ2V0cz4gPC9uZy10ZW1wbGF0ZT4iXX0=