@piserve-tech/form-submission 1.3.181 → 1.3.183
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.
|
@@ -216,11 +216,11 @@ export class PasswordFieldsComponent {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordFieldsComponent, deps: [{ token: i1.ValidationService }, { token: i2.ElementTrackerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
219
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordFieldsComponent, selector: "lib-password-fields", inputs: { question: "question", inLine: "inLine" }, outputs: { answerChange: "answerChange" }, ngImport: i0, template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"'question-' + question.id\"\n>\n <div class=\"input-wrapper\" *ngIf=\"!inLine\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n \n <label [for]=\"'passwordField' + questionId\">{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"passwordWrapper\">\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField' + questionId\"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n [class.invalid-question]=\"isInvalid && (!inLine || !enteredPassword)\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"isInvalid && (!inLine || !enteredPassword)\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField' + questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.form-control,.password-input-wrapper{position:relative}.password-input{padding-right:40px}.toggle-password-btn{position:absolute;top:70%;right:15px;transform:translateY(-50%);border:none;background-color:transparent;cursor:pointer}.toggle-password-btn:focus{outline:none}.passwordWrapper,.cnfrmPasswordWrapper{position:relative}.password-strength-meter{width:40%;margin-top:10px;margin-left:auto}.progress{height:10px}.progress-bar{transition:width .3s ease-in-out}.bi{font-size:20px}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordFieldsComponent, selector: "lib-password-fields", inputs: { question: "question", inLine: "inLine" }, outputs: { answerChange: "answerChange" }, ngImport: i0, template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"'question-' + question.id\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n \n <label [for]=\"'passwordField' + questionId\">{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"passwordWrapper\">\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField' + questionId\"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n [class.invalid-question]=\"isInvalid && (!inLine || !enteredPassword)\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"isInvalid && (!inLine || !enteredPassword)\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField' + questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.form-control,.password-input-wrapper{position:relative}.password-input{padding-right:40px}.toggle-password-btn{position:absolute;top:70%;right:15px;transform:translateY(-50%);border:none;background-color:transparent;cursor:pointer}.toggle-password-btn:focus{outline:none}.passwordWrapper,.cnfrmPasswordWrapper{position:relative}.password-strength-meter{width:40%;margin-top:10px;margin-left:auto}.progress{height:10px}.progress-bar{transition:width .3s ease-in-out}.bi{font-size:20px}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
220
220
|
}
|
|
221
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordFieldsComponent, decorators: [{
|
|
222
222
|
type: Component,
|
|
223
|
-
args: [{ selector: 'lib-password-fields', template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"'question-' + question.id\"\n>\n <div class=\"input-wrapper\" *ngIf=\"!inLine\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n \n <label [for]=\"'passwordField' + questionId\">{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"passwordWrapper\">\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField' + questionId\"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n [class.invalid-question]=\"isInvalid && (!inLine || !enteredPassword)\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"isInvalid && (!inLine || !enteredPassword)\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField' + questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.form-control,.password-input-wrapper{position:relative}.password-input{padding-right:40px}.toggle-password-btn{position:absolute;top:70%;right:15px;transform:translateY(-50%);border:none;background-color:transparent;cursor:pointer}.toggle-password-btn:focus{outline:none}.passwordWrapper,.cnfrmPasswordWrapper{position:relative}.password-strength-meter{width:40%;margin-top:10px;margin-left:auto}.progress{height:10px}.progress-bar{transition:width .3s ease-in-out}.bi{font-size:20px}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"] }]
|
|
223
|
+
args: [{ selector: 'lib-password-fields', template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"'question-' + question.id\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n \n <label [for]=\"'passwordField' + questionId\">{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"passwordWrapper\">\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField' + questionId\"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n [class.invalid-question]=\"isInvalid && (!inLine || !enteredPassword)\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"isInvalid && (!inLine || !enteredPassword)\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField' + questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon' + questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.form-control,.password-input-wrapper{position:relative}.password-input{padding-right:40px}.toggle-password-btn{position:absolute;top:70%;right:15px;transform:translateY(-50%);border:none;background-color:transparent;cursor:pointer}.toggle-password-btn:focus{outline:none}.passwordWrapper,.cnfrmPasswordWrapper{position:relative}.password-strength-meter{width:40%;margin-top:10px;margin-left:auto}.progress{height:10px}.progress-bar{transition:width .3s ease-in-out}.bi{font-size:20px}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"] }]
|
|
224
224
|
}], ctorParameters: function () { return [{ type: i1.ValidationService }, { type: i2.ElementTrackerService }]; }, propDecorators: { question: [{
|
|
225
225
|
type: Input
|
|
226
226
|
}], inLine: [{
|
|
@@ -228,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
228
228
|
}], answerChange: [{
|
|
229
229
|
type: Output
|
|
230
230
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvcGFzc3dvcmQtZmllbGRzL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL3Bhc3N3b3JkLWZpZWxkcy9wYXNzd29yZC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUEyQmxDLFlBQ1UsaUJBQW9DLEVBQ3BDLE9BQThCO1FBRDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUE1Qi9CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFakQsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFVbEIsNkJBQXdCLEdBQWEsRUFBRSxDQUFDO1FBQ3hDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQiwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3Qix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLGVBQVUs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LFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDOytHQTlPUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwwSkNUcEMsbWtNQTRLQTs7NEZEbkthLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7NElBS3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWxlbWVudFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcGFzc3dvcmQtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZEZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGNvbmZpcm1QYXNzd29yZCE6IGJvb2xlYW47XG4gIGRpc3BsYXlTdHJlbmd0aCE6IGJvb2xlYW47XG4gIHZpZXdCdXR0b24hOiBib29sZWFuO1xuICBtYXhMZW5ndGghOiBudW1iZXI7XG4gIG1pbkxlbmd0aCE6IG51bWJlcjtcbiAgcmVxdWlyZUxvd2VyY2FzZUxldHRlcnMhOiBib29sZWFuO1xuICByZXF1aXJlVXBwZXJjYXNlTGV0dGVycyE6IGJvb2xlYW47XG4gIHJlcXVpcmVOdW1iZXJzITogYm9vbGVhbjtcbiAgcmVxdWlyZVNwZWNpYWxDaGFyYWN0ZXJzITogYm9vbGVhbjtcbiAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIGNuZnJtVmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRlZENuZnJtUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZW50ZXJlZFBhc3N3b3JkOiBzdHJpbmcgPSAnJztcbiAgZW50ZXJlZENuZnJtUGFzc3dvcmQ6IHN0cmluZyA9ICcnO1xuICBwYXNzd29yZFN0cmVuZ3RoOiBudW1iZXIgPSAwO1xuICBxdWVzdGlvbklkOnN0cmluZz0nJztcbiAgcHJpdmF0ZSBlbGVtZW50SWQ6IHN0cmluZz0nJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFja2VyOiBFbGVtZW50VHJhY2tlclNlcnZpY2VcbiAgKSB7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCkge1xuICAgIHRoaXMucXVlc3Rpb25JZD10aGlzLnF1ZXN0aW9uLmlkO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLnF1ZXN0aW9uLmNvdW50O1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkO1xuICAgIHRoaXMuaGludCA9IHRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5jb25maXJtUGFzc3dvcmQ7XG4gICAgdGhpcy5kaXNwbGF5U3RyZW5ndGggPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZGlzcGxheVN0cm9uZztcbiAgICB0aGlzLnZpZXdCdXR0b24gPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uudmlld0J1dHRvbjtcbiAgICB0aGlzLm1heExlbmd0aCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhMZW5ndGg7XG4gICAgdGhpcy5taW5MZW5ndGggPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluTGVuZ3RoO1xuICAgIHRoaXMucmVxdWlyZUxvd2VyY2FzZUxldHRlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzO1xuICAgIHRoaXMucmVxdWlyZVVwcGVyY2FzZUxldHRlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVVcHBlcmNhc2VMZXR0ZXJzO1xuICAgIHRoaXMucmVxdWlyZU51bWJlcnMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ucmVxdWlyZU51bWJlcnM7XG4gICAgdGhpcy5yZXF1aXJlU3BlY2lhbENoYXJhY3RlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVTcGVjaWFsQ2hhcmFjdGVycztcbiAgICBpZiAodGhpcy5yZXF1aXJlU3BlY2lhbENoYXJhY3RlcnMpIHtcbiAgICAgIHRoaXMuYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzID1cbiAgICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyc1xuICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgLm1hcCgoY2hhcjogYW55KSA9PiBjaGFyLnRyaW0oKSk7XG4gICAgfVxuICAgIHRoaXMuZW50ZXJlZFBhc3N3b3JkID0gdGhpcy5xdWVzdGlvbj8uYW5zd2VyO1xuICB9XG5cbiAgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgIGxldCBwYXNzd29yZEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAncGFzc3dvcmRGaWVsZCcrdGhpcy5xdWVzdGlvbklkXG4gICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGxldCBleWVJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAncGFzc3dvcmRFeWVJY29uJyt0aGlzLnF1ZXN0aW9uSWRcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBpZiAocGFzc3dvcmRGaWVsZC50eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICBwYXNzd29yZEZpZWxkLnR5cGUgPSAndGV4dCc7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2JpLWV5ZS1maWxsJyk7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5hZGQoJ2JpLWV5ZS1zbGFzaC1maWxsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhc3N3b3JkRmllbGQudHlwZSA9ICdwYXNzd29yZCc7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2JpLWV5ZS1zbGFzaC1maWxsJyk7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5hZGQoJ2JpLWV5ZS1maWxsJyk7XG4gICAgfVxuICB9XG4gIHRvZ2dsZUNuZnJtUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgIGxldCBwYXNzd29yZEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAnY25mcm1QYXNzd29yZEZpZWxkJyt0aGlzLnF1ZXN0aW9uSWRcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IGV5ZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICdDbmZybVBhc3N3b3JkRXllSWNvbicrdGhpcy5xdWVzdGlvbklkXG4gICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHBhc3N3b3JkRmllbGQudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgcGFzc3dvcmRGaWVsZC50eXBlID0gJ3RleHQnO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdiaS1leWUtZmlsbCcpO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QuYWRkKCdiaS1leWUtc2xhc2gtZmlsbCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXNzd29yZEZpZWxkLnR5cGUgPSAncGFzc3dvcmQnO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdiaS1leWUtc2xhc2gtZmlsbCcpO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QuYWRkKCdiaS1leWUtZmlsbCcpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrUGFzc3dvcmRNYXRjaCgpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZCh0aGlzLnF1ZXN0aW9uLmlkKTtcbiAgICB0aGlzLnZhbGlkYXRlZENuZnJtUGFzc3dvcmQgPSBmYWxzZTtcbiAgICB0aGlzLmNuZnJtVmFsaWRhdGlvbk1lc3NhZ2UgPSAnJztcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmNvbmZpcm1QYXNzd29yZCAmJiAhdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCkge1xuICAgICAgdGhpcy52YWxpZGF0ZWRDbmZybVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY25mcm1WYWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWxpZCBwYXNzd29yZGA7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5lbnRlcmVkUGFzc3dvcmQgIT0gdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCAmJiB0aGlzLmNvbmZpcm1QYXNzd29yZCkge1xuICAgICAgdGhpcy52YWxpZGF0ZWRDbmZybVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY25mcm1WYWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZHMgZG8gbm90IG1hdGNoJztcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVBhc3N3b3JkKCk7XG4gIH1cblxuICBcblxuICB2YWxpZGF0ZVBhc3N3b3JkKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMucXVlc3Rpb24uaWQpO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnJztcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5lbnRlcmVkUGFzc3dvcmQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbGlkIHBhc3N3b3JkYDtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVVcHBlcmNhc2VMZXR0ZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVOdW1iZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVTcGVjaWFsQ2hhcmFjdGVycyB8fFxuICAgICAgdGhpcy5taW5MZW5ndGggfHxcbiAgICAgIHRoaXMubWF4TGVuZ3RoXG4gICAgKSB7ICAgICAgXG4gICAgICBjb25zdCBsb3dlcmNhc2VSZWdleCA9IC9bYS16XS87XG4gICAgICBjb25zdCB1cHBlcmNhc2VSZWdleCA9IC9bQS1aXS87XG4gICAgICBjb25zdCBudW1iZXJSZWdleCA9IC9cXGQvO1xuICAgICAgY29uc3Qgc3BlY2lhbENoYXJhY3RlclJlZ2V4ID0gbmV3IFJlZ0V4cChgWyR7dGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMuam9pbignJyl9XWApO1xuICAgICAgY29uc3Qgb3RoZXJTcGVjaWFsQ2hhcmFjdGVyUmVnZXggPSBuZXcgUmVnRXhwKGBbXmEtekEtWjAtOSR7dGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMuam9pbignJyl9XWApO1xuICBcbiAgICAgIGxldCBsb3dlckNhc2VWYWxpZGF0ZSA9IGxvd2VyY2FzZVJlZ2V4LnRlc3QodGhpcy5lbnRlcmVkUGFzc3dvcmQpO1xuICAgICAgbGV0IHVwcGVyQ2FzZVZhbGlkYXRlID0gdXBwZXJjYXNlUmVnZXgudGVzdCh0aGlzLmVudGVyZWRQYXNzd29yZCk7XG4gICAgICBsZXQgY29udGFpbnNOdW1iZXIgPSBudW1iZXJSZWdleC50ZXN0KHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgICAgIGxldCBjb250YWluc1NwZWNpYWxDaGFyYWN0ZXIgPSBzcGVjaWFsQ2hhcmFjdGVyUmVnZXgudGVzdCh0aGlzLmVudGVyZWRQYXNzd29yZCk7XG4gICAgICBsZXQgY29udGFpbnNPdGhlclNwZWNpYWxDaGFyYWN0ZXIgPSBvdGhlclNwZWNpYWxDaGFyYWN0ZXJSZWdleC50ZXN0KHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgXG4gICAgICBpZiAoIWxvd2VyQ2FzZVZhbGlkYXRlICYmIHRoaXMucmVxdWlyZUxvd2VyY2FzZUxldHRlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGxvd2VyY2FzZSBsZXR0ZXInO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoIXVwcGVyQ2FzZVZhbGlkYXRlICYmIHRoaXMucmVxdWlyZVVwcGVyY2FzZUxldHRlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHVwcGVyY2FzZSBsZXR0ZXInO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoIWNvbnRhaW5zTnVtYmVyICYmIHRoaXMucmVxdWlyZU51bWJlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIG51bWJlcic7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgfWVsc2UgaWYgKHRoaXMuZW50ZXJlZFBhc3N3b3JkLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7dGhpcy5taW5MZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5lbnRlcmVkUGFzc3dvcmQubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBQYXNzd29yZCBtdXN0IGJlIGxlc3MgdGhhbiAke3RoaXMubWF4TGVuZ3RofSBjaGFyYWN0ZXJzYDtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKCFjb250YWluc1NwZWNpYWxDaGFyYWN0ZXIgJiYgdGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMubGVuZ3RoPjApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyIGZyb20gJHt0aGlzLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyc31gO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZihjb250YWluc090aGVyU3BlY2lhbENoYXJhY3RlciAmJiB0aGlzLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycy5sZW5ndGg+MCl7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnUGFzc3dvcmQgY29udGFpbnMgYW4gaW52YWxpZCBzcGVjaWFsIGNoYXJhY3Rlcic7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmKHRoaXMuY29uZmlybVBhc3N3b3JkKXtcbiAgICAgICAgdGhpcy5jaGVja1Bhc3N3b3JkTWF0Y2goKTtcbiAgICAgIH1cbiAgICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gdHJ1ZTtcbiAgICAgIH0gICAgXG4gICAgfSBlbHNlIHsgICAgICAgICAgICBcbiAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aD10aGlzLmNhbGN1bGF0ZVN0cmVuZ3RoKHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgICB9XG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoID0gdGhpcy5jYWxjdWxhdGVTdHJlbmd0aCh0aGlzLmVudGVyZWRQYXNzd29yZClcbn1cblxuICB2YWxpZGF0ZUlucHV0KGV2ZW50OmFueSl7XG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnJyk7XG4gICAgdGhpcy5lbnRlcmVkUGFzc3dvcmQgPSBzYW5pdGl6ZWRWYWx1ZTtcbiAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlcj1zYW5pdGl6ZWRWYWx1ZTtcbiAgICB0aGlzLnZhbGlkYXRlUGFzc3dvcmQoKTsgIFxuICAgIHRoaXMuYW5zd2VyQ2hhbmdlLmVtaXQoIHRoaXMucXVlc3Rpb24uYW5zd2VyKTsgIFxuICAgIH1cblxuICAgIHZhbGlkYXRlQ25mcm0oZXZlbnQ6YW55KXtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL1xccysvZywgJycpO1xuICAgICAgdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCA9IHNhbml0aXplZFZhbHVlO1xuICAgICAgdGhpcy5jaGVja1Bhc3N3b3JkTWF0Y2goKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVTdHJlbmd0aChwYXNzd29yZDphbnkpIHtcbiAgICAgIGNvbnN0IGxlbmd0aFN0cmVuZ3RoID0gTWF0aC5taW4oMTAwLCAocGFzc3dvcmQubGVuZ3RoIC8gMTIpICogMTAwKTsgLy8gQXNzdW1lIG1heGltdW0gbGVuZ3RoIG9mIDEyIGZvciBmdWxsIHBvaW50c1xuICAgICAgY29uc3QgbG93ZXJjYXNlU3RyZW5ndGggPSAvW2Etel0vLnRlc3QocGFzc3dvcmQpID8gMjAgOiAwO1xuICAgICAgY29uc3QgdXBwZXJjYXNlU3RyZW5ndGggPSAvW0EtWl0vLnRlc3QocGFzc3dvcmQpID8gMjAgOiAwO1xuICAgICAgY29uc3QgbnVtYmVyU3RyZW5ndGggPSAvXFxkLy50ZXN0KHBhc3N3b3JkKSA/IDIwIDogMDtcbiAgICAgIGNvbnN0IHNwZWNpYWxDaGFyYWN0ZXJTdHJlbmd0aCA9IC9bIUAjJCVeJiooKSwuP1wiOnt9fDw+XS8udGVzdChwYXNzd29yZCkgPyAyMCA6IDA7IC8vIEFkanVzdCB0aGlzIHJlZ2V4IGJhc2VkIG9uIHlvdXIgYWxsb3dlZCBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgICBcbiAgICAgIHJldHVybiBsZW5ndGhTdHJlbmd0aCArIGxvd2VyY2FzZVN0cmVuZ3RoICsgdXBwZXJjYXNlU3RyZW5ndGggKyBudW1iZXJTdHJlbmd0aCArIHNwZWNpYWxDaGFyYWN0ZXJTdHJlbmd0aDtcbiAgICB9XG5cbiAgICBoYW5kbGVWYWxpZGF0aW9uKGlzVmFsaWQ6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJykge1xuICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnNldEludmFsaWQodGhpcy5xdWVzdGlvbi5pZCwgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICEhdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgfVxuICBcbiAgICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMucXVlc3Rpb24uaWQpO1xuICAgIH1cbiAgXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIFxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgaWYgKHRoaXMuZWxlbWVudElkKSB7XG4gICAgICAgIHRoaXMudHJhY2tlci51bnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gICAgICB9XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cInsgJ21iLTQnOiAhaW5MaW5lIH1cIlxuICBjbGFzcz1cInB4LTNcIlxuICBbaWRdPVwiJ3F1ZXN0aW9uLScgKyBxdWVzdGlvbi5pZFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIiAqbmdJZj1cIiFpbkxpbmVcIj5cbiAgICAgIDxkaXYgW2lubmVySFRNTF09XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiPjwvZGl2PlxuICAgICAgJm5ic3A7Jm5ic3A7XG4gICAgICA8bGFiZWwgW2Zvcl09XCIncGFzc3dvcmRGaWVsZCcgKyBxdWVzdGlvbklkXCI+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsXG4gICAgICA+Jm5ic3A7XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3ZnLXdyYXBwZXIgbWItMiBoaW50SWNvblwiXG4gICAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAgICpuZ0lmPVwiaGludFwiXG4gICAgICA+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICBjbGFzcz1cImhpbnRTdmdcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAgMzBcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTE1IDI2LjI1VjI2LjI1QzguNzg2MjUgMjYuMjUgMy43NSAyMS4yMTM4IDMuNzUgMTVWMTVDMy43NSA4Ljc4NjI1IDguNzg2MjUgMy43NSAxNSAzLjc1VjMuNzVDMjEuMjEzOCAzLjc1IDI2LjI1IDguNzg2MjUgMjYuMjUgMTVWMTVDMjYuMjUgMjEuMjEzOCAyMS4yMTM4IDI2LjI1IDE1IDI2LjI1WlwiXG4gICAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTQuOTk4OCAyMEMxNC44MjYzIDIwIDE0LjY4NjMgMjAuMTQgMTQuNjg3NSAyMC4zMTI1QzE0LjY4NzUgMjAuNDg1IDE0LjgyNzUgMjAuNjI1IDE1IDIwLjYyNUMxNS4xNzI1IDIwLjYyNSAxNS4zMTI1IDIwLjQ4NSAxNS4zMTI1IDIwLjMxMjVDMTUuMzEyNSAyMC4xNCAxNS4xNzI1IDIwIDE0Ljk5ODggMjBcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmRXcmFwcGVyXCI+XG4gICAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtYi0yIGhlaWdodFwiXG4gICAgICBbaWRdPVwiJ3Bhc3N3b3JkRmllbGQnICsgcXVlc3Rpb25JZFwiXG4gICAgICAoYmx1cik9XCJ2YWxpZGF0ZVBhc3N3b3JkKClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJlbnRlcmVkUGFzc3dvcmRcIlxuICAgICAgW2NsYXNzLmludmFsaWRdPVwidmFsaWRhdGlvbkZhaWxlZFwiXG4gICAgICBbY2xhc3MuaW52YWxpZC1xdWVzdGlvbl09XCJpc0ludmFsaWQgJiYgKCFpbkxpbmUgfHwgIWVudGVyZWRQYXNzd29yZClcIlxuICAgICAgKGlucHV0KT1cInZhbGlkYXRlSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInRvZ2dsZVBhc3N3b3JkQnRuXCJcbiAgICAgIGNsYXNzPVwidG9nZ2xlLXBhc3N3b3JkLWJ0blwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KClcIlxuICAgICAgKm5nSWY9XCJ2aWV3QnV0dG9uXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWV5ZS1maWxsXCIgW2lkXT1cIidwYXNzd29yZEV5ZUljb24nICsgcXVlc3Rpb25JZFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyXCIgKm5nSWY9XCJkaXNwbGF5U3RyZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxuICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwicGFzc3dvcmRTdHJlbmd0aCArICclJ1wiXG4gICAgICAgIFtjbGFzcy5iZy1kYW5nZXJdPVwicGFzc3dvcmRTdHJlbmd0aCA8IDMwXCJcbiAgICAgICAgW2NsYXNzLmJnLXdhcm5pbmddPVwicGFzc3dvcmRTdHJlbmd0aCA+PSAzMCAmJiBwYXNzd29yZFN0cmVuZ3RoIDwgNzBcIlxuICAgICAgICBbY2xhc3MuYmctc3VjY2Vzc109XCJwYXNzd29yZFN0cmVuZ3RoID49IDcwXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJpc0ludmFsaWQgJiYgKCFpbkxpbmUgfHwgIWVudGVyZWRQYXNzd29yZClcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRmFpbGVkICYmICFpc0ludmFsaWRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG1iLTJcIj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInZhbGlkYXRpb25TdmdcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCJcbiAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2U9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyB2YWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY25mcm1QYXNzd29yZFdyYXBwZXJcIiAqbmdJZj1cImNvbmZpcm1QYXNzd29yZFwiPlxuICAgIDxsYWJlbCBmb3I9XCInY25mcm1QYXNzd29yZEZpZWxkJytxdWVzdGlvbklkXCI+Q29uZmlybSBwYXNzd29yZDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItMiBoZWlnaHRcIlxuICAgICAgW2lkXT1cIidjbmZybVBhc3N3b3JkRmllbGQnICsgcXVlc3Rpb25JZFwiXG4gICAgICAoYmx1cik9XCJjaGVja1Bhc3N3b3JkTWF0Y2goKVwiXG4gICAgICBbKG5nTW9kZWwpXT1cImVudGVyZWRDbmZybVBhc3N3b3JkXCJcbiAgICAgIFtjbGFzcy5pbnZhbGlkXT1cInZhbGlkYXRlZENuZnJtUGFzc3dvcmRcIlxuICAgICAgKGlucHV0KT1cInZhbGlkYXRlQ25mcm0oJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInRvZ2dsZUNuZnJtUGFzc3dvcmRCdG5cIlxuICAgICAgY2xhc3M9XCJ0b2dnbGUtcGFzc3dvcmQtYnRuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDbmZybVBhc3N3b3JkVmlzaWJpbGl0eSgpXCJcbiAgICAgICpuZ0lmPVwidmlld0J1dHRvblwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS1leWUtZmlsbFwiIFtpZF09XCInQ25mcm1QYXNzd29yZEV5ZUljb24nICsgcXVlc3Rpb25JZFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ2YWxpZGF0ZWRDbmZybVBhc3N3b3JkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IGNuZnJtVmFsaWRhdGlvbk1lc3NhZ2UgfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvcGFzc3dvcmQtZmllbGRzL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL3Bhc3N3b3JkLWZpZWxkcy9wYXNzd29yZC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUEyQmxDLFlBQ1UsaUJBQW9DLEVBQ3BDLE9BQThCO1FBRDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUE1Qi9CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFakQsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFVbEIsNkJBQXdCLEdBQWEsRUFBRSxDQUFDO1FBQ3hDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQiwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3Qix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLGVBQVUs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LFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDOytHQTlPUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwwSkNUcEMsd2tNQTRLQTs7NEZEbkthLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7NElBS3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWxlbWVudFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcGFzc3dvcmQtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bhc3N3b3JkLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZEZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGNvbmZpcm1QYXNzd29yZCE6IGJvb2xlYW47XG4gIGRpc3BsYXlTdHJlbmd0aCE6IGJvb2xlYW47XG4gIHZpZXdCdXR0b24hOiBib29sZWFuO1xuICBtYXhMZW5ndGghOiBudW1iZXI7XG4gIG1pbkxlbmd0aCE6IG51bWJlcjtcbiAgcmVxdWlyZUxvd2VyY2FzZUxldHRlcnMhOiBib29sZWFuO1xuICByZXF1aXJlVXBwZXJjYXNlTGV0dGVycyE6IGJvb2xlYW47XG4gIHJlcXVpcmVOdW1iZXJzITogYm9vbGVhbjtcbiAgcmVxdWlyZVNwZWNpYWxDaGFyYWN0ZXJzITogYm9vbGVhbjtcbiAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIGNuZnJtVmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRlZENuZnJtUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZW50ZXJlZFBhc3N3b3JkOiBzdHJpbmcgPSAnJztcbiAgZW50ZXJlZENuZnJtUGFzc3dvcmQ6IHN0cmluZyA9ICcnO1xuICBwYXNzd29yZFN0cmVuZ3RoOiBudW1iZXIgPSAwO1xuICBxdWVzdGlvbklkOnN0cmluZz0nJztcbiAgcHJpdmF0ZSBlbGVtZW50SWQ6IHN0cmluZz0nJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFja2VyOiBFbGVtZW50VHJhY2tlclNlcnZpY2VcbiAgKSB7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCkge1xuICAgIHRoaXMucXVlc3Rpb25JZD10aGlzLnF1ZXN0aW9uLmlkO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLnF1ZXN0aW9uLmNvdW50O1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkO1xuICAgIHRoaXMuaGludCA9IHRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5jb25maXJtUGFzc3dvcmQ7XG4gICAgdGhpcy5kaXNwbGF5U3RyZW5ndGggPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZGlzcGxheVN0cm9uZztcbiAgICB0aGlzLnZpZXdCdXR0b24gPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uudmlld0J1dHRvbjtcbiAgICB0aGlzLm1heExlbmd0aCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhMZW5ndGg7XG4gICAgdGhpcy5taW5MZW5ndGggPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluTGVuZ3RoO1xuICAgIHRoaXMucmVxdWlyZUxvd2VyY2FzZUxldHRlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzO1xuICAgIHRoaXMucmVxdWlyZVVwcGVyY2FzZUxldHRlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVVcHBlcmNhc2VMZXR0ZXJzO1xuICAgIHRoaXMucmVxdWlyZU51bWJlcnMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ucmVxdWlyZU51bWJlcnM7XG4gICAgdGhpcy5yZXF1aXJlU3BlY2lhbENoYXJhY3RlcnMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLnJlcXVpcmVTcGVjaWFsQ2hhcmFjdGVycztcbiAgICBpZiAodGhpcy5yZXF1aXJlU3BlY2lhbENoYXJhY3RlcnMpIHtcbiAgICAgIHRoaXMuYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzID1cbiAgICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyc1xuICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgLm1hcCgoY2hhcjogYW55KSA9PiBjaGFyLnRyaW0oKSk7XG4gICAgfVxuICAgIHRoaXMuZW50ZXJlZFBhc3N3b3JkID0gdGhpcy5xdWVzdGlvbj8uYW5zd2VyO1xuICB9XG5cbiAgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgIGxldCBwYXNzd29yZEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAncGFzc3dvcmRGaWVsZCcrdGhpcy5xdWVzdGlvbklkXG4gICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGxldCBleWVJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAncGFzc3dvcmRFeWVJY29uJyt0aGlzLnF1ZXN0aW9uSWRcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBpZiAocGFzc3dvcmRGaWVsZC50eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICBwYXNzd29yZEZpZWxkLnR5cGUgPSAndGV4dCc7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2JpLWV5ZS1maWxsJyk7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5hZGQoJ2JpLWV5ZS1zbGFzaC1maWxsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhc3N3b3JkRmllbGQudHlwZSA9ICdwYXNzd29yZCc7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2JpLWV5ZS1zbGFzaC1maWxsJyk7XG4gICAgICBleWVJY29uLmNsYXNzTGlzdC5hZGQoJ2JpLWV5ZS1maWxsJyk7XG4gICAgfVxuICB9XG4gIHRvZ2dsZUNuZnJtUGFzc3dvcmRWaXNpYmlsaXR5KCkge1xuICAgIGxldCBwYXNzd29yZEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAnY25mcm1QYXNzd29yZEZpZWxkJyt0aGlzLnF1ZXN0aW9uSWRcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IGV5ZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICdDbmZybVBhc3N3b3JkRXllSWNvbicrdGhpcy5xdWVzdGlvbklkXG4gICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHBhc3N3b3JkRmllbGQudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgcGFzc3dvcmRGaWVsZC50eXBlID0gJ3RleHQnO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdiaS1leWUtZmlsbCcpO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QuYWRkKCdiaS1leWUtc2xhc2gtZmlsbCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXNzd29yZEZpZWxkLnR5cGUgPSAncGFzc3dvcmQnO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdiaS1leWUtc2xhc2gtZmlsbCcpO1xuICAgICAgZXllSWNvbi5jbGFzc0xpc3QuYWRkKCdiaS1leWUtZmlsbCcpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrUGFzc3dvcmRNYXRjaCgpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZCh0aGlzLnF1ZXN0aW9uLmlkKTtcbiAgICB0aGlzLnZhbGlkYXRlZENuZnJtUGFzc3dvcmQgPSBmYWxzZTtcbiAgICB0aGlzLmNuZnJtVmFsaWRhdGlvbk1lc3NhZ2UgPSAnJztcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmNvbmZpcm1QYXNzd29yZCAmJiAhdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCkge1xuICAgICAgdGhpcy52YWxpZGF0ZWRDbmZybVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY25mcm1WYWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWxpZCBwYXNzd29yZGA7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5lbnRlcmVkUGFzc3dvcmQgIT0gdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCAmJiB0aGlzLmNvbmZpcm1QYXNzd29yZCkge1xuICAgICAgdGhpcy52YWxpZGF0ZWRDbmZybVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY25mcm1WYWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZHMgZG8gbm90IG1hdGNoJztcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVBhc3N3b3JkKCk7XG4gIH1cblxuICBcblxuICB2YWxpZGF0ZVBhc3N3b3JkKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMucXVlc3Rpb24uaWQpO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnJztcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5lbnRlcmVkUGFzc3dvcmQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbGlkIHBhc3N3b3JkYDtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVVcHBlcmNhc2VMZXR0ZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVOdW1iZXJzIHx8XG4gICAgICB0aGlzLnJlcXVpcmVTcGVjaWFsQ2hhcmFjdGVycyB8fFxuICAgICAgdGhpcy5taW5MZW5ndGggfHxcbiAgICAgIHRoaXMubWF4TGVuZ3RoXG4gICAgKSB7ICAgICAgXG4gICAgICBjb25zdCBsb3dlcmNhc2VSZWdleCA9IC9bYS16XS87XG4gICAgICBjb25zdCB1cHBlcmNhc2VSZWdleCA9IC9bQS1aXS87XG4gICAgICBjb25zdCBudW1iZXJSZWdleCA9IC9cXGQvO1xuICAgICAgY29uc3Qgc3BlY2lhbENoYXJhY3RlclJlZ2V4ID0gbmV3IFJlZ0V4cChgWyR7dGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMuam9pbignJyl9XWApO1xuICAgICAgY29uc3Qgb3RoZXJTcGVjaWFsQ2hhcmFjdGVyUmVnZXggPSBuZXcgUmVnRXhwKGBbXmEtekEtWjAtOSR7dGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMuam9pbignJyl9XWApO1xuICBcbiAgICAgIGxldCBsb3dlckNhc2VWYWxpZGF0ZSA9IGxvd2VyY2FzZVJlZ2V4LnRlc3QodGhpcy5lbnRlcmVkUGFzc3dvcmQpO1xuICAgICAgbGV0IHVwcGVyQ2FzZVZhbGlkYXRlID0gdXBwZXJjYXNlUmVnZXgudGVzdCh0aGlzLmVudGVyZWRQYXNzd29yZCk7XG4gICAgICBsZXQgY29udGFpbnNOdW1iZXIgPSBudW1iZXJSZWdleC50ZXN0KHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgICAgIGxldCBjb250YWluc1NwZWNpYWxDaGFyYWN0ZXIgPSBzcGVjaWFsQ2hhcmFjdGVyUmVnZXgudGVzdCh0aGlzLmVudGVyZWRQYXNzd29yZCk7XG4gICAgICBsZXQgY29udGFpbnNPdGhlclNwZWNpYWxDaGFyYWN0ZXIgPSBvdGhlclNwZWNpYWxDaGFyYWN0ZXJSZWdleC50ZXN0KHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgXG4gICAgICBpZiAoIWxvd2VyQ2FzZVZhbGlkYXRlICYmIHRoaXMucmVxdWlyZUxvd2VyY2FzZUxldHRlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGxvd2VyY2FzZSBsZXR0ZXInO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoIXVwcGVyQ2FzZVZhbGlkYXRlICYmIHRoaXMucmVxdWlyZVVwcGVyY2FzZUxldHRlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHVwcGVyY2FzZSBsZXR0ZXInO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoIWNvbnRhaW5zTnVtYmVyICYmIHRoaXMucmVxdWlyZU51bWJlcnMpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIG51bWJlcic7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgfWVsc2UgaWYgKHRoaXMuZW50ZXJlZFBhc3N3b3JkLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGFzc3dvcmQgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7dGhpcy5taW5MZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5lbnRlcmVkUGFzc3dvcmQubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBQYXNzd29yZCBtdXN0IGJlIGxlc3MgdGhhbiAke3RoaXMubWF4TGVuZ3RofSBjaGFyYWN0ZXJzYDtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKCFjb250YWluc1NwZWNpYWxDaGFyYWN0ZXIgJiYgdGhpcy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMubGVuZ3RoPjApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBQYXNzd29yZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyIGZyb20gJHt0aGlzLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyc31gO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZihjb250YWluc090aGVyU3BlY2lhbENoYXJhY3RlciAmJiB0aGlzLmFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycy5sZW5ndGg+MCl7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnUGFzc3dvcmQgY29udGFpbnMgYW4gaW52YWxpZCBzcGVjaWFsIGNoYXJhY3Rlcic7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmKHRoaXMuY29uZmlybVBhc3N3b3JkKXtcbiAgICAgICAgdGhpcy5jaGVja1Bhc3N3b3JkTWF0Y2goKTtcbiAgICAgIH1cbiAgICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gdHJ1ZTtcbiAgICAgIH0gICAgXG4gICAgfSBlbHNlIHsgICAgICAgICAgICBcbiAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aD10aGlzLmNhbGN1bGF0ZVN0cmVuZ3RoKHRoaXMuZW50ZXJlZFBhc3N3b3JkKTtcbiAgICB9XG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoID0gdGhpcy5jYWxjdWxhdGVTdHJlbmd0aCh0aGlzLmVudGVyZWRQYXNzd29yZClcbn1cblxuICB2YWxpZGF0ZUlucHV0KGV2ZW50OmFueSl7XG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnJyk7XG4gICAgdGhpcy5lbnRlcmVkUGFzc3dvcmQgPSBzYW5pdGl6ZWRWYWx1ZTtcbiAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlcj1zYW5pdGl6ZWRWYWx1ZTtcbiAgICB0aGlzLnZhbGlkYXRlUGFzc3dvcmQoKTsgIFxuICAgIHRoaXMuYW5zd2VyQ2hhbmdlLmVtaXQoIHRoaXMucXVlc3Rpb24uYW5zd2VyKTsgIFxuICAgIH1cblxuICAgIHZhbGlkYXRlQ25mcm0oZXZlbnQ6YW55KXtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL1xccysvZywgJycpO1xuICAgICAgdGhpcy5lbnRlcmVkQ25mcm1QYXNzd29yZCA9IHNhbml0aXplZFZhbHVlO1xuICAgICAgdGhpcy5jaGVja1Bhc3N3b3JkTWF0Y2goKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVTdHJlbmd0aChwYXNzd29yZDphbnkpIHtcbiAgICAgIGNvbnN0IGxlbmd0aFN0cmVuZ3RoID0gTWF0aC5taW4oMTAwLCAocGFzc3dvcmQubGVuZ3RoIC8gMTIpICogMTAwKTsgLy8gQXNzdW1lIG1heGltdW0gbGVuZ3RoIG9mIDEyIGZvciBmdWxsIHBvaW50c1xuICAgICAgY29uc3QgbG93ZXJjYXNlU3RyZW5ndGggPSAvW2Etel0vLnRlc3QocGFzc3dvcmQpID8gMjAgOiAwO1xuICAgICAgY29uc3QgdXBwZXJjYXNlU3RyZW5ndGggPSAvW0EtWl0vLnRlc3QocGFzc3dvcmQpID8gMjAgOiAwO1xuICAgICAgY29uc3QgbnVtYmVyU3RyZW5ndGggPSAvXFxkLy50ZXN0KHBhc3N3b3JkKSA/IDIwIDogMDtcbiAgICAgIGNvbnN0IHNwZWNpYWxDaGFyYWN0ZXJTdHJlbmd0aCA9IC9bIUAjJCVeJiooKSwuP1wiOnt9fDw+XS8udGVzdChwYXNzd29yZCkgPyAyMCA6IDA7IC8vIEFkanVzdCB0aGlzIHJlZ2V4IGJhc2VkIG9uIHlvdXIgYWxsb3dlZCBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgICBcbiAgICAgIHJldHVybiBsZW5ndGhTdHJlbmd0aCArIGxvd2VyY2FzZVN0cmVuZ3RoICsgdXBwZXJjYXNlU3RyZW5ndGggKyBudW1iZXJTdHJlbmd0aCArIHNwZWNpYWxDaGFyYWN0ZXJTdHJlbmd0aDtcbiAgICB9XG5cbiAgICBoYW5kbGVWYWxpZGF0aW9uKGlzVmFsaWQ6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJykge1xuICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnNldEludmFsaWQodGhpcy5xdWVzdGlvbi5pZCwgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICEhdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgfVxuICBcbiAgICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMucXVlc3Rpb24uaWQpO1xuICAgIH1cbiAgXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIFxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgaWYgKHRoaXMuZWxlbWVudElkKSB7XG4gICAgICAgIHRoaXMudHJhY2tlci51bnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gICAgICB9XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cInsgJ21iLTQnOiAhaW5MaW5lIH1cIlxuICBjbGFzcz1cInB4LTNcIlxuICBbaWRdPVwiJ3F1ZXN0aW9uLScgKyBxdWVzdGlvbi5pZFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgbWItMlwiICpuZ0lmPVwiIWluTGluZVwiPlxuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCI+PC9kaXY+XG4gICAgICAmbmJzcDsmbmJzcDtcbiAgICAgIDxsYWJlbCBbZm9yXT1cIidwYXNzd29yZEZpZWxkJyArIHF1ZXN0aW9uSWRcIj57eyBxdWVzdGlvbi5xdWVzdGlvbiB9fTwvbGFiZWxcbiAgICAgID4mbmJzcDtcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJoaW50XCJcbiAgICAgICAgKm5nSWY9XCJoaW50XCJcbiAgICAgID5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGNsYXNzPVwiaGludFN2Z1wiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTUgMTYuNTYyM1YxNi4yNDk4QzE1IDE1LjIyODUgMTUuNjMxMiAxNC42NzQ4IDE2LjI2MzcgMTQuMjQ5OEMxNi44ODEyIDEzLjgzMzUgMTcuNSAxMy4yOTEgMTcuNSAxMi4yOTFDMTcuNSAxMC45MDk4IDE2LjM4MTMgOS43OTEwMiAxNSA5Ljc5MTAyQzEzLjYxODcgOS43OTEwMiAxMi41IDEwLjkwOTggMTIuNSAxMi4yOTFcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xNC45OTg4IDIwQzE0LjgyNjMgMjAgMTQuNjg2MyAyMC4xNCAxNC42ODc1IDIwLjMxMjVDMTQuNjg3NSAyMC40ODUgMTQuODI3NSAyMC42MjUgMTUgMjAuNjI1QzE1LjE3MjUgMjAuNjI1IDE1LjMxMjUgMjAuNDg1IDE1LjMxMjUgMjAuMzEyNUMxNS4zMTI1IDIwLjE0IDE1LjE3MjUgMjAgMTQuOTk4OCAyMFwiXG4gICAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYXNzd29yZFdyYXBwZXJcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG1iLTIgaGVpZ2h0XCJcbiAgICAgIFtpZF09XCIncGFzc3dvcmRGaWVsZCcgKyBxdWVzdGlvbklkXCJcbiAgICAgIChibHVyKT1cInZhbGlkYXRlUGFzc3dvcmQoKVwiXG4gICAgICBbKG5nTW9kZWwpXT1cImVudGVyZWRQYXNzd29yZFwiXG4gICAgICBbY2xhc3MuaW52YWxpZF09XCJ2YWxpZGF0aW9uRmFpbGVkXCJcbiAgICAgIFtjbGFzcy5pbnZhbGlkLXF1ZXN0aW9uXT1cImlzSW52YWxpZCAmJiAoIWluTGluZSB8fCAhZW50ZXJlZFBhc3N3b3JkKVwiXG4gICAgICAoaW5wdXQpPVwidmFsaWRhdGVJbnB1dCgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwidG9nZ2xlUGFzc3dvcmRCdG5cIlxuICAgICAgY2xhc3M9XCJ0b2dnbGUtcGFzc3dvcmQtYnRuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKVwiXG4gICAgICAqbmdJZj1cInZpZXdCdXR0b25cIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktZXllLWZpbGxcIiBbaWRdPVwiJ3Bhc3N3b3JkRXllSWNvbicgKyBxdWVzdGlvbklkXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXJcIiAqbmdJZj1cImRpc3BsYXlTdHJlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXG4gICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJwYXNzd29yZFN0cmVuZ3RoICsgJyUnXCJcbiAgICAgICAgW2NsYXNzLmJnLWRhbmdlcl09XCJwYXNzd29yZFN0cmVuZ3RoIDwgMzBcIlxuICAgICAgICBbY2xhc3MuYmctd2FybmluZ109XCJwYXNzd29yZFN0cmVuZ3RoID49IDMwICYmIHBhc3N3b3JkU3RyZW5ndGggPCA3MFwiXG4gICAgICAgIFtjbGFzcy5iZy1zdWNjZXNzXT1cInBhc3N3b3JkU3RyZW5ndGggPj0gNzBcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCAmJiAoIWluTGluZSB8fCAhZW50ZXJlZFBhc3N3b3JkKVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWQgJiYgIWlzSW52YWxpZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbWItMlwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjbmZybVBhc3N3b3JkV3JhcHBlclwiICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkXCI+XG4gICAgPGxhYmVsIGZvcj1cIidjbmZybVBhc3N3b3JkRmllbGQnK3F1ZXN0aW9uSWRcIj5Db25maXJtIHBhc3N3b3JkPC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtYi0yIGhlaWdodFwiXG4gICAgICBbaWRdPVwiJ2NuZnJtUGFzc3dvcmRGaWVsZCcgKyBxdWVzdGlvbklkXCJcbiAgICAgIChibHVyKT1cImNoZWNrUGFzc3dvcmRNYXRjaCgpXCJcbiAgICAgIFsobmdNb2RlbCldPVwiZW50ZXJlZENuZnJtUGFzc3dvcmRcIlxuICAgICAgW2NsYXNzLmludmFsaWRdPVwidmFsaWRhdGVkQ25mcm1QYXNzd29yZFwiXG4gICAgICAoaW5wdXQpPVwidmFsaWRhdGVDbmZybSgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwidG9nZ2xlQ25mcm1QYXNzd29yZEJ0blwiXG4gICAgICBjbGFzcz1cInRvZ2dsZS1wYXNzd29yZC1idG5cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNuZnJtUGFzc3dvcmRWaXNpYmlsaXR5KClcIlxuICAgICAgKm5nSWY9XCJ2aWV3QnV0dG9uXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWV5ZS1maWxsXCIgW2lkXT1cIidDbmZybVBhc3N3b3JkRXllSWNvbicgKyBxdWVzdGlvbklkXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRlZENuZnJtUGFzc3dvcmRcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ2YWxpZGF0aW9uU3ZnXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMi4wMDEgMTYuNzVDMTIuMTM5IDE2Ljc1IDEyLjI1MSAxNi42MzggMTIuMjUgMTYuNUMxMi4yNSAxNi4zNjIgMTIuMTM4IDE2LjI1IDEyIDE2LjI1QzExLjg2MiAxNi4yNSAxMS43NSAxNi4zNjIgMTEuNzUgMTYuNUMxMS43NSAxNi42MzggMTEuODYyIDE2Ljc1IDEyLjAwMSAxNi43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTIgMjFDNy4wMjkgMjEgMyAxNi45NzEgMyAxMkMzIDcuMDI5IDcuMDI5IDMgMTIgM0MxNi45NzEgMyAyMSA3LjAyOSAyMSAxMkMyMSAxNi45NzEgMTYuOTcxIDIxIDEyIDIxWlwiXG4gICAgICAgIGZpbGw9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMiAxMi43NUwxMiA3Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgPC9zdmc+XG4gICAge3sgY25mcm1WYWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -80,11 +80,11 @@ export class QuestionGroupComponent {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuestionGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuestionGroupComponent, selector: "lib-question-group", inputs: { questionGroup: "questionGroup", edit: "edit", acceptedLanguage: "acceptedLanguage" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ questionGroup.title }}</p>\n <p [innerHTML]=\"decodedDescription\" class=\"description\"></p>\n\n <div class=\"mt-5\">\n <div *ngFor=\"let row of questionGroup.rows\">\n <div>\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <div *ngIf=\"grid.entityType === 'QUESTION'\">\n <div [ngSwitch]=\"grid.element.formElement.elementType\">\n <lib-check-box-fields *ngSwitchCase=\"'CHECK_BOX'\" [question]=\"grid.element\"></lib-check-box-fields>\n <lib-date-time-fields *ngSwitchCase=\"'DATE_TIME'\" [question]=\"grid.element\"></lib-date-time-fields>\n <lib-drop-down-fields *ngSwitchCase=\"'DROP_DOWN'\" [question]=\"grid.element\"></lib-drop-down-fields>\n <lib-file-picker-fields *ngSwitchCase=\"'FILE_PICKER'\" [question]=\"grid.element\"></lib-file-picker-fields>\n <lib-location-fields *ngSwitchCase=\"'LOCATION'\" [question]=\"grid.element\"></lib-location-fields>\n <lib-mail-fields *ngSwitchCase=\"'EMAIL'\" [question]=\"grid.element\"></lib-mail-fields>\n <lib-mobile-fields *ngSwitchCase=\"'MOBILE'\" [question]=\"grid.element\"></lib-mobile-fields>\n <lib-number-fields *ngSwitchCase=\"'NUMBER'\" [question]=\"grid.element\"></lib-number-fields>\n <lib-password-fields *ngSwitchCase=\"'PASSWORD'\" [question]=\"grid.element\"></lib-password-fields>\n <lib-radio-button-fields *ngSwitchCase=\"'RADIO_BUTTON'\" [question]=\"grid.element\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [question]=\"grid.element\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields *ngSwitchCase=\"'SELECTION_MATRIX'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-selection-matrix-fields>\n <lib-signature-fields *ngSwitchCase=\"'SIGNATURE'\" [question]=\"grid.element\"></lib-signature-fields>\n <lib-slider-fields *ngSwitchCase=\"'SLIDER'\" [question]=\"grid.element\"></lib-slider-fields>\n <lib-terms-and-condition-fields *ngSwitchCase=\"'TERMS_AND_CONDITION'\" [question]=\"grid.element\"></lib-terms-and-condition-fields>\n <lib-text-area-fields *ngSwitchCase=\"'TEXT_AREA'\" [question]=\"grid.element\"></lib-text-area-fields>\n <lib-text-fields *ngSwitchCase=\"'TEXT_BOX'\" [question]=\"grid.element\"></lib-text-fields>\n <lib-toggle-switch-fields *ngSwitchCase=\"'TOGGLE_SWITCH'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-toggle-switch-fields>\n <lib-url-fields *ngSwitchCase=\"'URL'\" [question]=\"grid.element\"></lib-url-fields>\n </div>\n\n <!-- <ng-container *ngIf=\"grid.element.childLogics\">\n <ng-container *ngIf=\"getComponentForChildLogics(grid.element.childLogics, 'child', grid.element.answer) as cached\">\n <ng-container\n *ngComponentOutlet=\"cached.component | async; injector: cached.injector\">\n </ng-container>\n </ng-container>\n </ng-container> -->\n\n <ng-container *ngIf=\"grid?.element?.childLogics\">\n \n <ng-container *ngIf=\"componentToLoad\">\n \n <ng-container *ngComponentOutlet=\"componentToLoad; \n inputs: { grid: grid?.element?.childLogics, \n answer: 'an', \n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n", styles: [".outer-container{background-color:#fff;position:relative}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:19px;font-weight:700;margin-bottom:20px;word-break:break-word}.description{font-size:17px;font-weight:500;margin-bottom:18px;word-break:break-word}::ng-deep .description img{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i3.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i4.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i5.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question", "inLine"], outputs: ["answerChange", "inlineDeleteFiles"] }, { kind: "component", type: i6.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i7.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i8.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i9.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i10.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i11.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i12.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i13.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "inLine", "acceptedLanguage"], outputs: ["answerChange"] }, { kind: "component", type: i14.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i15.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i16.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i17.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i18.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i19.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "inLine", "acceptedLanguage"], outputs: ["answerChange"] }, { kind: "component", type: i20.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }] }); }
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuestionGroupComponent, selector: "lib-question-group", inputs: { questionGroup: "questionGroup", edit: "edit", acceptedLanguage: "acceptedLanguage" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ questionGroup.title }}</p>\n <p [innerHTML]=\"decodedDescription\" class=\"description\"></p>\n\n <div class=\"mt-5\">\n <div *ngFor=\"let row of questionGroup.rows\">\n <div class=\"d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <div *ngIf=\"grid.entityType === 'QUESTION'\">\n <div [ngSwitch]=\"grid.element.formElement.elementType\">\n <lib-check-box-fields *ngSwitchCase=\"'CHECK_BOX'\" [question]=\"grid.element\"></lib-check-box-fields>\n <lib-date-time-fields *ngSwitchCase=\"'DATE_TIME'\" [question]=\"grid.element\"></lib-date-time-fields>\n <lib-drop-down-fields *ngSwitchCase=\"'DROP_DOWN'\" [question]=\"grid.element\"></lib-drop-down-fields>\n <lib-file-picker-fields *ngSwitchCase=\"'FILE_PICKER'\" [question]=\"grid.element\"></lib-file-picker-fields>\n <lib-location-fields *ngSwitchCase=\"'LOCATION'\" [question]=\"grid.element\"></lib-location-fields>\n <lib-mail-fields *ngSwitchCase=\"'EMAIL'\" [question]=\"grid.element\"></lib-mail-fields>\n <lib-mobile-fields *ngSwitchCase=\"'MOBILE'\" [question]=\"grid.element\"></lib-mobile-fields>\n <lib-number-fields *ngSwitchCase=\"'NUMBER'\" [question]=\"grid.element\"></lib-number-fields>\n <lib-password-fields *ngSwitchCase=\"'PASSWORD'\" [question]=\"grid.element\"></lib-password-fields>\n <lib-radio-button-fields *ngSwitchCase=\"'RADIO_BUTTON'\" [question]=\"grid.element\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [question]=\"grid.element\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields *ngSwitchCase=\"'SELECTION_MATRIX'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-selection-matrix-fields>\n <lib-signature-fields *ngSwitchCase=\"'SIGNATURE'\" [question]=\"grid.element\"></lib-signature-fields>\n <lib-slider-fields *ngSwitchCase=\"'SLIDER'\" [question]=\"grid.element\"></lib-slider-fields>\n <lib-terms-and-condition-fields *ngSwitchCase=\"'TERMS_AND_CONDITION'\" [question]=\"grid.element\"></lib-terms-and-condition-fields>\n <lib-text-area-fields *ngSwitchCase=\"'TEXT_AREA'\" [question]=\"grid.element\"></lib-text-area-fields>\n <lib-text-fields *ngSwitchCase=\"'TEXT_BOX'\" [question]=\"grid.element\"></lib-text-fields>\n <lib-toggle-switch-fields *ngSwitchCase=\"'TOGGLE_SWITCH'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-toggle-switch-fields>\n <lib-url-fields *ngSwitchCase=\"'URL'\" [question]=\"grid.element\"></lib-url-fields>\n </div>\n\n <!-- <ng-container *ngIf=\"grid.element.childLogics\">\n <ng-container *ngIf=\"getComponentForChildLogics(grid.element.childLogics, 'child', grid.element.answer) as cached\">\n <ng-container\n *ngComponentOutlet=\"cached.component | async; injector: cached.injector\">\n </ng-container>\n </ng-container>\n </ng-container> -->\n\n <ng-container *ngIf=\"grid?.element?.childLogics\">\n \n <ng-container *ngIf=\"componentToLoad\">\n \n <ng-container *ngComponentOutlet=\"componentToLoad; \n inputs: { grid: grid?.element?.childLogics, \n answer: 'an', \n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n", styles: [".outer-container{background-color:#fff;position:relative}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:19px;font-weight:700;margin-bottom:20px;word-break:break-word}.description{font-size:17px;font-weight:500;margin-bottom:18px;word-break:break-word}::ng-deep .description img{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i3.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i4.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i5.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question", "inLine"], outputs: ["answerChange", "inlineDeleteFiles"] }, { kind: "component", type: i6.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i7.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i8.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i9.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i10.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i11.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i12.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i13.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "inLine", "acceptedLanguage"], outputs: ["answerChange"] }, { kind: "component", type: i14.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i15.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i16.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i17.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i18.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i19.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "inLine", "acceptedLanguage"], outputs: ["answerChange"] }, { kind: "component", type: i20.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }] }); }
|
|
84
84
|
}
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuestionGroupComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{ selector: 'lib-question-group', template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ questionGroup.title }}</p>\n <p [innerHTML]=\"decodedDescription\" class=\"description\"></p>\n\n <div class=\"mt-5\">\n <div *ngFor=\"let row of questionGroup.rows\">\n <div>\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <div *ngIf=\"grid.entityType === 'QUESTION'\">\n <div [ngSwitch]=\"grid.element.formElement.elementType\">\n <lib-check-box-fields *ngSwitchCase=\"'CHECK_BOX'\" [question]=\"grid.element\"></lib-check-box-fields>\n <lib-date-time-fields *ngSwitchCase=\"'DATE_TIME'\" [question]=\"grid.element\"></lib-date-time-fields>\n <lib-drop-down-fields *ngSwitchCase=\"'DROP_DOWN'\" [question]=\"grid.element\"></lib-drop-down-fields>\n <lib-file-picker-fields *ngSwitchCase=\"'FILE_PICKER'\" [question]=\"grid.element\"></lib-file-picker-fields>\n <lib-location-fields *ngSwitchCase=\"'LOCATION'\" [question]=\"grid.element\"></lib-location-fields>\n <lib-mail-fields *ngSwitchCase=\"'EMAIL'\" [question]=\"grid.element\"></lib-mail-fields>\n <lib-mobile-fields *ngSwitchCase=\"'MOBILE'\" [question]=\"grid.element\"></lib-mobile-fields>\n <lib-number-fields *ngSwitchCase=\"'NUMBER'\" [question]=\"grid.element\"></lib-number-fields>\n <lib-password-fields *ngSwitchCase=\"'PASSWORD'\" [question]=\"grid.element\"></lib-password-fields>\n <lib-radio-button-fields *ngSwitchCase=\"'RADIO_BUTTON'\" [question]=\"grid.element\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [question]=\"grid.element\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields *ngSwitchCase=\"'SELECTION_MATRIX'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-selection-matrix-fields>\n <lib-signature-fields *ngSwitchCase=\"'SIGNATURE'\" [question]=\"grid.element\"></lib-signature-fields>\n <lib-slider-fields *ngSwitchCase=\"'SLIDER'\" [question]=\"grid.element\"></lib-slider-fields>\n <lib-terms-and-condition-fields *ngSwitchCase=\"'TERMS_AND_CONDITION'\" [question]=\"grid.element\"></lib-terms-and-condition-fields>\n <lib-text-area-fields *ngSwitchCase=\"'TEXT_AREA'\" [question]=\"grid.element\"></lib-text-area-fields>\n <lib-text-fields *ngSwitchCase=\"'TEXT_BOX'\" [question]=\"grid.element\"></lib-text-fields>\n <lib-toggle-switch-fields *ngSwitchCase=\"'TOGGLE_SWITCH'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-toggle-switch-fields>\n <lib-url-fields *ngSwitchCase=\"'URL'\" [question]=\"grid.element\"></lib-url-fields>\n </div>\n\n <!-- <ng-container *ngIf=\"grid.element.childLogics\">\n <ng-container *ngIf=\"getComponentForChildLogics(grid.element.childLogics, 'child', grid.element.answer) as cached\">\n <ng-container\n *ngComponentOutlet=\"cached.component | async; injector: cached.injector\">\n </ng-container>\n </ng-container>\n </ng-container> -->\n\n <ng-container *ngIf=\"grid?.element?.childLogics\">\n \n <ng-container *ngIf=\"componentToLoad\">\n \n <ng-container *ngComponentOutlet=\"componentToLoad; \n inputs: { grid: grid?.element?.childLogics, \n answer: 'an', \n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n", styles: [".outer-container{background-color:#fff;position:relative}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:19px;font-weight:700;margin-bottom:20px;word-break:break-word}.description{font-size:17px;font-weight:500;margin-bottom:18px;word-break:break-word}::ng-deep .description img{max-width:100%}\n"] }]
|
|
87
|
+
args: [{ selector: 'lib-question-group', template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ questionGroup.title }}</p>\n <p [innerHTML]=\"decodedDescription\" class=\"description\"></p>\n\n <div class=\"mt-5\">\n <div *ngFor=\"let row of questionGroup.rows\">\n <div class=\"d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <div *ngIf=\"grid.entityType === 'QUESTION'\">\n <div [ngSwitch]=\"grid.element.formElement.elementType\">\n <lib-check-box-fields *ngSwitchCase=\"'CHECK_BOX'\" [question]=\"grid.element\"></lib-check-box-fields>\n <lib-date-time-fields *ngSwitchCase=\"'DATE_TIME'\" [question]=\"grid.element\"></lib-date-time-fields>\n <lib-drop-down-fields *ngSwitchCase=\"'DROP_DOWN'\" [question]=\"grid.element\"></lib-drop-down-fields>\n <lib-file-picker-fields *ngSwitchCase=\"'FILE_PICKER'\" [question]=\"grid.element\"></lib-file-picker-fields>\n <lib-location-fields *ngSwitchCase=\"'LOCATION'\" [question]=\"grid.element\"></lib-location-fields>\n <lib-mail-fields *ngSwitchCase=\"'EMAIL'\" [question]=\"grid.element\"></lib-mail-fields>\n <lib-mobile-fields *ngSwitchCase=\"'MOBILE'\" [question]=\"grid.element\"></lib-mobile-fields>\n <lib-number-fields *ngSwitchCase=\"'NUMBER'\" [question]=\"grid.element\"></lib-number-fields>\n <lib-password-fields *ngSwitchCase=\"'PASSWORD'\" [question]=\"grid.element\"></lib-password-fields>\n <lib-radio-button-fields *ngSwitchCase=\"'RADIO_BUTTON'\" [question]=\"grid.element\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [question]=\"grid.element\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields *ngSwitchCase=\"'SELECTION_MATRIX'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-selection-matrix-fields>\n <lib-signature-fields *ngSwitchCase=\"'SIGNATURE'\" [question]=\"grid.element\"></lib-signature-fields>\n <lib-slider-fields *ngSwitchCase=\"'SLIDER'\" [question]=\"grid.element\"></lib-slider-fields>\n <lib-terms-and-condition-fields *ngSwitchCase=\"'TERMS_AND_CONDITION'\" [question]=\"grid.element\"></lib-terms-and-condition-fields>\n <lib-text-area-fields *ngSwitchCase=\"'TEXT_AREA'\" [question]=\"grid.element\"></lib-text-area-fields>\n <lib-text-fields *ngSwitchCase=\"'TEXT_BOX'\" [question]=\"grid.element\"></lib-text-fields>\n <lib-toggle-switch-fields *ngSwitchCase=\"'TOGGLE_SWITCH'\" [question]=\"grid.element\" [acceptedLanguage]=\"acceptedLanguage\"></lib-toggle-switch-fields>\n <lib-url-fields *ngSwitchCase=\"'URL'\" [question]=\"grid.element\"></lib-url-fields>\n </div>\n\n <!-- <ng-container *ngIf=\"grid.element.childLogics\">\n <ng-container *ngIf=\"getComponentForChildLogics(grid.element.childLogics, 'child', grid.element.answer) as cached\">\n <ng-container\n *ngComponentOutlet=\"cached.component | async; injector: cached.injector\">\n </ng-container>\n </ng-container>\n </ng-container> -->\n\n <ng-container *ngIf=\"grid?.element?.childLogics\">\n \n <ng-container *ngIf=\"componentToLoad\">\n \n <ng-container *ngComponentOutlet=\"componentToLoad; \n inputs: { grid: grid?.element?.childLogics, \n answer: 'an', \n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n", styles: [".outer-container{background-color:#fff;position:relative}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:19px;font-weight:700;margin-bottom:20px;word-break:break-word}.description{font-size:17px;font-weight:500;margin-bottom:18px;word-break:break-word}::ng-deep .description img{max-width:100%}\n"] }]
|
|
88
88
|
}], propDecorators: { questionGroup: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], edit: [{
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
92
92
|
}], acceptedLanguage: [{
|
|
93
93
|
type: Input
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9xdWVzdGlvbi9xdWVzdGlvbi1ncm91cC9xdWVzdGlvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3F1ZXN0aW9uL3F1ZXN0aW9uLWdyb3VwL3F1ZXN0aW9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlakYsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQ3RDLHVCQUFrQixHQUFRLEVBQUUsQ0FBQztRQUU3QixvQkFBZSxHQUF1RSxFQUFFLENBQUM7S0E0RzFGO0lBeEdDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVGLHdCQUF3QixDQUFDLEdBQVE7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQixTQUFTLE9BQU8sQ0FBQyxLQUFVO1lBQ3pCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQy9DLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25CLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUI7UUFDckMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUMzRixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRztnQkFDOUQsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXpFWSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrS0NmbkMsb3hJQThEQTs7NEZEL0NhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7OEJBS3JCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmludGVyZmFjZSBBdHRhY2htZW50IHtcbiAgZmlsZUlkOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVVcmw6IHN0cmluZztcbiAgZmlsZVNpemU/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Hcm91cENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uR3JvdXA6IGFueSA9IHt9O1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XG4gIGRlY29kZWREZXNjcmlwdGlvbjpzdHJpbmc9Jyc7XG4gIGdyaWQ6IGFueTtcbiAgY2hpbGRMb2dpY0NhY2hlOiB7IFtrZXk6IHN0cmluZ106IHsgY29tcG9uZW50OiBQcm9taXNlPGFueT4sIGluamVjdG9yOiBJbmplY3RvciB9IH0gPSB7fTtcbiAgY29tcG9uZW50VG9Mb2FkOiBhbnk7XG4gIGluamVjdG9yITogSW5qZWN0b3I7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkQ29tcG9uZW50KClcbiAgfVxuXG4gIGRlY29kZUh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgdGV4dEFyZWEuaW5uZXJIVE1MID0gaHRtbDtcbiAgICByZXR1cm4gdGV4dEFyZWEudmFsdWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbkdyb3VwLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRlY29kZWREZXNjcmlwdGlvbiA9IHRoaXMuZGVjb2RlSHRtbCh0aGlzLnF1ZXN0aW9uR3JvdXAuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gcmVtb3ZlQ2lyY3VsYXJSZWZlcmVuY2VzKG9iajogYW55KTogYW55IHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgfVxuXG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKGl0ZW0gPT4gcmVjdXJzZShpdGVtKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcbiAgICAgIG91dHB1dFtrZXldID0gcmVjdXJzZSh2YWx1ZVtrZXldKTtcbiAgICB9XG5cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHJldHVybiByZWN1cnNlKG9iaik7XG59XG5cbnByaXZhdGUgYXN5bmMgbG9hZENvbXBvbmVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdGhpcy5jb21wb25lbnRUb0xvYWQgPSBhd2FpdCB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcbiAgdGhpcy5pbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3IoKTtcbn1cblxucHJpdmF0ZSBhc3luYyBsb2FkRm9ybUVsZW1lbnRzQ29tcG9uZW50KCkge1xuICBjb25zdCB7IEZvcm1FbGVtZW50c0NvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50Jyk7XG4gIHJldHVybiBGb3JtRWxlbWVudHNDb21wb25lbnQ7XG59XG5cbmNyZWF0ZUluamVjdG9yKCk6IEluamVjdG9yIHtcbiAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICB7IHByb3ZpZGU6ICdncmlkJywgdXNlVmFsdWU6IHRoaXMuZ3JpZD8uZWxlbWVudC5jaGlsZExvZ2ljcyAgfSxcbiAgICAgIHsgcHJvdmlkZTogJ3N0YXRlJywgdXNlVmFsdWU6ICdjaGlsZCcgfSxcbiAgICBdLFxuICB9KTtcbn1cblxuLy8gICBnZXRDb21wb25lbnRGb3JDaGlsZExvZ2ljcyhncmlkOiBhbnksIHN0YXRlOiBzdHJpbmcsIGFuc3dlcjogYW55KTogeyBjb21wb25lbnQ6IFByb21pc2U8YW55PiwgaW5qZWN0b3I6IEluamVjdG9yIH0ge1xuLy8gICAgIC8vIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KHsgZ3JpZCwgc3RhdGUgfSx0aGlzLnJlbW92ZUNpcmN1bGFyUmVmZXJlbmNlcygpKTtcbi8vICAgICAvLyBjb25zdCBrZXkgPXRoaXMucmVtb3ZlQ2lyY3VsYXJSZWZlcmVuY2VzKHsgZ3JpZCB9KTtcbi8vICAgICBjb25zdCBjbGVhbmVkID0gdGhpcy5yZW1vdmVDaXJjdWxhclJlZmVyZW5jZXMoe1xuLy8gICBncmlkLFxuLy8gICBzdGF0ZSxcbi8vICAgYW5zd2VyXG4vLyB9KTtcblxuLy8gY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoY2xlYW5lZCk7XG5cbi8vICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbi8vICAgICAvLyAgIGNvbnNvbGUubG9nKCdrZXknLCBrZXkpO1xuLy8gICAgIC8vIH0sIDEwMDApO1xuXG4vLyAgICAgaWYgKCF0aGlzLmNoaWxkTG9naWNDYWNoZVtrZXldKSB7XG4vLyAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcbi8vICAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5jcmVhdGVJbmplY3RvcihncmlkLCBzdGF0ZSwgYW5zd2VyKTtcbi8vICAgICAgIHRoaXMuY2hpbGRMb2dpY0NhY2hlW2tleV0gPSB7IGNvbXBvbmVudCwgaW5qZWN0b3IgfTtcbi8vICAgICB9XG5cbi8vICAgICByZXR1cm4gdGhpcy5jaGlsZExvZ2ljQ2FjaGVba2V5XTtcbi8vICAgfVxuXG5cbi8vICAgYXN5bmMgbG9hZEZvcm1FbGVtZW50c0NvbXBvbmVudCgpIHtcbi8vICAgICBjb25zdCB7IEZvcm1FbGVtZW50c0NvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50Jyk7XG4vLyAgICAgcmV0dXJuIEZvcm1FbGVtZW50c0NvbXBvbmVudDtcbi8vICAgfVxuXG4vLyAgIGNyZWF0ZUluamVjdG9yKGdyaWQ6IGFueSwgc3RhdGU6IHN0cmluZywgYW5zd2VyOiBhbnkpOiBJbmplY3RvciB7XG4vLyAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4vLyAgICAgICBwcm92aWRlcnM6IFtcbi8vICAgICAgICAgeyBwcm92aWRlOiAnZ3JpZCcsIHVzZVZhbHVlOiBncmlkIH0sXG4vLyAgICAgICAgIHsgcHJvdmlkZTogJ3N0YXRlJywgdXNlVmFsdWU6ICdjaGlsZCcgfSxcbi8vICAgICAgICAgeyBwcm92aWRlOiAnYW5zd2VyJywgdXNlVmFsdWU6IGFuc3dlciB9LFxuLy8gICAgICAgXSxcbi8vICAgICB9KTtcbi8vICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm91dGVyLWNvbnRhaW5lciBtYi00IHB4LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keSBjb250YWluZXIgcHQtMyBwYi0zIHB4LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC00IHBiLTMgcHgtM1wiPlxuICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb25UaXRsZVwiPnt7IHF1ZXN0aW9uR3JvdXAudGl0bGUgfX08L3A+XG4gICAgICAgIDxwIFtpbm5lckhUTUxdPVwiZGVjb2RlZERlc2NyaXB0aW9uXCIgY2xhc3M9XCJkZXNjcmlwdGlvblwiPjwvcD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiBxdWVzdGlvbkdyb3VwLnJvd3NcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGdyaWQgb2Ygcm93LmdyaWRcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3dpZHRoLiUnOiAoZ3JpZC5lbGVtZW50LmNvdW50KSAqICgxMDAgLyAxMil9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdyaWQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJ1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiZ3JpZC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItY2hlY2stYm94LWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ0NIRUNLX0JPWCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItY2hlY2stYm94LWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1kYXRlLXRpbWUtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInREFURV9USU1FJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1kYXRlLXRpbWUtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWRyb3AtZG93bi1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidEUk9QX0RPV04nXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLWRyb3AtZG93bi1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItZmlsZS1waWNrZXItZmllbGRzICpuZ1N3aXRjaENhc2U9XCInRklMRV9QSUNLRVInXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLWZpbGUtcGlja2VyLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1sb2NhdGlvbi1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidMT0NBVElPTidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItbG9jYXRpb24tZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLW1haWwtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInRU1BSUwnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLW1haWwtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLW1vYmlsZS1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidNT0JJTEUnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLW1vYmlsZS1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItbnVtYmVyLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ05VTUJFUidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItbnVtYmVyLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1wYXNzd29yZC1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidQQVNTV09SRCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItcGFzc3dvcmQtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXJhZGlvLWJ1dHRvbi1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidSQURJT19CVVRUT04nXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXJhZGlvLWJ1dHRvbi1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmljaC10ZXh0LWVkaXRvci1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidSSUNIX1RFWFRfRURJVE9SJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1NFTEVDVElPTl9NQVRSSVgnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiIFthY2NlcHRlZExhbmd1YWdlXT1cImFjY2VwdGVkTGFuZ3VhZ2VcIj48L2xpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1zaWduYXR1cmUtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInU0lHTkFUVVJFJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1zaWduYXR1cmUtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXNsaWRlci1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidTTElERVInXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXNsaWRlci1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItdGVybXMtYW5kLWNvbmRpdGlvbi1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidURVJNU19BTkRfQ09ORElUSU9OJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi10ZXh0LWFyZWEtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInVEVYVF9BUkVBJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi10ZXh0LWFyZWEtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXRleHQtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInVEVYVF9CT1gnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXRleHQtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXRvZ2dsZS1zd2l0Y2gtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInVE9HR0xFX1NXSVRDSCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCIgW2FjY2VwdGVkTGFuZ3VhZ2VdPVwiYWNjZXB0ZWRMYW5ndWFnZVwiPjwvbGliLXRvZ2dsZS1zd2l0Y2gtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXVybC1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidVUkwnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXVybC1maWVsZHM+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZC5lbGVtZW50LmNoaWxkTG9naWNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb21wb25lbnRGb3JDaGlsZExvZ2ljcyhncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3MsICdjaGlsZCcsIGdyaWQuZWxlbWVudC5hbnN3ZXIpIGFzIGNhY2hlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNhY2hlZC5jb21wb25lbnQgfCBhc3luYzsgaW5qZWN0b3I6IGNhY2hlZC5pbmplY3RvclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cblxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyaWQ/LmVsZW1lbnQ/LmNoaWxkTG9naWNzXCI+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tcG9uZW50VG9Mb2FkXCI+XG4gICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudFRvTG9hZDsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBncmlkOiBncmlkPy5lbGVtZW50Py5jaGlsZExvZ2ljcywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXI6ICdhbicsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6ICdjaGlsZCcgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9xdWVzdGlvbi9xdWVzdGlvbi1ncm91cC9xdWVzdGlvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3F1ZXN0aW9uL3F1ZXN0aW9uLWdyb3VwL3F1ZXN0aW9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlakYsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQ3RDLHVCQUFrQixHQUFRLEVBQUUsQ0FBQztRQUU3QixvQkFBZSxHQUF1RSxFQUFFLENBQUM7S0E0RzFGO0lBeEdDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVGLHdCQUF3QixDQUFDLEdBQVE7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQixTQUFTLE9BQU8sQ0FBQyxLQUFVO1lBQ3pCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQy9DLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25CLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUI7UUFDckMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUMzRixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRztnQkFDOUQsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXpFWSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrS0NmbkMscXlJQThEQTs7NEZEL0NhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7OEJBS3JCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmludGVyZmFjZSBBdHRhY2htZW50IHtcbiAgZmlsZUlkOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVVcmw6IHN0cmluZztcbiAgZmlsZVNpemU/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Hcm91cENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uR3JvdXA6IGFueSA9IHt9O1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XG4gIGRlY29kZWREZXNjcmlwdGlvbjpzdHJpbmc9Jyc7XG4gIGdyaWQ6IGFueTtcbiAgY2hpbGRMb2dpY0NhY2hlOiB7IFtrZXk6IHN0cmluZ106IHsgY29tcG9uZW50OiBQcm9taXNlPGFueT4sIGluamVjdG9yOiBJbmplY3RvciB9IH0gPSB7fTtcbiAgY29tcG9uZW50VG9Mb2FkOiBhbnk7XG4gIGluamVjdG9yITogSW5qZWN0b3I7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkQ29tcG9uZW50KClcbiAgfVxuXG4gIGRlY29kZUh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgdGV4dEFyZWEuaW5uZXJIVE1MID0gaHRtbDtcbiAgICByZXR1cm4gdGV4dEFyZWEudmFsdWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbkdyb3VwLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRlY29kZWREZXNjcmlwdGlvbiA9IHRoaXMuZGVjb2RlSHRtbCh0aGlzLnF1ZXN0aW9uR3JvdXAuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gcmVtb3ZlQ2lyY3VsYXJSZWZlcmVuY2VzKG9iajogYW55KTogYW55IHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgfVxuXG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKGl0ZW0gPT4gcmVjdXJzZShpdGVtKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcbiAgICAgIG91dHB1dFtrZXldID0gcmVjdXJzZSh2YWx1ZVtrZXldKTtcbiAgICB9XG5cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHJldHVybiByZWN1cnNlKG9iaik7XG59XG5cbnByaXZhdGUgYXN5bmMgbG9hZENvbXBvbmVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdGhpcy5jb21wb25lbnRUb0xvYWQgPSBhd2FpdCB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcbiAgdGhpcy5pbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3IoKTtcbn1cblxucHJpdmF0ZSBhc3luYyBsb2FkRm9ybUVsZW1lbnRzQ29tcG9uZW50KCkge1xuICBjb25zdCB7IEZvcm1FbGVtZW50c0NvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50Jyk7XG4gIHJldHVybiBGb3JtRWxlbWVudHNDb21wb25lbnQ7XG59XG5cbmNyZWF0ZUluamVjdG9yKCk6IEluamVjdG9yIHtcbiAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICB7IHByb3ZpZGU6ICdncmlkJywgdXNlVmFsdWU6IHRoaXMuZ3JpZD8uZWxlbWVudC5jaGlsZExvZ2ljcyAgfSxcbiAgICAgIHsgcHJvdmlkZTogJ3N0YXRlJywgdXNlVmFsdWU6ICdjaGlsZCcgfSxcbiAgICBdLFxuICB9KTtcbn1cblxuLy8gICBnZXRDb21wb25lbnRGb3JDaGlsZExvZ2ljcyhncmlkOiBhbnksIHN0YXRlOiBzdHJpbmcsIGFuc3dlcjogYW55KTogeyBjb21wb25lbnQ6IFByb21pc2U8YW55PiwgaW5qZWN0b3I6IEluamVjdG9yIH0ge1xuLy8gICAgIC8vIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KHsgZ3JpZCwgc3RhdGUgfSx0aGlzLnJlbW92ZUNpcmN1bGFyUmVmZXJlbmNlcygpKTtcbi8vICAgICAvLyBjb25zdCBrZXkgPXRoaXMucmVtb3ZlQ2lyY3VsYXJSZWZlcmVuY2VzKHsgZ3JpZCB9KTtcbi8vICAgICBjb25zdCBjbGVhbmVkID0gdGhpcy5yZW1vdmVDaXJjdWxhclJlZmVyZW5jZXMoe1xuLy8gICBncmlkLFxuLy8gICBzdGF0ZSxcbi8vICAgYW5zd2VyXG4vLyB9KTtcblxuLy8gY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoY2xlYW5lZCk7XG5cbi8vICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbi8vICAgICAvLyAgIGNvbnNvbGUubG9nKCdrZXknLCBrZXkpO1xuLy8gICAgIC8vIH0sIDEwMDApO1xuXG4vLyAgICAgaWYgKCF0aGlzLmNoaWxkTG9naWNDYWNoZVtrZXldKSB7XG4vLyAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcbi8vICAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5jcmVhdGVJbmplY3RvcihncmlkLCBzdGF0ZSwgYW5zd2VyKTtcbi8vICAgICAgIHRoaXMuY2hpbGRMb2dpY0NhY2hlW2tleV0gPSB7IGNvbXBvbmVudCwgaW5qZWN0b3IgfTtcbi8vICAgICB9XG5cbi8vICAgICByZXR1cm4gdGhpcy5jaGlsZExvZ2ljQ2FjaGVba2V5XTtcbi8vICAgfVxuXG5cbi8vICAgYXN5bmMgbG9hZEZvcm1FbGVtZW50c0NvbXBvbmVudCgpIHtcbi8vICAgICBjb25zdCB7IEZvcm1FbGVtZW50c0NvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50Jyk7XG4vLyAgICAgcmV0dXJuIEZvcm1FbGVtZW50c0NvbXBvbmVudDtcbi8vICAgfVxuXG4vLyAgIGNyZWF0ZUluamVjdG9yKGdyaWQ6IGFueSwgc3RhdGU6IHN0cmluZywgYW5zd2VyOiBhbnkpOiBJbmplY3RvciB7XG4vLyAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4vLyAgICAgICBwcm92aWRlcnM6IFtcbi8vICAgICAgICAgeyBwcm92aWRlOiAnZ3JpZCcsIHVzZVZhbHVlOiBncmlkIH0sXG4vLyAgICAgICAgIHsgcHJvdmlkZTogJ3N0YXRlJywgdXNlVmFsdWU6ICdjaGlsZCcgfSxcbi8vICAgICAgICAgeyBwcm92aWRlOiAnYW5zd2VyJywgdXNlVmFsdWU6IGFuc3dlciB9LFxuLy8gICAgICAgXSxcbi8vICAgICB9KTtcbi8vICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm91dGVyLWNvbnRhaW5lciBtYi00IHB4LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keSBjb250YWluZXIgcHQtMyBwYi0zIHB4LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC00IHBiLTMgcHgtM1wiPlxuICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb25UaXRsZVwiPnt7IHF1ZXN0aW9uR3JvdXAudGl0bGUgfX08L3A+XG4gICAgICAgIDxwIFtpbm5lckhUTUxdPVwiZGVjb2RlZERlc2NyaXB0aW9uXCIgY2xhc3M9XCJkZXNjcmlwdGlvblwiPjwvcD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiBxdWVzdGlvbkdyb3VwLnJvd3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZ3JpZCBvZiByb3cuZ3JpZFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnd2lkdGguJSc6IChncmlkLmVsZW1lbnQuY291bnQpICogKDEwMCAvIDEyKX1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ3JpZC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJncmlkLmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGVjay1ib3gtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInQ0hFQ0tfQk9YJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1jaGVjay1ib3gtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWRhdGUtdGltZS1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidEQVRFX1RJTUUnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLWRhdGUtdGltZS1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItZHJvcC1kb3duLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ0RST1BfRE9XTidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItZHJvcC1kb3duLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1maWxlLXBpY2tlci1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidGSUxFX1BJQ0tFUidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItZmlsZS1waWNrZXItZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWxvY2F0aW9uLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ0xPQ0FUSU9OJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1sb2NhdGlvbi1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItbWFpbC1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidFTUFJTCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItbWFpbC1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItbW9iaWxlLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ01PQklMRSdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItbW9iaWxlLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1udW1iZXItZmllbGRzICpuZ1N3aXRjaENhc2U9XCInTlVNQkVSJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1udW1iZXItZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXBhc3N3b3JkLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1BBU1NXT1JEJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIj48L2xpYi1wYXNzd29yZC1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmFkaW8tYnV0dG9uLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1JBRElPX0JVVFRPTidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItcmFkaW8tYnV0dG9uLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1JJQ0hfVEVYVF9FRElUT1InXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXJpY2gtdGV4dC1lZGl0b3ItZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXNlbGVjdGlvbi1tYXRyaXgtZmllbGRzICpuZ1N3aXRjaENhc2U9XCInU0VMRUNUSU9OX01BVFJJWCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCIgW2FjY2VwdGVkTGFuZ3VhZ2VdPVwiYWNjZXB0ZWRMYW5ndWFnZVwiPjwvbGliLXNlbGVjdGlvbi1tYXRyaXgtZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXNpZ25hdHVyZS1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidTSUdOQVRVUkUnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXNpZ25hdHVyZS1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItc2xpZGVyLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1NMSURFUidcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItc2xpZGVyLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1RFUk1TX0FORF9DT05ESVRJT04nXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXRlcm1zLWFuZC1jb25kaXRpb24tZmllbGRzPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXRleHQtYXJlYS1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidURVhUX0FSRUEnXCIgW3F1ZXN0aW9uXT1cImdyaWQuZWxlbWVudFwiPjwvbGliLXRleHQtYXJlYS1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItdGV4dC1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidURVhUX0JPWCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItdGV4dC1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItdG9nZ2xlLXN3aXRjaC1maWVsZHMgKm5nU3dpdGNoQ2FzZT1cIidUT0dHTEVfU1dJVENIJ1wiIFtxdWVzdGlvbl09XCJncmlkLmVsZW1lbnRcIiBbYWNjZXB0ZWRMYW5ndWFnZV09XCJhY2NlcHRlZExhbmd1YWdlXCI+PC9saWItdG9nZ2xlLXN3aXRjaC1maWVsZHM+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItdXJsLWZpZWxkcyAqbmdTd2l0Y2hDYXNlPVwiJ1VSTCdcIiBbcXVlc3Rpb25dPVwiZ3JpZC5lbGVtZW50XCI+PC9saWItdXJsLWZpZWxkcz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldENvbXBvbmVudEZvckNoaWxkTG9naWNzKGdyaWQuZWxlbWVudC5jaGlsZExvZ2ljcywgJ2NoaWxkJywgZ3JpZC5lbGVtZW50LmFuc3dlcikgYXMgY2FjaGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY2FjaGVkLmNvbXBvbmVudCB8IGFzeW5jOyBpbmplY3RvcjogY2FjaGVkLmluamVjdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZD8uZWxlbWVudD8uY2hpbGRMb2dpY3NcIj5cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21wb25lbnRUb0xvYWRcIj5cbiAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcG9uZW50VG9Mb2FkOyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IGdyaWQ6IGdyaWQ/LmVsZW1lbnQ/LmNoaWxkTG9naWNzLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlcjogJ2FuJywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoaWxkJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
|