@piserve-tech/form-submission 1.3.319 → 1.3.320
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/assets/icons/close-sidebar-mark-icon.svg +3 -3
- package/assets/icons/copy-icon.svg +5 -5
- package/assets/icons/delete-icon.svg +7 -7
- package/assets/icons/delete-no-outline-icon.svg +7 -7
- package/esm2022/form-fields/aggregate-function/aggregate-function.component.mjs +3 -3
- package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +10 -7
- package/esm2022/form-fields/currency-fields/currency-fields.component.mjs +11 -8
- package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +12 -9
- package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +11 -8
- package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +11 -8
- package/esm2022/form-fields/form-fields.module.mjs +1 -1
- package/esm2022/form-fields/hidden-field/hidden-field.component.mjs +26 -19
- package/esm2022/form-fields/iframe-fields/iframe-fields.component.mjs +21 -21
- package/esm2022/form-fields/location-fields/location-fields.component.mjs +3 -3
- package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +11 -8
- package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +12 -9
- package/esm2022/form-fields/number-fields/number-fields.component.mjs +11 -8
- package/esm2022/form-fields/password-fields/password-fields.component.mjs +11 -8
- package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +11 -8
- package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +12 -9
- package/esm2022/form-fields/section-fields/section-fields.component.mjs +3 -3
- package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +11 -8
- package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +3 -3
- package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +12 -9
- package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +9 -7
- package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +11 -8
- package/esm2022/form-fields/text-fields/text-fields.component.mjs +11 -8
- package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +10 -7
- package/esm2022/form-fields/url-fields/url-fields.component.mjs +11 -8
- package/esm2022/form-submission/form-submission.module.mjs +1 -1
- package/esm2022/form-submission/header/header.component.mjs +3 -3
- package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +3 -3
- package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +3 -3
- package/esm2022/form-submission/save-as-draft/saveDraftModalComponent .mjs +3 -3
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +25 -22
- package/esm2022/lib/form-submission.component.mjs +3 -3
- package/esm2022/lib/form-submission.module.mjs +1 -1
- package/esm2022/models/aggregate.model.mjs +1 -1
- package/esm2022/models/answer.model.mjs +1 -1
- package/esm2022/models/appearance.model.mjs +1 -1
- package/esm2022/models/attachment.model.mjs +1 -1
- package/esm2022/models/defaultAnswerEntry.model.mjs +1 -1
- package/esm2022/models/defaultAnswersModel.model.mjs +1 -1
- package/esm2022/models/defaultQuestionAnswer.model.mjs +1 -1
- package/esm2022/models/elementOptionAPI.model.mjs +1 -1
- package/esm2022/models/elementOptionDB.model.mjs +1 -1
- package/esm2022/models/emitters.model.mjs +1 -1
- package/esm2022/models/formElement.model.mjs +1 -1
- package/esm2022/models/grid.model.mjs +1 -1
- package/esm2022/models/hiddenField.model.mjs +1 -1
- package/esm2022/models/iFrameProperties.model.mjs +1 -1
- package/esm2022/models/multifields.model.mjs +1 -1
- package/esm2022/models/page.model.mjs +1 -1
- package/esm2022/models/publicForm.model.mjs +1 -1
- package/esm2022/models/question.model.mjs +1 -1
- package/esm2022/models/questionGroup.model.mjs +1 -1
- package/esm2022/models/scoring.model.mjs +1 -1
- package/esm2022/models/section.model.mjs +1 -1
- package/esm2022/models/subForm.model.mjs +1 -1
- package/esm2022/models/subformConfiguration.model.mjs +1 -1
- package/esm2022/models/subformPropery.model.mjs +1 -1
- package/esm2022/models/submission.model.mjs +1 -1
- package/esm2022/models/submissionCopyConfig.mopdel.mjs +1 -1
- package/esm2022/models/whenClause.model.mjs +1 -1
- package/esm2022/models/whenClauseCondition.model.mjs +1 -1
- package/esm2022/models/whenClauseElements.model.mjs +1 -1
- package/esm2022/question/card-subform/card-subform.component.mjs +83 -53
- package/esm2022/question/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2022/question/form-elements/form-elements.component.mjs +3 -3
- package/esm2022/question/inline-multiple-subform/inline-multiple-subform.component.mjs +37 -30
- package/esm2022/question/multifields/multifields.component.mjs +3 -3
- package/esm2022/question/multiple-subform/multiple-subform.component.mjs +3 -3
- package/esm2022/question/question/question.component.mjs +3 -3
- package/esm2022/question/question-group/question-group.component.mjs +3 -3
- package/esm2022/question/recursive-logic/recursive-logic.component.mjs +3 -3
- package/esm2022/question/sub-form/sub-form.component.mjs +3 -3
- package/esm2022/services/aggregate.service.mjs +1 -1
- package/esm2022/services/countryService.mjs +1 -1
- package/esm2022/services/data.service.mjs +1 -1
- package/esm2022/services/form-validation.service.mjs +1 -1
- package/esm2022/services/form.service.mjs +1 -1
- package/esm2022/services/hidden-field.service.mjs +160 -0
- package/esm2022/services/mapper.service.mjs +3 -2
- package/esm2022/services/recaptcha.service.mjs +1 -1
- package/esm2022/services/score.service.mjs +1 -1
- package/esm2022/services/subform-copy.service.mjs +1 -1
- package/esm2022/services/whenClause.service.mjs +1 -1
- package/esm2022/shared/shared.module.mjs +1 -1
- package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +3 -3
- package/fesm2022/piserve-tech-form-submission.mjs +457 -225
- package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
- package/form-fields/check-box-fields/check-box-fields.component.d.ts +3 -1
- package/form-fields/currency-fields/currency-fields.component.d.ts +3 -1
- package/form-fields/date-time-fields/date-time-fields.component.d.ts +3 -1
- package/form-fields/drop-down-fields/drop-down-fields.component.d.ts +3 -1
- package/form-fields/file-picker-fields/file-picker-fields.component.d.ts +3 -1
- package/form-fields/hidden-field/hidden-field.component.d.ts +6 -1
- package/form-fields/mail-fields/mail-fields.component.d.ts +3 -1
- package/form-fields/mobile-fields/mobile-fields.component.d.ts +3 -1
- package/form-fields/number-fields/number-fields.component.d.ts +3 -1
- package/form-fields/password-fields/password-fields.component.d.ts +3 -1
- package/form-fields/radio-button-fields/radio-button-fields.component.d.ts +3 -1
- package/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.d.ts +3 -1
- package/form-fields/selection-matrix-fields/selection-matrix-fields.component.d.ts +3 -1
- package/form-fields/slider-fields/slider-fields.component.d.ts +3 -1
- package/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.d.ts +3 -1
- package/form-fields/text-area-fields/text-area-fields.component.d.ts +3 -1
- package/form-fields/text-fields/text-fields.component.d.ts +3 -1
- package/form-fields/toggle-switch-fields/toggle-switch-fields.component.d.ts +3 -0
- package/form-fields/url-fields/url-fields.component.d.ts +3 -1
- package/form-submission/submit-form/submit-form.component.d.ts +3 -1
- package/models/hiddenField.model.d.ts +1 -0
- package/package.json +1 -1
- package/question/card-subform/card-subform.component.d.ts +7 -1
- package/question/inline-multiple-subform/inline-multiple-subform.component.d.ts +4 -1
- package/services/hidden-field.service.d.ts +31 -0
|
@@ -420,4 +420,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
420
420
|
providedIn: 'root',
|
|
421
421
|
}]
|
|
422
422
|
}], ctorParameters: function () { return []; } });
|
|
423
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hlbkNsYXVzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy93aGVuQ2xhdXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS2hELE1BQU0sT0FBTyxpQkFBaUI7SUFRNUI7UUFQUSwwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsc0JBQWlCLEdBQWtDLEVBQUUsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBSTlELGtCQUFhLEdBQVksSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUVoQixpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBR0M7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7UUFDOUIsT0FBTyxDQUFDLENBQUMsQ0FDUCxJQUFJO1lBQ0osSUFBSSxDQUFDLFFBQVE7WUFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sTUFB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LENBQUM7SUFFRCxZQUFZO1FBQ1Ysc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFaEMscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFNUIsMENBQTBDO0lBQzVDLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQzsrR0E3ZVUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3VibWlzc2lvbiB9IGZyb20gJy4uL21vZGVscy9zdWJtaXNzaW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3ViamVjdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2hlbkNsYXVzZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgYWN0aXZlV2hlbkNsYXVzZUdyaWRzOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgcXVlc3Rpb25BbnN3ZXJNYXA6IHsgW3F1ZXN0aW9uSWQ6IHN0cmluZ106IGFueSB9ID0ge307XHJcbnByaXZhdGUgcXVlc3Rpb25DaGFuZ2UkID0gbmV3IFN1YmplY3Q8eyBxdWVzdGlvbklkOiBzdHJpbmcgfT4oKTtcclxuXHJcblxyXG5cclxuICBpc0luaXRpYWxMb2FkOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG1hcmtMb2FkQ29tcGxldGVkKCkge1xyXG4gICAgdGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvblF1ZXN0aW9uQ2hhbmdlKCkge1xyXG4gIHJldHVybiB0aGlzLnF1ZXN0aW9uQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcclxufVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgYSBncmlkIGhhcyBhbiBhY3RpdmUgd2hlbiBjbGF1c2VcclxuICAgKi9cclxuICBpc0FjdGl2ZVdoZW5DbGF1c2UoZ3JpZDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB3aGVuID0gZ3JpZD8ud2hlbkNsYXVzZTtcclxuICAgIHJldHVybiAhIShcclxuICAgICAgd2hlbiAmJlxyXG4gICAgICB3aGVuLmFjdGl2YXRlICYmXHJcbiAgICAgIEFycmF5LmlzQXJyYXkod2hlbi53aGVuQ2xhdXNlQ29uZGl0aW9uKSAmJlxyXG4gICAgICB3aGVuLndoZW5DbGF1c2VDb25kaXRpb24ubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIGdyaWQgdG8gdHJhY2tpbmcgbGlzdCBpZiBpdCBoYXMgYW4gYWN0aXZlIHdoZW4gY2xhdXNlXHJcbiAgICovXHJcbiAgYWRkR3JpZChncmlkOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghZ3JpZCkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmlzQWN0aXZlV2hlbkNsYXVzZShncmlkKSkge1xyXG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLmFjdGl2ZVdoZW5DbGF1c2VHcmlkcy5zb21lKFxyXG4gICAgICAgIChnKSA9PiBnLmVsZW1lbnQ/LmlkID09PSBncmlkLmVsZW1lbnQ/LmlkXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlV2hlbkNsYXVzZUdyaWRzLnB1c2goZ3JpZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFF1ZXN0aW9uQW5zd2VyKHF1ZXN0aW9uSWQ6IHN0cmluZywgYW5zd2VyOiBhbnksaW5pdGlhbDpib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmICghcXVlc3Rpb25JZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5xdWVzdGlvbkFuc3dlck1hcFtxdWVzdGlvbklkXSA9IGFuc3dlcjtcclxuICAgIHRoaXMuZXZhbHVhdGVBbGxXaGVuQ2xhdXNlcyhpbml0aWFsKTtcclxuICAgICAgdGhpcy5xdWVzdGlvbkNoYW5nZSQubmV4dCh7IHF1ZXN0aW9uSWQgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbnN3ZXIocXVlc3Rpb25JZDogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uQW5zd2VyTWFwW3F1ZXN0aW9uSWRdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBldmFsdWF0ZUFsbFdoZW5DbGF1c2VzKGluaXRpYWw6Ym9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgdmlzaWJsZUdyaWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgZ3JpZCBvZiB0aGlzLmFjdGl2ZVdoZW5DbGF1c2VHcmlkcykge1xyXG4gICAgICBjb25zdCB3aGVuID0gZ3JpZC53aGVuQ2xhdXNlO1xyXG4gICAgICBjb25zdCBjb25kaXRpb25zID0gd2hlbi53aGVuQ2xhdXNlQ29uZGl0aW9uO1xyXG5cclxuICAgICAgaWYgKCFjb25kaXRpb25zIHx8ICFjb25kaXRpb25zLmxlbmd0aCkgY29udGludWU7XHJcblxyXG4gICAgICBsZXQgb3ZlcmFsbFJlc3VsdCA9IHRydWU7XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmRpdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBjbGF1c2UgPSBjb25kaXRpb25zW2ldO1xyXG4gICAgICAgIGNvbnN0IGxvZ2ljID0gKGNsYXVzZS5sb2dpYyB8fCAoaSA9PT0gMCA/ICdBTkQnIDogJ0FORCcpKS50b1VwcGVyQ2FzZSgpOyAvLyBEZWZhdWx0IHRvIEFORCBmb3IgZmlyc3RcclxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLmdldEFuc3dlcihjbGF1c2UucXVlc3Rpb25pZCk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihcclxuICAgICAgICAgIGFuc3dlcixcclxuICAgICAgICAgIGNsYXVzZS5jb25kaXRpb24sXHJcbiAgICAgICAgICBjbGF1c2UudmFsdWVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyBDb21iaW5lIHJlc3VsdHMgYmFzZWQgb24gbG9naWMgKEFORCAvIE9SKVxyXG4gICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICBvdmVyYWxsUmVzdWx0ID0gcmVzdWx0OyAvLyBpbml0aWFsaXplIHdpdGggZmlyc3QgY29uZGl0aW9uXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChsb2dpYyA9PT0gJ0FORCcpIHtcclxuICAgICAgICAgICAgb3ZlcmFsbFJlc3VsdCA9IG92ZXJhbGxSZXN1bHQgJiYgcmVzdWx0O1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChsb2dpYyA9PT0gJ09SJykge1xyXG4gICAgICAgICAgICBvdmVyYWxsUmVzdWx0ID0gb3ZlcmFsbFJlc3VsdCB8fCByZXN1bHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIHNhZmUgcmVhZCBhY3Rpb25zIChjb3VsZCBiZSB1bmRlZmluZWQpXHJcbiAgICBjb25zdCBhY3Rpb25zOiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkod2hlbj8ud2hlbkNsYXVzZUFjdGlvbnMpXHJcbiAgICA/IHdoZW4ud2hlbkNsYXVzZUFjdGlvbnMubWFwKFN0cmluZylcclxuICAgIDogW107XHJcblxyXG4gIC8vIGNob29zZSB0aGUgZGVjaXNpdmUgYWN0aW9uICh1c2UgbGFzdCBpZiBtdWx0aXBsZSlcclxuICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLmxlbmd0aCA+IDAgPyBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XHJcblxyXG4gIGlmIChvdmVyYWxsUmVzdWx0KSB7XHJcbiAgICAvLyBDb25kaXRpb24ocykgc2F0aXNmaWVkIC0+IHBlcmZvcm0gdGhlIGFjdGlvblxyXG4gICAgc3dpdGNoIChhY3Rpb24pIHtcclxuICAgICAgY2FzZSAnU0hPVyc6XHJcbiAgICAgICAgZ3JpZC5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnSElERSc6XHJcbiAgICAgICAgZ3JpZC5zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ01BUktfQVNfUkVRVUlSRUQnOlxyXG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ01BUktfQVNfT1BUSU9OQUwnOlxyXG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIC8vIG5vIHNob3cvaGlkZSBhY3Rpb24g4oCUIGtlZXAgY3VycmVudCBiZWhhdmlvciAoeW91IGNhbiBjaG9vc2UgZGVmYXVsdCBoZXJlKVxyXG4gICAgICAgIC8vIEZvciBzYWZldHksIGlmIG5vIGV4cGxpY2l0IGFjdGlvbiwgd2UnbGwgbGVhdmUgZ3JpZC5zaG93IHVuY2hhbmdlZC5cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiB2aXNpYmxlLCBjb2xsZWN0XHJcbiAgICBpZiAoZ3JpZC5zaG93KSB2aXNpYmxlR3JpZHMucHVzaChncmlkKTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gQ29uZGl0aW9uKHMpIG5vdCBzYXRpc2ZpZWQgLT4gcmV2ZXJ0IHRoZSBhY3Rpb24ncyBlZmZlY3RcclxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ1NIT1cnOlxyXG4gICAgICAgIC8vIGNvbmRpdGlvbiBubyBsb25nZXIgdHJ1ZSA9PiBoaWRlIChyZXZlcnQpXHJcbiAgICAgICAgZ3JpZC5zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0hJREUnOlxyXG4gICAgICAgIC8vIGNvbmRpdGlvbiBubyBsb25nZXIgdHJ1ZSA9PiBzaG93IChyZXZlcnQpXHJcbiAgICAgICAgZ3JpZC5zaG93ID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTUFSS19BU19SRVFVSVJFRCc6XHJcbiAgICAgICAgaWYgKGdyaWQuZWxlbWVudCkgZ3JpZC5lbGVtZW50LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ01BUktfQVNfT1BUSU9OQUwnOlxyXG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gbm90aGluZyB0byByZXZlcnRcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIC8vIGlmIHdlIGhpZCBpdCBiZWNhdXNlIG92ZXJhbGxSZXN1bHQgZmFsc2UgYW5kIGl0J3Mgbm90IGluaXRpYWwsIGNsZWFyIGFuc3dlclxyXG4gICAgaWYgKCFvdmVyYWxsUmVzdWx0ICYmICFpbml0aWFsICYmICFncmlkLnNob3cpIHtcclxuICAgICAgZ3JpZC5lbGVtZW50LmFuc3dlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gICAgICBpZiAob3ZlcmFsbFJlc3VsdCkgdmlzaWJsZUdyaWRzLnB1c2goZ3JpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZUNvbmRpdGlvbihhbnN3ZXI6IGFueSwgb3BlcmF0b3I6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cclxuICAgIC8vIHRyZWF0IG51bGwvdW5kZWZpbmVkL2VtcHR5LXN0cmluZy9lbXB0eS1hcnJheSBhcyBcIm5vIGFuc3dlclwiXHJcbiAgICBpZiAoYW5zd2VyID09PSBudWxsIHx8IGFuc3dlciA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyBpZiAodHlwZW9mIGFuc3dlciA9PT0gJ3N0cmluZycgJiYgYW5zd2VyID09PSAnJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYW5zd2VyKSAmJiBhbnN3ZXIubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gaGVscGVycyB0byBub3JtYWxpemUgdmFsdWVzIHRvIGFycmF5cyBvZiBsb3dlci1jYXNlIHN0cmluZ3MgKGZvciBzdHJpbmcgb3BzKVxyXG4gICAgY29uc3QgdG9TdHIgPSAodjogYW55KSA9PlxyXG4gICAgICB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHYpLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgY29uc3QgZW5zdXJlQXJyYXkgPSAodjogYW55KTogc3RyaW5nW10gPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkgcmV0dXJuIHYubWFwKCh4KSA9PiB0b1N0cih4KSk7XHJcbiAgICAgIC8vIGlmIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgPT4gc3BsaXQsIGVsc2Ugc2luZ2xlIGVsZW1lbnQgYXJyYXlcclxuICAgICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LmluZGV4T2YoJywnKSAhPT0gLTEpIHtcclxuICAgICAgICByZXR1cm4gdlxyXG4gICAgICAgICAgLnNwbGl0KCcsJylcclxuICAgICAgICAgIC5tYXAoKHgpID0+IHgudHJpbSgpKVxyXG4gICAgICAgICAgLm1hcCgoeCkgPT4gdG9TdHIoeCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBbdG9TdHIodildO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBhbnNBcnIgPSBlbnN1cmVBcnJheShhbnN3ZXIpO1xyXG4gICAgY29uc3QgdmFsQXJyID0gZW5zdXJlQXJyYXkodmFsdWUpO1xyXG5cclxuICAgIC8vIG51bWVyaWMgY29tcGFyaXNvbnM6IG9ubHkgd2hlbiBib3RoIHNpZGVzIGFyZSBzY2FsYXJzIChub24tYXJyYXkpIGFuZCBudW1lcmljXHJcbiAgICBjb25zdCBpc051bWVyaWNTY2FsYXIgPSAoeDogYW55KSA9PlxyXG4gICAgICAhQXJyYXkuaXNBcnJheSh4KSAmJiB4ICE9PSBudWxsICYmIHggIT09IHVuZGVmaW5lZCAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih4KSk7XHJcblxyXG4gICAgc3dpdGNoIChvcGVyYXRvcikge1xyXG4gICAgICBjYXNlICc8JzpcclxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoYW5zd2VyKSA8IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlICc+JzpcclxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoYW5zd2VyKSA+IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlICc8PSc6XHJcbiAgICAgICAgaWYgKGlzTnVtZXJpY1NjYWxhcihhbnN3ZXIpICYmIGlzTnVtZXJpY1NjYWxhcih2YWx1ZSkpXHJcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKGFuc3dlcikgPD0gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgJz49JzpcclxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoYW5zd2VyKSA+PSBOdW1iZXIodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIC8vIGVxdWFsaXR5OiB0cnVlIGlmIGFueSBhbnN3ZXIgZWxlbWVudCBlcXVhbHMgYW55IHZhbHVlIGVsZW1lbnRcclxuICAgICAgY2FzZSAnPSc6XHJcbiAgICAgICAgcmV0dXJuIGFuc0Fyci5zb21lKChhKSA9PiB2YWxBcnIuc29tZSgodikgPT4gYSA9PT0gdikpO1xyXG5cclxuICAgICAgY2FzZSAnIT0nOlxyXG4gICAgICAgIHJldHVybiAhYW5zQXJyLnNvbWUoKGEpID0+IHZhbEFyci5zb21lKCh2KSA9PiBhID09PSB2KSk7XHJcblxyXG4gICAgICAvLyBMSUtFIC8gTk9UIExJS0U6IGNoZWNrIHN1YnN0cmluZyBtYXRjaCBhbnl3aGVyZSBpbiBhbnkgYW5zd2VyIGVsZW1lbnRcclxuICAgICAgY2FzZSAnTElLRSc6XHJcbiAgICAgICAgcmV0dXJuIGFuc0Fyci5zb21lKChhKSA9PiB2YWxBcnIuc29tZSgodikgPT4gYS5pbmNsdWRlcyh2KSkpO1xyXG4gICAgICBjYXNlICdOT1QgTElLRSc6XHJcbiAgICAgICAgcmV0dXJuICFhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLnNvbWUoKHYpID0+IGEuaW5jbHVkZXModikpKTtcclxuXHJcbiAgICAgIGNhc2UgJ0JFR0lOIFdJVEgnOlxyXG4gICAgICAgIHJldHVybiBhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLnNvbWUoKHYpID0+IGEuc3RhcnRzV2l0aCh2KSkpO1xyXG4gICAgICBjYXNlICdFTkQgV0lUSCc6XHJcbiAgICAgICAgcmV0dXJuIGFuc0Fyci5zb21lKChhKSA9PiB2YWxBcnIuc29tZSgodikgPT4gYS5lbmRzV2l0aCh2KSkpO1xyXG5cclxuICAgICAgLy8gSU4gLyBOT1QgSU46IHRydWUgaWYgYW55IGFuc3dlciBlbGVtZW50IGV4aXN0cyBpbiB2YWx1ZSBsaXN0XHJcbiAgICAgIGNhc2UgJ0lOJzpcclxuICAgICAgICByZXR1cm4gYW5zQXJyLnNvbWUoKGEpID0+IHZhbEFyci5pbmNsdWRlcyhhKSk7XHJcbiAgICAgIGNhc2UgJ05PVCBJTic6XHJcbiAgICAgICAgcmV0dXJuICFhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLmluY2x1ZGVzKGEpKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkR3JpZHNGcm9tU3ViZm9ybShzdWJmb3JtOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghc3ViZm9ybSB8fCAhQXJyYXkuaXNBcnJheShzdWJmb3JtLnJvd3MpKSByZXR1cm47XHJcblxyXG4gICAgZm9yIChjb25zdCByb3cgb2Ygc3ViZm9ybS5yb3dzKSB7XHJcbiAgICAgIGlmICghcm93LmdyaWQgfHwgIUFycmF5LmlzQXJyYXkocm93LmdyaWQpKSBjb250aW51ZTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgZ3JpZCBvZiByb3cuZ3JpZCkge1xyXG4gICAgICAgIC8vIDHvuI/ig6MgQWRkIHRoaXMgZ3JpZCBpdHNlbGYgaWYgaXQgaGFzIGFuIGFjdGl2ZSB3aGVuQ2xhdXNlXHJcbiAgICAgICAgdGhpcy5hZGRHcmlkKGdyaWQpO1xyXG5cclxuICAgICAgICAvLyAy77iP4oOjIFRoZW4sIHJlY3Vyc2l2ZWx5IHByb2Nlc3MgbmVzdGVkIGNoaWxkTG9naWNzIGluc2lkZSBpdHMgZWxlbWVudFxyXG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQ/LmNoaWxkTG9naWNzPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMucHJvY2Vzc0NoaWxkTG9naWNzKGdyaWQuZWxlbWVudC5jaGlsZExvZ2ljcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmVseSBwcm9jZXNzIGNoaWxkTG9naWNzIHN0cnVjdHVyZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcHJvY2Vzc0NoaWxkTG9naWNzKGNoaWxkTG9naWNzOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkTG9naWNzKSkgcmV0dXJuO1xyXG5cclxuICAgIGZvciAoY29uc3QgbG9naWMgb2YgY2hpbGRMb2dpY3MpIHtcclxuICAgICAgLy8gMe+4j+KDoyBFYWNoIGxvZ2ljIG1heSBoYXZlIGl0cyBvd24gcm93cyAoc2ltaWxhciB0byBzdWJmb3JtIHJvd3MpXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvZ2ljLnJvd3MpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgbG9naWMucm93cykge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93LmdyaWQpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JpZCBvZiByb3cuZ3JpZCkge1xyXG4gICAgICAgICAgICAgIC8vIENoZWNrIHdoZW5DbGF1c2UgZm9yIHRoaXMgbmVzdGVkIGdyaWRcclxuICAgICAgICAgICAgICB0aGlzLmFkZEdyaWQoZ3JpZCk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIDLvuI/ig6MgUmVjdXJzZSBhZ2FpbiBpZiB0aGlzIG5lc3RlZCBxdWVzdGlvbiBhbHNvIGhhcyBpdHMgb3duIGNoaWxkTG9naWNzXHJcbiAgICAgICAgICAgICAgaWYgKGdyaWQuZWxlbWVudD8uY2hpbGRMb2dpY3M/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRMb2dpY3MoZ3JpZC5lbGVtZW50LmNoaWxkTG9naWNzKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIDPvuI/ig6MgQSBsb2dpYyBpdHNlbGYgbWlnaHQgZGlyZWN0bHkgY29udGFpbiBuZXN0ZWQgbG9naWNzXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvZ2ljLmNoaWxkTG9naWNzKSkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc0NoaWxkTG9naWNzKGxvZ2ljLmNoaWxkTG9naWNzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIEFMTCBlbGVtZW50cyB3aXRoIGFuIGFjdGl2ZSB3aGVuQ2xhdXNlIGluc2lkZSBhIHN1YmZvcm0sXHJcbiAgICogaW5jbHVkaW5nIG5lc3RlZCBjaGlsZExvZ2ljcyAocmVjdXJzaXZlKVxyXG4gICAqL1xyXG4gIGdldFdoZW5DbGF1c2VFbGVtZW50cyhzdWJmb3JtOiBhbnkpOiBhbnlbXSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcblxyXG4gICAgaWYgKCFzdWJmb3JtIHx8ICFBcnJheS5pc0FycmF5KHN1YmZvcm0ucm93cykpIHtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBzdWJmb3JtLnJvd3MpIHtcclxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJvdy5ncmlkKSkgY29udGludWU7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGdyaWQgb2Ygcm93LmdyaWQpIHtcclxuICAgICAgICAvLyAx77iP4oOjIEFkZCB0aGlzIGdyaWQgaWYgaXQgaGFzIGFuIGFjdGl2ZSB3aGVuQ2xhdXNlXHJcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVXaGVuQ2xhdXNlKGdyaWQpKSB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaChncmlkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDLvuI/ig6MgUHJvY2VzcyBuZXN0ZWQgY2hpbGRMb2dpY3MgaW5zaWRlIHRoaXMgZWxlbWVudFxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGdyaWQuZWxlbWVudD8uY2hpbGRMb2dpY3MpKSB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaChcclxuICAgICAgICAgICAgLi4udGhpcy5nZXRFbGVtZW50c0Zyb21DaGlsZExvZ2ljcyhncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3MpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmVseSBnYXRoZXIgZ3JpZHMgd2l0aCBhY3RpdmUgd2hlbkNsYXVzZSBpbnNpZGUgY2hpbGRMb2dpY3NcclxuICAgKi9cclxuICBwcml2YXRlIGdldEVsZW1lbnRzRnJvbUNoaWxkTG9naWNzKGNoaWxkTG9naWNzOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGNvbnN0IGZvdW5kOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZExvZ2ljcykpIHJldHVybiBmb3VuZDtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGxvZ2ljIG9mIGNoaWxkTG9naWNzKSB7XHJcbiAgICAgIC8vIEVhY2ggbG9naWMgY2FuIGhhdmUgcm93c1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShsb2dpYy5yb3dzKSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIGxvZ2ljLnJvd3MpIHtcclxuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb3cuZ3JpZCkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgIGZvciAoY29uc3QgZ3JpZCBvZiByb3cuZ3JpZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZVdoZW5DbGF1c2UoZ3JpZCkpIHtcclxuICAgICAgICAgICAgICBmb3VuZC5wdXNoKGdyaWQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBSZWN1cnNlIGRlZXBlciBpZiB0aGlzIGdyaWQgaGFzIG5lc3RlZCBjaGlsZExvZ2ljc1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShncmlkLmVsZW1lbnQ/LmNoaWxkTG9naWNzKSkge1xyXG4gICAgICAgICAgICAgIGZvdW5kLnB1c2goXHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldEVsZW1lbnRzRnJvbUNoaWxkTG9naWNzKGdyaWQuZWxlbWVudC5jaGlsZExvZ2ljcylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBMb2dpYyBpdHNlbGYgbWF5IGhhdmUgbmVzdGVkIGNoaWxkTG9naWNzXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvZ2ljLmNoaWxkTG9naWNzKSkge1xyXG4gICAgICAgIGZvdW5kLnB1c2goLi4udGhpcy5nZXRFbGVtZW50c0Zyb21DaGlsZExvZ2ljcyhsb2dpYy5jaGlsZExvZ2ljcykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvdW5kO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tFbGVtZW50VmlzaWJpbGl0eShpZDogc3RyaW5nLCBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWlkIHx8ICFzdWJtaXNzaW9uIHx8ICFBcnJheS5pc0FycmF5KHN1Ym1pc3Npb24uYW5zd2VycykpIHtcclxuICAgICAgcmV0dXJuIHRydWU7IC8vIGRlZmF1bHQgdmlzaWJsZSBpZiBpbnZhbGlkIGlucHV0XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWF0Y2hlZEFuc3dlciA9IHN1Ym1pc3Npb24uYW5zd2Vycy5maW5kKFxyXG4gICAgICAoYW5zKSA9PiBhbnMucXVlc3Rpb25JZCA9PT0gaWRcclxuICAgICk7XHJcblxyXG4gICAgLy8gUmV0dXJuIHRoZSAnc2hvdycgZmxhZyBpZiBmb3VuZCwgZWxzZSBkZWZhdWx0IHRvIHRydWVcclxuICAgIHJldHVybiBtYXRjaGVkQW5zd2VyID8gbWF0Y2hlZEFuc3dlci5zaG93ID8/IHRydWUgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVTdWJmb3JtV2hlbkNsYXVzZXMoXHJcbiAgICBjaGFuZ2VkQW5zd2VyOiBhbnksXHJcbiAgICBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uLFxyXG4gICAgY2hhbmdlZFF1ZXN0aW9uSWQ6IHN0cmluZyxcclxuICAgIGVsZW1lbnRzV2l0aFdoZW5DbGF1c2U6IGFueVxyXG4gICkge1xyXG4gICAgaWYgKCFlbGVtZW50c1dpdGhXaGVuQ2xhdXNlLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGZvciAoY29uc3QgZ3JpZCBvZiBlbGVtZW50c1dpdGhXaGVuQ2xhdXNlKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IGdyaWQuZWxlbWVudC5pZDtcclxuICAgICAgY29uc3Qgd2hlbiA9IGdyaWQud2hlbkNsYXVzZTtcclxuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHdoZW4ud2hlbkNsYXVzZUNvbmRpdGlvbjtcclxuXHJcbiAgICAgIGlmICghY29uZGl0aW9ucz8ubGVuZ3RoKSBjb250aW51ZTtcclxuXHJcbiAgICAgIGxldCBvdmVyYWxsUmVzdWx0ID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZGl0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGNsYXVzZSA9IGNvbmRpdGlvbnNbaV07XHJcblxyXG4gICAgICAgIGNvbnN0IGxvZ2ljID0gKGNsYXVzZS5sb2dpYyB8fCAoaSA9PT0gMCA/ICdBTkQnIDogJ0FORCcpKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggYW5zd2VyIHRvIHVzZSBmb3IgdGhpcyBjb25kaXRpb25cclxuICAgICAgICBsZXQgYW5zd2VyVG9DaGVjazogYW55O1xyXG5cclxuICAgICAgICBpZiAoY2xhdXNlLnF1ZXN0aW9uaWQgPT09IGNoYW5nZWRRdWVzdGlvbklkKSB7XHJcbiAgICAgICAgICAvLyBVc2UgdXBkYXRlZCBhbnN3ZXIgZm9yIHRoZSBjaGFuZ2VkIHF1ZXN0aW9uXHJcbiAgICAgICAgICBhbnN3ZXJUb0NoZWNrID0gY2hhbmdlZEFuc3dlcjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gRmV0Y2ggZXhpc3RpbmcgdmFsdWUgZnJvbSBzdWJtaXNzaW9uIGZvciBvdGhlciBxdWVzdGlvbnNcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gc3VibWlzc2lvbi5hbnN3ZXJzLmZpbmQoXHJcbiAgICAgICAgICAgIChhKSA9PiBhLnF1ZXN0aW9uSWQgPT09IGNsYXVzZS5xdWVzdGlvbmlkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYW5zd2VyVG9DaGVjayA9IGV4aXN0aW5nPy5hbnN3ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKFxyXG4gICAgICAgICAgYW5zd2VyVG9DaGVjayxcclxuICAgICAgICAgIGNsYXVzZS5jb25kaXRpb24sXHJcbiAgICAgICAgICBjbGF1c2UudmFsdWVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyBBcHBseSBBTkQvT1IgbG9naWNcclxuICAgICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgICAgb3ZlcmFsbFJlc3VsdCA9IHJlc3VsdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3ZlcmFsbFJlc3VsdCA9XHJcbiAgICAgICAgICAgIGxvZ2ljID09PSAnQU5EJyA/IG92ZXJhbGxSZXN1bHQgJiYgcmVzdWx0IDogb3ZlcmFsbFJlc3VsdCB8fCByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBVcGRhdGUgc2hvdyBmbGFnIGZvciB0aGUgZWxlbWVudCBjb250cm9sbGVkIGJ5IHRoaXMgd2hlbkNsYXVzZVxyXG4gICAgICBjb25zdCBtYXRjaGVkQW5zd2VyID0gc3VibWlzc2lvbi5hbnN3ZXJzLmZpbmQoXHJcbiAgICAgICAgKGFucykgPT4gYW5zLnF1ZXN0aW9uSWQgPT09IGVsZW1lbnRJZFxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgYWN0aW9uczogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KHdoZW4/LndoZW5DbGF1c2VBY3Rpb25zKVxyXG4gICAgPyB3aGVuLndoZW5DbGF1c2VBY3Rpb25zLm1hcChTdHJpbmcpXHJcbiAgICA6IFtdO1xyXG5cclxuICAgICAgLy8gY2hvb3NlIHRoZSBkZWNpc2l2ZSBhY3Rpb24gKHVzZSBsYXN0IGlmIG11bHRpcGxlKVxyXG4gICAgICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLmxlbmd0aCA+IDAgPyBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XHJcblxyXG5cclxuICAgICAgaWYgKG1hdGNoZWRBbnN3ZXIpIHtcclxuICAgICAgICBpZiAob3ZlcmFsbFJlc3VsdCkge1xyXG4gICAgICAgICAgLy8gQ29uZGl0aW9uKHMpIHNhdGlzZmllZCAtPiBwZXJmb3JtIHRoZSBhY3Rpb25cclxuICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ1NIT1cnOlxyXG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0hJREUnOlxyXG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdNQVJLX0FTX1JFUVVJUkVEJzpcclxuICAgICAgICAgICAgICBtYXRjaGVkQW5zd2VyLnJlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnTUFSS19BU19PUFRJT05BTCc6XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZEFuc3dlci5yZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIC8vIG5vIHNob3cvaGlkZSBhY3Rpb24g4oCUIGtlZXAgY3VycmVudCBiZWhhdmlvciAoeW91IGNhbiBjaG9vc2UgZGVmYXVsdCBoZXJlKVxyXG4gICAgICAgICAgICAgIC8vIEZvciBzYWZldHksIGlmIG5vIGV4cGxpY2l0IGFjdGlvbiwgd2UnbGwgbGVhdmUgZ3JpZC5zaG93IHVuY2hhbmdlZC5cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIENvbmRpdGlvbihzKSBub3Qgc2F0aXNmaWVkIC0+IHJldmVydCB0aGUgYWN0aW9uJ3MgZWZmZWN0XHJcbiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlICdTSE9XJzpcclxuICAgICAgICAgICAgICAvLyBjb25kaXRpb24gbm8gbG9uZ2VyIHRydWUgPT4gaGlkZSAocmV2ZXJ0KVxyXG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdISURFJzpcclxuICAgICAgICAgICAgICAvLyBjb25kaXRpb24gbm8gbG9uZ2VyIHRydWUgPT4gc2hvdyAocmV2ZXJ0KVxyXG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ01BUktfQVNfUkVRVUlSRUQnOlxyXG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIucmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnTUFSS19BU19PUFRJT05BTCc6XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZEFuc3dlci5yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgLy8gbm90aGluZyB0byByZXZlcnRcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgICAgIC8vIGlmIChtYXRjaGVkQW5zd2VyKSB7XHJcbiAgICAgIC8vICAgbWF0Y2hlZEFuc3dlci5zaG93ID0gb3ZlcmFsbFJlc3VsdDtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgLy8gQ2xlYXIgdHJhY2tlZCBncmlkc1xyXG4gICAgdGhpcy5hY3RpdmVXaGVuQ2xhdXNlR3JpZHMgPSBbXTtcclxuXHJcbiAgICAvLyBDbGVhciBzdG9yZWQgcXVlc3Rpb24g4oaSIGFuc3dlciBtYXBcclxuICAgIHRoaXMucXVlc3Rpb25BbnN3ZXJNYXAgPSB7fTtcclxuXHJcbiAgICAvLyBSZXNldCB2aXNpYmlsaXR5IGxvZ2ljIHRvIGluaXRpYWwgc3RhdGVcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVdoZW5DbGF1c2VHcmlkcygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVXaGVuQ2xhdXNlR3JpZHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hlbkNsYXVzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy93aGVuQ2xhdXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS2hELE1BQU0sT0FBTyxpQkFBaUI7SUFRNUI7UUFQUSwwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsc0JBQWlCLEdBQWtDLEVBQUUsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBSTlELGtCQUFhLEdBQVksSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUVoQixpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBR0M7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7UUFDOUIsT0FBTyxDQUFDLENBQUMsQ0FDUCxJQUFJO1lBQ0osSUFBSSxDQUFDLFFBQVE7WUFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sTUFB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LENBQUM7SUFFRCxZQUFZO1FBQ1Ysc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFaEMscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFNUIsMENBQTBDO0lBQzVDLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQzsrR0E3ZVUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1Ym1pc3Npb24gfSBmcm9tICcuLi9tb2RlbHMvc3VibWlzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJqZWN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdoZW5DbGF1c2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY3RpdmVXaGVuQ2xhdXNlR3JpZHM6IGFueVtdID0gW107XG4gIHByaXZhdGUgcXVlc3Rpb25BbnN3ZXJNYXA6IHsgW3F1ZXN0aW9uSWQ6IHN0cmluZ106IGFueSB9ID0ge307XG5wcml2YXRlIHF1ZXN0aW9uQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHsgcXVlc3Rpb25JZDogc3RyaW5nIH0+KCk7XG5cblxuXG4gIGlzSW5pdGlhbExvYWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbWFya0xvYWRDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XG4gIH1cblxuICBvblF1ZXN0aW9uQ2hhbmdlKCkge1xuICByZXR1cm4gdGhpcy5xdWVzdGlvbkNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG59XG5cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBncmlkIGhhcyBhbiBhY3RpdmUgd2hlbiBjbGF1c2VcbiAgICovXG4gIGlzQWN0aXZlV2hlbkNsYXVzZShncmlkOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB3aGVuID0gZ3JpZD8ud2hlbkNsYXVzZTtcbiAgICByZXR1cm4gISEoXG4gICAgICB3aGVuICYmXG4gICAgICB3aGVuLmFjdGl2YXRlICYmXG4gICAgICBBcnJheS5pc0FycmF5KHdoZW4ud2hlbkNsYXVzZUNvbmRpdGlvbikgJiZcbiAgICAgIHdoZW4ud2hlbkNsYXVzZUNvbmRpdGlvbi5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBncmlkIHRvIHRyYWNraW5nIGxpc3QgaWYgaXQgaGFzIGFuIGFjdGl2ZSB3aGVuIGNsYXVzZVxuICAgKi9cbiAgYWRkR3JpZChncmlkOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWdyaWQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmlzQWN0aXZlV2hlbkNsYXVzZShncmlkKSkge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5hY3RpdmVXaGVuQ2xhdXNlR3JpZHMuc29tZShcbiAgICAgICAgKGcpID0+IGcuZWxlbWVudD8uaWQgPT09IGdyaWQuZWxlbWVudD8uaWRcbiAgICAgICk7XG5cbiAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlV2hlbkNsYXVzZUdyaWRzLnB1c2goZ3JpZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UXVlc3Rpb25BbnN3ZXIocXVlc3Rpb25JZDogc3RyaW5nLCBhbnN3ZXI6IGFueSxpbml0aWFsOmJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghcXVlc3Rpb25JZCkgcmV0dXJuO1xuICAgIHRoaXMucXVlc3Rpb25BbnN3ZXJNYXBbcXVlc3Rpb25JZF0gPSBhbnN3ZXI7XG4gICAgdGhpcy5ldmFsdWF0ZUFsbFdoZW5DbGF1c2VzKGluaXRpYWwpO1xuICAgICAgdGhpcy5xdWVzdGlvbkNoYW5nZSQubmV4dCh7IHF1ZXN0aW9uSWQgfSk7XG4gIH1cblxuICBnZXRBbnN3ZXIocXVlc3Rpb25JZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbkFuc3dlck1hcFtxdWVzdGlvbklkXTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVBbGxXaGVuQ2xhdXNlcyhpbml0aWFsOmJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB2aXNpYmxlR3JpZHM6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGdyaWQgb2YgdGhpcy5hY3RpdmVXaGVuQ2xhdXNlR3JpZHMpIHtcbiAgICAgIGNvbnN0IHdoZW4gPSBncmlkLndoZW5DbGF1c2U7XG4gICAgICBjb25zdCBjb25kaXRpb25zID0gd2hlbi53aGVuQ2xhdXNlQ29uZGl0aW9uO1xuXG4gICAgICBpZiAoIWNvbmRpdGlvbnMgfHwgIWNvbmRpdGlvbnMubGVuZ3RoKSBjb250aW51ZTtcblxuICAgICAgbGV0IG92ZXJhbGxSZXN1bHQgPSB0cnVlO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmRpdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2xhdXNlID0gY29uZGl0aW9uc1tpXTtcbiAgICAgICAgY29uc3QgbG9naWMgPSAoY2xhdXNlLmxvZ2ljIHx8IChpID09PSAwID8gJ0FORCcgOiAnQU5EJykpLnRvVXBwZXJDYXNlKCk7IC8vIERlZmF1bHQgdG8gQU5EIGZvciBmaXJzdFxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLmdldEFuc3dlcihjbGF1c2UucXVlc3Rpb25pZCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZXZhbHVhdGVDb25kaXRpb24oXG4gICAgICAgICAgYW5zd2VyLFxuICAgICAgICAgIGNsYXVzZS5jb25kaXRpb24sXG4gICAgICAgICAgY2xhdXNlLnZhbHVlXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gQ29tYmluZSByZXN1bHRzIGJhc2VkIG9uIGxvZ2ljIChBTkQgLyBPUilcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICBvdmVyYWxsUmVzdWx0ID0gcmVzdWx0OyAvLyBpbml0aWFsaXplIHdpdGggZmlyc3QgY29uZGl0aW9uXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGxvZ2ljID09PSAnQU5EJykge1xuICAgICAgICAgICAgb3ZlcmFsbFJlc3VsdCA9IG92ZXJhbGxSZXN1bHQgJiYgcmVzdWx0O1xuICAgICAgICAgIH0gZWxzZSBpZiAobG9naWMgPT09ICdPUicpIHtcbiAgICAgICAgICAgIG92ZXJhbGxSZXN1bHQgPSBvdmVyYWxsUmVzdWx0IHx8IHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHNhZmUgcmVhZCBhY3Rpb25zIChjb3VsZCBiZSB1bmRlZmluZWQpXG4gICAgY29uc3QgYWN0aW9uczogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KHdoZW4/LndoZW5DbGF1c2VBY3Rpb25zKVxuICAgID8gd2hlbi53aGVuQ2xhdXNlQWN0aW9ucy5tYXAoU3RyaW5nKVxuICAgIDogW107XG5cbiAgLy8gY2hvb3NlIHRoZSBkZWNpc2l2ZSBhY3Rpb24gKHVzZSBsYXN0IGlmIG11bHRpcGxlKVxuICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLmxlbmd0aCA+IDAgPyBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG5cbiAgaWYgKG92ZXJhbGxSZXN1bHQpIHtcbiAgICAvLyBDb25kaXRpb24ocykgc2F0aXNmaWVkIC0+IHBlcmZvcm0gdGhlIGFjdGlvblxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdTSE9XJzpcbiAgICAgICAgZ3JpZC5zaG93ID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdISURFJzpcbiAgICAgICAgZ3JpZC5zaG93ID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTUFSS19BU19SRVFVSVJFRCc6XG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTUFSS19BU19PUFRJT05BTCc6XG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIG5vIHNob3cvaGlkZSBhY3Rpb24g4oCUIGtlZXAgY3VycmVudCBiZWhhdmlvciAoeW91IGNhbiBjaG9vc2UgZGVmYXVsdCBoZXJlKVxuICAgICAgICAvLyBGb3Igc2FmZXR5LCBpZiBubyBleHBsaWNpdCBhY3Rpb24sIHdlJ2xsIGxlYXZlIGdyaWQuc2hvdyB1bmNoYW5nZWQuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIGlmIHZpc2libGUsIGNvbGxlY3RcbiAgICBpZiAoZ3JpZC5zaG93KSB2aXNpYmxlR3JpZHMucHVzaChncmlkKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb25kaXRpb24ocykgbm90IHNhdGlzZmllZCAtPiByZXZlcnQgdGhlIGFjdGlvbidzIGVmZmVjdFxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdTSE9XJzpcbiAgICAgICAgLy8gY29uZGl0aW9uIG5vIGxvbmdlciB0cnVlID0+IGhpZGUgKHJldmVydClcbiAgICAgICAgZ3JpZC5zaG93ID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSElERSc6XG4gICAgICAgIC8vIGNvbmRpdGlvbiBubyBsb25nZXIgdHJ1ZSA9PiBzaG93IChyZXZlcnQpXG4gICAgICAgIGdyaWQuc2hvdyA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTUFSS19BU19SRVFVSVJFRCc6XG4gICAgICAgIGlmIChncmlkLmVsZW1lbnQpIGdyaWQuZWxlbWVudC5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ01BUktfQVNfT1BUSU9OQUwnOlxuICAgICAgICBpZiAoZ3JpZC5lbGVtZW50KSBncmlkLmVsZW1lbnQucmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gcmV2ZXJ0XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBoaWQgaXQgYmVjYXVzZSBvdmVyYWxsUmVzdWx0IGZhbHNlIGFuZCBpdCdzIG5vdCBpbml0aWFsLCBjbGVhciBhbnN3ZXJcbiAgICBpZiAoIW92ZXJhbGxSZXN1bHQgJiYgIWluaXRpYWwgJiYgIWdyaWQuc2hvdykge1xuICAgICAgZ3JpZC5lbGVtZW50LmFuc3dlciA9IG51bGw7XG4gICAgfVxuICB9XG4gICAgICBpZiAob3ZlcmFsbFJlc3VsdCkgdmlzaWJsZUdyaWRzLnB1c2goZ3JpZCk7XG4gICAgfVxuICB9XG5cbiAgZXZhbHVhdGVDb25kaXRpb24oYW5zd2VyOiBhbnksIG9wZXJhdG9yOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcblxuICAgIC8vIHRyZWF0IG51bGwvdW5kZWZpbmVkL2VtcHR5LXN0cmluZy9lbXB0eS1hcnJheSBhcyBcIm5vIGFuc3dlclwiXG4gICAgaWYgKGFuc3dlciA9PT0gbnVsbCB8fCBhbnN3ZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGlmICh0eXBlb2YgYW5zd2VyID09PSAnc3RyaW5nJyAmJiBhbnN3ZXIgPT09ICcnKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYW5zd2VyKSAmJiBhbnN3ZXIubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBoZWxwZXJzIHRvIG5vcm1hbGl6ZSB2YWx1ZXMgdG8gYXJyYXlzIG9mIGxvd2VyLWNhc2Ugc3RyaW5ncyAoZm9yIHN0cmluZyBvcHMpXG4gICAgY29uc3QgdG9TdHIgPSAodjogYW55KSA9PlxuICAgICAgdiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgZW5zdXJlQXJyYXkgPSAodjogYW55KTogc3RyaW5nW10gPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHJldHVybiB2Lm1hcCgoeCkgPT4gdG9TdHIoeCkpO1xuICAgICAgLy8gaWYgY29tbWEtc2VwYXJhdGVkIHN0cmluZyA9PiBzcGxpdCwgZWxzZSBzaW5nbGUgZWxlbWVudCBhcnJheVxuICAgICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LmluZGV4T2YoJywnKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHZcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5tYXAoKHgpID0+IHgudHJpbSgpKVxuICAgICAgICAgIC5tYXAoKHgpID0+IHRvU3RyKHgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbdG9TdHIodildO1xuICAgIH07XG5cbiAgICBjb25zdCBhbnNBcnIgPSBlbnN1cmVBcnJheShhbnN3ZXIpO1xuICAgIGNvbnN0IHZhbEFyciA9IGVuc3VyZUFycmF5KHZhbHVlKTtcblxuICAgIC8vIG51bWVyaWMgY29tcGFyaXNvbnM6IG9ubHkgd2hlbiBib3RoIHNpZGVzIGFyZSBzY2FsYXJzIChub24tYXJyYXkpIGFuZCBudW1lcmljXG4gICAgY29uc3QgaXNOdW1lcmljU2NhbGFyID0gKHg6IGFueSkgPT5cbiAgICAgICFBcnJheS5pc0FycmF5KHgpICYmIHggIT09IG51bGwgJiYgeCAhPT0gdW5kZWZpbmVkICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHgpKTtcblxuICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgJzwnOlxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKGFuc3dlcikgPCBOdW1iZXIodmFsdWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlICc+JzpcbiAgICAgICAgaWYgKGlzTnVtZXJpY1NjYWxhcihhbnN3ZXIpICYmIGlzTnVtZXJpY1NjYWxhcih2YWx1ZSkpXG4gICAgICAgICAgcmV0dXJuIE51bWJlcihhbnN3ZXIpID4gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnPD0nOlxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKGFuc3dlcikgPD0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnPj0nOlxuICAgICAgICBpZiAoaXNOdW1lcmljU2NhbGFyKGFuc3dlcikgJiYgaXNOdW1lcmljU2NhbGFyKHZhbHVlKSlcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKGFuc3dlcikgPj0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyBlcXVhbGl0eTogdHJ1ZSBpZiBhbnkgYW5zd2VyIGVsZW1lbnQgZXF1YWxzIGFueSB2YWx1ZSBlbGVtZW50XG4gICAgICBjYXNlICc9JzpcbiAgICAgICAgcmV0dXJuIGFuc0Fyci5zb21lKChhKSA9PiB2YWxBcnIuc29tZSgodikgPT4gYSA9PT0gdikpO1xuXG4gICAgICBjYXNlICchPSc6XG4gICAgICAgIHJldHVybiAhYW5zQXJyLnNvbWUoKGEpID0+IHZhbEFyci5zb21lKCh2KSA9PiBhID09PSB2KSk7XG5cbiAgICAgIC8vIExJS0UgLyBOT1QgTElLRTogY2hlY2sgc3Vic3RyaW5nIG1hdGNoIGFueXdoZXJlIGluIGFueSBhbnN3ZXIgZWxlbWVudFxuICAgICAgY2FzZSAnTElLRSc6XG4gICAgICAgIHJldHVybiBhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLnNvbWUoKHYpID0+IGEuaW5jbHVkZXModikpKTtcbiAgICAgIGNhc2UgJ05PVCBMSUtFJzpcbiAgICAgICAgcmV0dXJuICFhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLnNvbWUoKHYpID0+IGEuaW5jbHVkZXModikpKTtcblxuICAgICAgY2FzZSAnQkVHSU4gV0lUSCc6XG4gICAgICAgIHJldHVybiBhbnNBcnIuc29tZSgoYSkgPT4gdmFsQXJyLnNvbWUoKHYpID0+IGEuc3RhcnRzV2l0aCh2KSkpO1xuICAgICAgY2FzZSAnRU5EIFdJVEgnOlxuICAgICAgICByZXR1cm4gYW5zQXJyLnNvbWUoKGEpID0+IHZhbEFyci5zb21lKCh2KSA9PiBhLmVuZHNXaXRoKHYpKSk7XG5cbiAgICAgIC8vIElOIC8gTk9UIElOOiB0cnVlIGlmIGFueSBhbnN3ZXIgZWxlbWVudCBleGlzdHMgaW4gdmFsdWUgbGlzdFxuICAgICAgY2FzZSAnSU4nOlxuICAgICAgICByZXR1cm4gYW5zQXJyLnNvbWUoKGEpID0+IHZhbEFyci5pbmNsdWRlcyhhKSk7XG4gICAgICBjYXNlICdOT1QgSU4nOlxuICAgICAgICByZXR1cm4gIWFuc0Fyci5zb21lKChhKSA9PiB2YWxBcnIuaW5jbHVkZXMoYSkpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYWRkR3JpZHNGcm9tU3ViZm9ybShzdWJmb3JtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXN1YmZvcm0gfHwgIUFycmF5LmlzQXJyYXkoc3ViZm9ybS5yb3dzKSkgcmV0dXJuO1xuXG4gICAgZm9yIChjb25zdCByb3cgb2Ygc3ViZm9ybS5yb3dzKSB7XG4gICAgICBpZiAoIXJvdy5ncmlkIHx8ICFBcnJheS5pc0FycmF5KHJvdy5ncmlkKSkgY29udGludWU7XG5cbiAgICAgIGZvciAoY29uc3QgZ3JpZCBvZiByb3cuZ3JpZCkge1xuICAgICAgICAvLyAx77iP4oOjIEFkZCB0aGlzIGdyaWQgaXRzZWxmIGlmIGl0IGhhcyBhbiBhY3RpdmUgd2hlbkNsYXVzZVxuICAgICAgICB0aGlzLmFkZEdyaWQoZ3JpZCk7XG5cbiAgICAgICAgLy8gMu+4j+KDoyBUaGVuLCByZWN1cnNpdmVseSBwcm9jZXNzIG5lc3RlZCBjaGlsZExvZ2ljcyBpbnNpZGUgaXRzIGVsZW1lbnRcbiAgICAgICAgaWYgKGdyaWQuZWxlbWVudD8uY2hpbGRMb2dpY3M/Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0NoaWxkTG9naWNzKGdyaWQuZWxlbWVudC5jaGlsZExvZ2ljcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgcHJvY2VzcyBjaGlsZExvZ2ljcyBzdHJ1Y3R1cmVcbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc0NoaWxkTG9naWNzKGNoaWxkTG9naWNzOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZExvZ2ljcykpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgbG9naWMgb2YgY2hpbGRMb2dpY3MpIHtcbiAgICAgIC8vIDHvuI/ig6MgRWFjaCBsb2dpYyBtYXkgaGF2ZSBpdHMgb3duIHJvd3MgKHNpbWlsYXIgdG8gc3ViZm9ybSByb3dzKVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9naWMucm93cykpIHtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgbG9naWMucm93cykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvdy5ncmlkKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBncmlkIG9mIHJvdy5ncmlkKSB7XG4gICAgICAgICAgICAgIC8vIENoZWNrIHdoZW5DbGF1c2UgZm9yIHRoaXMgbmVzdGVkIGdyaWRcbiAgICAgICAgICAgICAgdGhpcy5hZGRHcmlkKGdyaWQpO1xuXG4gICAgICAgICAgICAgIC8vIDLvuI/ig6MgUmVjdXJzZSBhZ2FpbiBpZiB0aGlzIG5lc3RlZCBxdWVzdGlvbiBhbHNvIGhhcyBpdHMgb3duIGNoaWxkTG9naWNzXG4gICAgICAgICAgICAgIGlmIChncmlkLmVsZW1lbnQ/LmNoaWxkTG9naWNzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NDaGlsZExvZ2ljcyhncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3MpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDPvuI/ig6MgQSBsb2dpYyBpdHNlbGYgbWlnaHQgZGlyZWN0bHkgY29udGFpbiBuZXN0ZWQgbG9naWNzXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShsb2dpYy5jaGlsZExvZ2ljcykpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRMb2dpY3MobG9naWMuY2hpbGRMb2dpY3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gQUxMIGVsZW1lbnRzIHdpdGggYW4gYWN0aXZlIHdoZW5DbGF1c2UgaW5zaWRlIGEgc3ViZm9ybSxcbiAgICogaW5jbHVkaW5nIG5lc3RlZCBjaGlsZExvZ2ljcyAocmVjdXJzaXZlKVxuICAgKi9cbiAgZ2V0V2hlbkNsYXVzZUVsZW1lbnRzKHN1YmZvcm06IGFueSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBpZiAoIXN1YmZvcm0gfHwgIUFycmF5LmlzQXJyYXkoc3ViZm9ybS5yb3dzKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBzdWJmb3JtLnJvd3MpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb3cuZ3JpZCkpIGNvbnRpbnVlO1xuXG4gICAgICBmb3IgKGNvbnN0IGdyaWQgb2Ygcm93LmdyaWQpIHtcbiAgICAgICAgLy8gMe+4j+KDoyBBZGQgdGhpcyBncmlkIGlmIGl0IGhhcyBhbiBhY3RpdmUgd2hlbkNsYXVzZVxuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZVdoZW5DbGF1c2UoZ3JpZCkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChncmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDLvuI/ig6MgUHJvY2VzcyBuZXN0ZWQgY2hpbGRMb2dpY3MgaW5zaWRlIHRoaXMgZWxlbWVudFxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShncmlkLmVsZW1lbnQ/LmNoaWxkTG9naWNzKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgLi4udGhpcy5nZXRFbGVtZW50c0Zyb21DaGlsZExvZ2ljcyhncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZ2F0aGVyIGdyaWRzIHdpdGggYWN0aXZlIHdoZW5DbGF1c2UgaW5zaWRlIGNoaWxkTG9naWNzXG4gICAqL1xuICBwcml2YXRlIGdldEVsZW1lbnRzRnJvbUNoaWxkTG9naWNzKGNoaWxkTG9naWNzOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBmb3VuZDogYW55W10gPSBbXTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZExvZ2ljcykpIHJldHVybiBmb3VuZDtcblxuICAgIGZvciAoY29uc3QgbG9naWMgb2YgY2hpbGRMb2dpY3MpIHtcbiAgICAgIC8vIEVhY2ggbG9naWMgY2FuIGhhdmUgcm93c1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9naWMucm93cykpIHtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgbG9naWMucm93cykge1xuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb3cuZ3JpZCkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBncmlkIG9mIHJvdy5ncmlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZVdoZW5DbGF1c2UoZ3JpZCkpIHtcbiAgICAgICAgICAgICAgZm91bmQucHVzaChncmlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVjdXJzZSBkZWVwZXIgaWYgdGhpcyBncmlkIGhhcyBuZXN0ZWQgY2hpbGRMb2dpY3NcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGdyaWQuZWxlbWVudD8uY2hpbGRMb2dpY3MpKSB7XG4gICAgICAgICAgICAgIGZvdW5kLnB1c2goXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRFbGVtZW50c0Zyb21DaGlsZExvZ2ljcyhncmlkLmVsZW1lbnQuY2hpbGRMb2dpY3MpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIExvZ2ljIGl0c2VsZiBtYXkgaGF2ZSBuZXN0ZWQgY2hpbGRMb2dpY3NcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvZ2ljLmNoaWxkTG9naWNzKSkge1xuICAgICAgICBmb3VuZC5wdXNoKC4uLnRoaXMuZ2V0RWxlbWVudHNGcm9tQ2hpbGRMb2dpY3MobG9naWMuY2hpbGRMb2dpY3MpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBjaGVja0VsZW1lbnRWaXNpYmlsaXR5KGlkOiBzdHJpbmcsIHN1Ym1pc3Npb246IFN1Ym1pc3Npb24pOiBib29sZWFuIHtcbiAgICBpZiAoIWlkIHx8ICFzdWJtaXNzaW9uIHx8ICFBcnJheS5pc0FycmF5KHN1Ym1pc3Npb24uYW5zd2VycykpIHtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBkZWZhdWx0IHZpc2libGUgaWYgaW52YWxpZCBpbnB1dFxuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZWRBbnN3ZXIgPSBzdWJtaXNzaW9uLmFuc3dlcnMuZmluZChcbiAgICAgIChhbnMpID0+IGFucy5xdWVzdGlvbklkID09PSBpZFxuICAgICk7XG5cbiAgICAvLyBSZXR1cm4gdGhlICdzaG93JyBmbGFnIGlmIGZvdW5kLCBlbHNlIGRlZmF1bHQgdG8gdHJ1ZVxuICAgIHJldHVybiBtYXRjaGVkQW5zd2VyID8gbWF0Y2hlZEFuc3dlci5zaG93ID8/IHRydWUgOiB0cnVlO1xuICB9XG5cbiAgZXZhbHVhdGVTdWJmb3JtV2hlbkNsYXVzZXMoXG4gICAgY2hhbmdlZEFuc3dlcjogYW55LFxuICAgIHN1Ym1pc3Npb246IFN1Ym1pc3Npb24sXG4gICAgY2hhbmdlZFF1ZXN0aW9uSWQ6IHN0cmluZyxcbiAgICBlbGVtZW50c1dpdGhXaGVuQ2xhdXNlOiBhbnlcbiAgKSB7XG4gICAgaWYgKCFlbGVtZW50c1dpdGhXaGVuQ2xhdXNlLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZm9yIChjb25zdCBncmlkIG9mIGVsZW1lbnRzV2l0aFdoZW5DbGF1c2UpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IGdyaWQuZWxlbWVudC5pZDtcbiAgICAgIGNvbnN0IHdoZW4gPSBncmlkLndoZW5DbGF1c2U7XG4gICAgICBjb25zdCBjb25kaXRpb25zID0gd2hlbi53aGVuQ2xhdXNlQ29uZGl0aW9uO1xuXG4gICAgICBpZiAoIWNvbmRpdGlvbnM/Lmxlbmd0aCkgY29udGludWU7XG5cbiAgICAgIGxldCBvdmVyYWxsUmVzdWx0ID0gdHJ1ZTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25kaXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNsYXVzZSA9IGNvbmRpdGlvbnNbaV07XG5cbiAgICAgICAgY29uc3QgbG9naWMgPSAoY2xhdXNlLmxvZ2ljIHx8IChpID09PSAwID8gJ0FORCcgOiAnQU5EJykpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGFuc3dlciB0byB1c2UgZm9yIHRoaXMgY29uZGl0aW9uXG4gICAgICAgIGxldCBhbnN3ZXJUb0NoZWNrOiBhbnk7XG5cbiAgICAgICAgaWYgKGNsYXVzZS5xdWVzdGlvbmlkID09PSBjaGFuZ2VkUXVlc3Rpb25JZCkge1xuICAgICAgICAgIC8vIFVzZSB1cGRhdGVkIGFuc3dlciBmb3IgdGhlIGNoYW5nZWQgcXVlc3Rpb25cbiAgICAgICAgICBhbnN3ZXJUb0NoZWNrID0gY2hhbmdlZEFuc3dlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBGZXRjaCBleGlzdGluZyB2YWx1ZSBmcm9tIHN1Ym1pc3Npb24gZm9yIG90aGVyIHF1ZXN0aW9uc1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gc3VibWlzc2lvbi5hbnN3ZXJzLmZpbmQoXG4gICAgICAgICAgICAoYSkgPT4gYS5xdWVzdGlvbklkID09PSBjbGF1c2UucXVlc3Rpb25pZFxuICAgICAgICAgICk7XG4gICAgICAgICAgYW5zd2VyVG9DaGVjayA9IGV4aXN0aW5nPy5hbnN3ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKFxuICAgICAgICAgIGFuc3dlclRvQ2hlY2ssXG4gICAgICAgICAgY2xhdXNlLmNvbmRpdGlvbixcbiAgICAgICAgICBjbGF1c2UudmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBcHBseSBBTkQvT1IgbG9naWNcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICBvdmVyYWxsUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG92ZXJhbGxSZXN1bHQgPVxuICAgICAgICAgICAgbG9naWMgPT09ICdBTkQnID8gb3ZlcmFsbFJlc3VsdCAmJiByZXN1bHQgOiBvdmVyYWxsUmVzdWx0IHx8IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBVcGRhdGUgc2hvdyBmbGFnIGZvciB0aGUgZWxlbWVudCBjb250cm9sbGVkIGJ5IHRoaXMgd2hlbkNsYXVzZVxuICAgICAgY29uc3QgbWF0Y2hlZEFuc3dlciA9IHN1Ym1pc3Npb24uYW5zd2Vycy5maW5kKFxuICAgICAgICAoYW5zKSA9PiBhbnMucXVlc3Rpb25JZCA9PT0gZWxlbWVudElkXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhY3Rpb25zOiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkod2hlbj8ud2hlbkNsYXVzZUFjdGlvbnMpXG4gICAgPyB3aGVuLndoZW5DbGF1c2VBY3Rpb25zLm1hcChTdHJpbmcpXG4gICAgOiBbXTtcblxuICAgICAgLy8gY2hvb3NlIHRoZSBkZWNpc2l2ZSBhY3Rpb24gKHVzZSBsYXN0IGlmIG11bHRpcGxlKVxuICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9ucy5sZW5ndGggPiAwID8gYWN0aW9uc1thY3Rpb25zLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuXG5cbiAgICAgIGlmIChtYXRjaGVkQW5zd2VyKSB7XG4gICAgICAgIGlmIChvdmVyYWxsUmVzdWx0KSB7XG4gICAgICAgICAgLy8gQ29uZGl0aW9uKHMpIHNhdGlzZmllZCAtPiBwZXJmb3JtIHRoZSBhY3Rpb25cbiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnU0hPVyc6XG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSElERSc6XG4gICAgICAgICAgICAgIG1hdGNoZWRBbnN3ZXIuc2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ01BUktfQVNfUkVRVUlSRUQnOlxuICAgICAgICAgICAgICBtYXRjaGVkQW5zd2VyLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdNQVJLX0FTX09QVElPTkFMJzpcbiAgICAgICAgICAgICAgbWF0Y2hlZEFuc3dlci5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIC8vIG5vIHNob3cvaGlkZSBhY3Rpb24g4oCUIGtlZXAgY3VycmVudCBiZWhhdmlvciAoeW91IGNhbiBjaG9vc2UgZGVmYXVsdCBoZXJlKVxuICAgICAgICAgICAgICAvLyBGb3Igc2FmZXR5LCBpZiBubyBleHBsaWNpdCBhY3Rpb24sIHdlJ2xsIGxlYXZlIGdyaWQuc2hvdyB1bmNoYW5nZWQuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIENvbmRpdGlvbihzKSBub3Qgc2F0aXNmaWVkIC0+IHJldmVydCB0aGUgYWN0aW9uJ3MgZWZmZWN0XG4gICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ1NIT1cnOlxuICAgICAgICAgICAgICAvLyBjb25kaXRpb24gbm8gbG9uZ2VyIHRydWUgPT4gaGlkZSAocmV2ZXJ0KVxuICAgICAgICAgICAgICBtYXRjaGVkQW5zd2VyLnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdISURFJzpcbiAgICAgICAgICAgICAgLy8gY29uZGl0aW9uIG5vIGxvbmdlciB0cnVlID0+IHNob3cgKHJldmVydClcbiAgICAgICAgICAgICAgbWF0Y2hlZEFuc3dlci5zaG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdNQVJLX0FTX1JFUVVJUkVEJzpcbiAgICAgICAgICAgICAgbWF0Y2hlZEFuc3dlci5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ01BUktfQVNfT1BUSU9OQUwnOlxuICAgICAgICAgICAgICBtYXRjaGVkQW5zd2VyLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIHJldmVydFxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cblxuICAgICAgLy8gaWYgKG1hdGNoZWRBbnN3ZXIpIHtcbiAgICAgIC8vICAgbWF0Y2hlZEFuc3dlci5zaG93ID0gb3ZlcmFsbFJlc3VsdDtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICByZXNldFNlcnZpY2UoKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgdHJhY2tlZCBncmlkc1xuICAgIHRoaXMuYWN0aXZlV2hlbkNsYXVzZUdyaWRzID0gW107XG5cbiAgICAvLyBDbGVhciBzdG9yZWQgcXVlc3Rpb24g4oaSIGFuc3dlciBtYXBcbiAgICB0aGlzLnF1ZXN0aW9uQW5zd2VyTWFwID0ge307XG5cbiAgICAvLyBSZXNldCB2aXNpYmlsaXR5IGxvZ2ljIHRvIGluaXRpYWwgc3RhdGVcbiAgfVxuXG4gIGdldEFjdGl2ZVdoZW5DbGF1c2VHcmlkcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlV2hlbkNsYXVzZUdyaWRzO1xuICB9XG59XG4iXX0=
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
94
94
|
]
|
|
95
95
|
}]
|
|
96
96
|
}] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFxQ3ZELE1BQU0sT0FBTyxZQUFZOytHQUFaLFlBQVk7Z0hBQVosWUFBWSxpQkFqQ3JCLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQix3QkFBd0I7WUFDeEIsd0JBQXdCO1lBQ3hCLHNCQUFzQjtZQUN0Qiw4QkFBOEI7WUFDOUIsb0JBQW9CO1lBQ3BCLG9CQUFvQixhQUdwQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixjQUFjO1lBQ2QsYUFBYTtZQUNiLGFBQWE7WUFDYixXQUFXO1lBQ1gsV0FBVztZQUNYLFNBQVMsYUFHVCx1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsc0JBQXNCO1lBQ3RCLDhCQUE4QjtZQUM5QixvQkFBb0I7WUFDcEIsb0JBQW9CO2dIQUdYLFlBQVksWUFyQnJCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLFdBQVc7WUFDWCxXQUFXO1lBQ1gsU0FBUzs7NEZBYUEsWUFBWTtrQkFuQ3hCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxTQUFTO3FCQUNWO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlY3Vyc2l2ZUxvZ2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVlc3Rpb24vcmVjdXJzaXZlLWxvZ2ljL3JlY3Vyc2l2ZS1sb2dpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9xdWVzdGlvbi9xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ViRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3F1ZXN0aW9uL3N1Yi1mb3JtL3N1Yi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRm9ybUZpZWxkc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGRzL2Zvcm0tZmllbGRzLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNdWx0aXBsZVN1YmZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9tdWx0aXBsZS1zdWJmb3JtL211bHRpcGxlLXN1YmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3N1Yi1mb3JtL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uL3F1ZXN0aW9uL3F1ZXN0aW9uLWdyb3VwL3F1ZXN0aW9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmxpbmVNdWx0aXBsZVN1YmZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9pbmxpbmUtbXVsdGlwbGUtc3ViZm9ybS9pbmxpbmUtbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlmaWVsZHNDb21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9tdWx0aWZpZWxkcy9tdWx0aWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZFN1YmZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9xdWVzdGlvbi9jYXJkLXN1YmZvcm0vY2FyZC1zdWJmb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVjdXJzaXZlTG9naWNDb21wb25lbnQsXG4gICAgUXVlc3Rpb25Db21wb25lbnQsXG4gICAgU3ViRm9ybUNvbXBvbmVudCxcbiAgICBGb3JtRWxlbWVudHNDb21wb25lbnQsXG4gICAgTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50LCBcbiAgICBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQsIFxuICAgIFF1ZXN0aW9uR3JvdXBDb21wb25lbnQsXG4gICAgSW5saW5lTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50LFxuICAgIE11bHRpZmllbGRzQ29tcG9uZW50LFxuICAgIENhcmRTdWJmb3JtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybUZpZWxkc01vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFF1aWxsTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nYk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVjdXJzaXZlTG9naWNDb21wb25lbnQsXG4gICAgUXVlc3Rpb25Db21wb25lbnQsXG4gICAgU3ViRm9ybUNvbXBvbmVudCxcbiAgICBGb3JtRWxlbWVudHNDb21wb25lbnQsXG4gICAgUXVlc3Rpb25Hcm91cENvbXBvbmVudCxcbiAgICBJbmxpbmVNdWx0aXBsZVN1YmZvcm1Db21wb25lbnQsXG4gICAgTXVsdGlmaWVsZHNDb21wb25lbnQsXG4gICAgQ2FyZFN1YmZvcm1Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -121,13 +121,13 @@ export class SubmissionModalComponent {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.ValidationService }, { token: i2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmissionModalComponent, selector: "lib-submission-modal", ngImport: i0, template: "<div class=\"mb-5\">\r\n <div class=\"modalHeader mb-4\">\r\n <div class=\"title-div\">\r\n <p class=\"title\">{{subForm.title}}</p>\r\n </div>\r\n <div class=\"header-btn\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\r\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div class=\"px-3\" *ngFor=\"let row of subForm.rows\">\r\n <ng-container *ngFor=\"let formElement of row.grid\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n [rowId]=\"'0'\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-currency-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CURRENCY'\"\r\n [question]=\"formElement.element\"\r\n ></lib-currency-fields>\r\n <lib-hidden-field\r\n *ngIf=\"formElement.element.formElement.elementType === 'HIDDEN_FIELD'\"\r\n [question]=\"formElement.element\"\r\n ></lib-hidden-field>\r\n <lib-iframe-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'IFRAME_WIDGET'\"\r\n [question]=\"formElement.element\"\r\n ></lib-iframe-fields>\r\n <lib-aggregate-function\r\n *ngIf=\"formElement.element.formElement.elementType === 'AGGREGATE_FUNCTION'\"\r\n [question]=\"formElement.element\"\r\n [rowId]=\"'0'\"\r\n ></lib-aggregate-function>\r\n <ng-container *ngIf=\"formElement?.element?.childLogics\">\r\n\r\n <ng-container *ngIf=\"componentToLoad\">\r\n\r\n <ng-container *ngComponentOutlet=\"componentToLoad;\r\n inputs: { grid: formElement?.element?.childLogics,\r\n answer: formElement?.element?.answer,\r\n state: 'child' }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"okBtn me-4 ms-4\">\r\n <button\r\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\r\n type=\"button\"\r\n (click)=\"saveSubmission()\">\r\n Ok\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".modalHeader{width:100%;display:flex;flex-direction:row}.modalHeader .title-div{width:90%;display:flex;justify-content:center;margin-top:5%}.modalHeader .title-div .title{height:24px;font-style:normal;font-weight:600;font-size:24px;font-weight:550;line-height:24px;text-align:center;color:#1d252d;letter-spacing:.5px}.modalHeader .header-btn{width:10%;margin-top:4%;display:flex;justify-content:center}.modalHeader .header-btn svg{font-size:20px;cursor:pointer}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.okBtn{display:flex;justify-content:flex-end;margin-left:auto;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i5.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i6.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i7.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange", "inlineDeleteFiles"] }, { kind: "component", type: i8.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i9.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i10.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i11.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i12.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i13.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i14.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question", "inLine", "inSubForm", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i15.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "inLine", "acceptedLanguage", "rowId", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i16.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i17.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i18.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i19.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i20.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i21.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "acceptedLanguage", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i22.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i23.SectionFieldsComponent, selector: "lib-section-fields", inputs: ["section"] }, { kind: "component", type: i24.AggregateFunctionComponent, selector: "lib-aggregate-function", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i25.CurrencyFieldsComponent, selector: "lib-currency-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit", "rowId"], outputs: ["answerChange"] }, { kind: "component", type: i26.HiddenFieldComponent, selector: "lib-hidden-field", inputs: ["question", "inLine", "inCard", "submissionIndex"], outputs: ["answerChange"] }, { kind: "component", type: i27.IframeFieldsComponent, selector: "lib-iframe-fields", inputs: ["question"] }] }); }
|
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmissionModalComponent, selector: "lib-submission-modal", ngImport: i0, template: "<div class=\"mb-5\">\n <div class=\"modalHeader mb-4\">\n <div class=\"title-div\">\n <p class=\"title\">{{subForm.title}}</p>\n </div>\n <div class=\"header-btn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n\n <div class=\"px-3\" *ngFor=\"let row of subForm.rows\">\n <ng-container *ngFor=\"let formElement of row.grid\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n [rowId]=\"'0'\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-currency-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CURRENCY'\"\n [question]=\"formElement.element\"\n ></lib-currency-fields>\n <lib-hidden-field\n *ngIf=\"formElement.element.formElement.elementType === 'HIDDEN_FIELD'\"\n [question]=\"formElement.element\"\n ></lib-hidden-field>\n <lib-iframe-fields\n *ngIf=\"formElement.element.formElement.elementType === 'IFRAME_WIDGET'\"\n [question]=\"formElement.element\"\n ></lib-iframe-fields>\n <lib-aggregate-function\n *ngIf=\"formElement.element.formElement.elementType === 'AGGREGATE_FUNCTION'\"\n [question]=\"formElement.element\"\n [rowId]=\"'0'\"\n ></lib-aggregate-function>\n <ng-container *ngIf=\"formElement?.element?.childLogics\">\n\n <ng-container *ngIf=\"componentToLoad\">\n\n <ng-container *ngComponentOutlet=\"componentToLoad;\n inputs: { grid: formElement?.element?.childLogics,\n answer: formElement?.element?.answer,\n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </ng-container>\n\n </div>\n\n <div class=\"okBtn me-4 ms-4\">\n <button\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"saveSubmission()\">\n Ok\n </button>\n </div>\n</div>\n", styles: [".modalHeader{width:100%;display:flex;flex-direction:row}.modalHeader .title-div{width:90%;display:flex;justify-content:center;margin-top:5%}.modalHeader .title-div .title{height:24px;font-style:normal;font-weight:600;font-size:24px;font-weight:550;line-height:24px;text-align:center;color:#1d252d;letter-spacing:.5px}.modalHeader .header-btn{width:10%;margin-top:4%;display:flex;justify-content:center}.modalHeader .header-btn svg{font-size:20px;cursor:pointer}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.okBtn{display:flex;justify-content:flex-end;margin-left:auto;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i5.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i6.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i7.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange", "inlineDeleteFiles"] }, { kind: "component", type: i8.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question", "inLine"], outputs: ["answerChange"] }, { kind: "component", type: i9.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i10.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i11.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i12.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i13.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i14.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question", "inLine", "inSubForm", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i15.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "inLine", "acceptedLanguage", "rowId", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i16.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i17.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i18.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question", "inLine"] }, { kind: "component", type: i19.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i20.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i21.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "acceptedLanguage", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i22.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i23.SectionFieldsComponent, selector: "lib-section-fields", inputs: ["section"] }, { kind: "component", type: i24.AggregateFunctionComponent, selector: "lib-aggregate-function", inputs: ["question", "inLine", "inCard", "submissionIndex", "rowId", "disableEdit"], outputs: ["answerChange"] }, { kind: "component", type: i25.CurrencyFieldsComponent, selector: "lib-currency-fields", inputs: ["question", "inLine", "inCard", "submissionIndex", "disableEdit", "rowId"], outputs: ["answerChange"] }, { kind: "component", type: i26.HiddenFieldComponent, selector: "lib-hidden-field", inputs: ["question", "inLine", "inCard", "submissionIndex"], outputs: ["answerChange"] }, { kind: "component", type: i27.IframeFieldsComponent, selector: "lib-iframe-fields", inputs: ["question"] }] }); }
|
|
125
125
|
}
|
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionModalComponent, decorators: [{
|
|
127
127
|
type: Component,
|
|
128
|
-
args: [{ selector: 'lib-submission-modal', template: "<div class=\"mb-5\">\
|
|
128
|
+
args: [{ selector: 'lib-submission-modal', template: "<div class=\"mb-5\">\n <div class=\"modalHeader mb-4\">\n <div class=\"title-div\">\n <p class=\"title\">{{subForm.title}}</p>\n </div>\n <div class=\"header-btn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n\n <div class=\"px-3\" *ngFor=\"let row of subForm.rows\">\n <ng-container *ngFor=\"let formElement of row.grid\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n [rowId]=\"'0'\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-currency-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CURRENCY'\"\n [question]=\"formElement.element\"\n ></lib-currency-fields>\n <lib-hidden-field\n *ngIf=\"formElement.element.formElement.elementType === 'HIDDEN_FIELD'\"\n [question]=\"formElement.element\"\n ></lib-hidden-field>\n <lib-iframe-fields\n *ngIf=\"formElement.element.formElement.elementType === 'IFRAME_WIDGET'\"\n [question]=\"formElement.element\"\n ></lib-iframe-fields>\n <lib-aggregate-function\n *ngIf=\"formElement.element.formElement.elementType === 'AGGREGATE_FUNCTION'\"\n [question]=\"formElement.element\"\n [rowId]=\"'0'\"\n ></lib-aggregate-function>\n <ng-container *ngIf=\"formElement?.element?.childLogics\">\n\n <ng-container *ngIf=\"componentToLoad\">\n\n <ng-container *ngComponentOutlet=\"componentToLoad;\n inputs: { grid: formElement?.element?.childLogics,\n answer: formElement?.element?.answer,\n state: 'child' }\"></ng-container>\n </ng-container>\n </ng-container>\n\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </ng-container>\n\n </div>\n\n <div class=\"okBtn me-4 ms-4\">\n <button\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"saveSubmission()\">\n Ok\n </button>\n </div>\n</div>\n", styles: [".modalHeader{width:100%;display:flex;flex-direction:row}.modalHeader .title-div{width:90%;display:flex;justify-content:center;margin-top:5%}.modalHeader .title-div .title{height:24px;font-style:normal;font-weight:600;font-size:24px;font-weight:550;line-height:24px;text-align:center;color:#1d252d;letter-spacing:.5px}.modalHeader .header-btn{width:10%;margin-top:4%;display:flex;justify-content:center}.modalHeader .header-btn svg{font-size:20px;cursor:pointer}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.okBtn{display:flex;justify-content:flex-end;margin-left:auto;margin-bottom:5px}\n"] }]
|
|
129
129
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
130
130
|
type: Inject,
|
|
131
131
|
args: [MAT_DIALOG_DATA]
|
|
132
132
|
}] }, { type: i1.ValidationService }, { type: i2.MatDialogRef }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRekUsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNrQyxJQUFTLEVBQ2pDLGlCQUFvQyxFQUNwQyxTQUFpRDtRQUZ6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBd0M7UUFWM0QscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRzlCLG9CQUFlLEdBQXVFLEVBQUUsQ0FBQztJQVF0RixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENB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IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXN1Ym1pc3Npb24tbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJtaXNzaW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdWJtaXNzaW9uLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQge1xyXG4gIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIGdyaWQ6IGFueTtcclxuICBzdWJGb3JtOiBhbnk7XHJcbiAgY2hpbGRMb2dpY0NhY2hlOiB7IFtrZXk6IHN0cmluZ106IHsgY29tcG9uZW50OiBQcm9taXNlPGFueT4sIGluamVjdG9yOiBJbmplY3RvciB9IH0gPSB7fTtcclxuICBjb21wb25lbnRUb0xvYWQ6IGFueTtcclxuICBpbmplY3RvciE6IEluamVjdG9yO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudD5cclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWJGb3JtID0gdGhpcy5kYXRhLnN1YkZvcm07XHJcbiAgICB0aGlzLmFjY2VwdGVkTGFuZ3VhZ2UgPSB0aGlzLmRhdGEuYWNjZXB0ZWRMYW5ndWFnZTtcclxuICAgIHRoaXMubG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRUb0xvYWQgPSBhd2FpdCB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcclxuICAgIHRoaXMuaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKSB7XHJcbiAgICBjb25zdCB7IEZvcm1FbGVtZW50c0NvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCcuLi8uLi9xdWVzdGlvbi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMuY29tcG9uZW50Jyk7XHJcbiAgICByZXR1cm4gRm9ybUVsZW1lbnRzQ29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlSW5qZWN0b3IoKTogSW5qZWN0b3Ige1xyXG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogJ2dyaWQnLCB1c2VWYWx1ZTogdGhpcy5ncmlkPy5lbGVtZW50LmNoaWxkTG9naWNzICB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogJ3N0YXRlJywgdXNlVmFsdWU6ICdjaGlsZCcgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjbG9zZU1vZGFsKCkge1xyXG4gICAgdGhpcy5jbGVhck1vZGFsKCk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVN1Ym1pc3Npb24oKSB7XHJcbiAgICBsZXQgaXNGb3JtVmFsaWQgPSB0cnVlO1xyXG4gICAgY29uc3QgcGFnZUluZGV4ID0gdGhpcy5zdWJGb3JtLnBhZ2VJbmRleCA/PyAwO1xyXG5cclxuICAgIHRoaXMuc3ViRm9ybS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgIHJvdy5ncmlkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmVudGl0eVR5cGUgPT09ICdRVUVTVElPTicpIHtcclxuICAgICAgICAgIGNvbnN0IHEgPSBpdGVtLmVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBoYXNBbnN3ZXIgPVxyXG4gICAgICAgICAgICBxLmFuc3dlciAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgICBxLmFuc3dlciAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICgodHlwZW9mIHEuYW5zd2VyID09PSAnc3RyaW5nJyAmJiBxLmFuc3dlci50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHEuYW5zd2VyKSAmJiBxLmFuc3dlci5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICAgICAgICh0eXBlb2YgcS5hbnN3ZXIgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhxLmFuc3dlcikubGVuZ3RoID4gMCkpO1xyXG4gICAgICAgICAgaWYgKHEucmVxdWlyZWQgJiYgIWhhc0Fuc3dlcikge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnNldEludmFsaWQoXHJcbiAgICAgICAgICAgICAgcS5pZCxcclxuICAgICAgICAgICAgICAnVGhpcyBxdWVzdGlvbiBpcyByZXF1aXJlZCcsXHJcbiAgICAgICAgICAgICAgcGFnZUluZGV4XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlzRm9ybVZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZChxLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMikgSWYgYW55IHJlcXVpcmVkIHF1ZXN0aW9uIGlzIG1pc3NpbmcsIGFib3J0IGNsb3NlIGFuZCBsZXQgdGhlIGNoaWxkIGNvbXBvbmVudHMgcmVuZGVyIGVycm9yc1xyXG4gICAgaWYgKCFpc0Zvcm1WYWxpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMykgQWxsIGdvb2Qg4oaSIGNsb3NlIHRoZSBkaWFsb2dcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc3ViRm9ybSk7XHJcbiAgfVxyXG5cclxuICBjbGVhck1vZGFsKCkge1xyXG4gICAgaWYgKHRoaXMuc3ViRm9ybSAmJiB0aGlzLnN1YkZvcm0ucm93cykge1xyXG4gICAgICB0aGlzLnN1YkZvcm0ucm93cy5mbGF0TWFwKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgaXRlbS5ncmlkLmZvckVhY2goKGdyaWRJdGVtOiBhbnkpID0+IHRoaXMuY2xlYXJGb3JtRWxlbWVudChncmlkSXRlbSkpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIHRoaXMuc3ViRm9ybS5mb3JtRWxlbWVudHMuZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgIHRoaXMuY2xlYXJGb3JtRWxlbWVudChmb3JtRWxlbWVudCk7XHJcbiAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJGb3JtRWxlbWVudChmb3JtRWxlbWVudDogYW55KSB7XHJcbiAgICBpZiAoZm9ybUVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xyXG4gICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9ICcnO1xyXG5cclxuICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJykge1xyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcclxuICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzPy5mb3JFYWNoKChjaGlsZExvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gZmFsc2U7XHJcbiAgICAgICAgICBjaGlsZExvZ2ljPy5mb3JtRWxlbWVudHM/LmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckZvcm1FbGVtZW50KGZvcm1FbGVtZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxIZWFkZXIgbWItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1kaXZcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0aXRsZVwiPnt7c3ViRm9ybS50aXRsZX19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOCA4TDE2IDE2XCIgc3Ryb2tlPVwiIzFEMjUyRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgOEw4IDE2XCIgc3Ryb2tlPVwiIzFEMjUyRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicHgtM1wiICpuZ0Zvcj1cImxldCByb3cgb2Ygc3ViRm9ybS5yb3dzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50IG9mIHJvdy5ncmlkXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50LmVudGl0eVR5cGUgPT09ICdRVUVTVElPTidcIj5cclxuICAgICAgICAgIDxsaWItY2hlY2stYm94LWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdDSEVDS19CT1gnXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgPjwvbGliLWNoZWNrLWJveC1maWVsZHM+XHJcbiAgICAgICAgICA8bGliLWRhdGUtdGltZS1maWVsZHNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnREFURV9USU1FJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi1kYXRlLXRpbWUtZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1kcm9wLWRvd24tZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RST1BfRE9XTidcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+PC9saWItZHJvcC1kb3duLWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItZmlsZS1waWNrZXItZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJ1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+PC9saWItZmlsZS1waWNrZXItZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1sb2NhdGlvbi1maWVsZHNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTE9DQVRJT04nXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgPjwvbGliLWxvY2F0aW9uLWZpZWxkcz5cclxuXHJcbiAgICAgICAgICA8bGliLW1haWwtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0VNQUlMJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLW1haWwtZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1tb2JpbGUtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ01PQklMRSdcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2xpYi1tb2JpbGUtZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1udW1iZXItZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ05VTUJFUidcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgIFtyb3dJZF09XCInMCdcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saWItbnVtYmVyLWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItcGFzc3dvcmQtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1BBU1NXT1JEJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLXBhc3N3b3JkLWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItcmFkaW8tYnV0dG9uLWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSQURJT19CVVRUT04nXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi1yYWRpby1idXR0b24tZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSSUNIX1RFWFRfRURJVE9SJ1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+PC9saWItcmljaC10ZXh0LWVkaXRvci1maWVsZHM+XHJcbiAgICAgICAgICA8bGliLXNlbGVjdGlvbi1tYXRyaXgtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1NFTEVDVElPTl9NQVRSSVgnXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgW2FjY2VwdGVkTGFuZ3VhZ2VdID0gXCJhY2NlcHRlZExhbmd1YWdlXCJcclxuICAgICAgICAgID48L2xpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItc2lnbmF0dXJlLWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTSUdOQVRVUkUnXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgPjwvbGliLXNpZ25hdHVyZS1maWVsZHM+XHJcbiAgICAgICAgICA8bGliLXNsaWRlci1maWVsZHNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0xJREVSJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi1zbGlkZXItZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09XHJcbiAgICAgICAgICAgICAgJ1RFUk1TX0FORF9DT05ESVRJT04nXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItdGV4dC1hcmVhLWZpZWxkc1xyXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdURVhUX0FSRUEnXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgPjwvbGliLXRleHQtYXJlYS1maWVsZHM+XHJcbiAgICAgICAgICA8bGliLXRleHQtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RFWFRfQk9YJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi10ZXh0LWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItdG9nZ2xlLXN3aXRjaC1maWVsZHNcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVE9HR0xFX1NXSVRDSCdcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV0gPSBcImFjY2VwdGVkTGFuZ3VhZ2VcIlxyXG4gICAgICAgICAgPjwvbGliLXRvZ2dsZS1zd2l0Y2gtZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi11cmwtZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1VSTCdcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+PC9saWItdXJsLWZpZWxkcz5cclxuICAgICAgICAgIDxsaWItY3VycmVuY3ktZmllbGRzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0NVUlJFTkNZJ1wiXHJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgID48L2xpYi1jdXJyZW5jeS1maWVsZHM+XHJcbiAgICAgICAgICA8bGliLWhpZGRlbi1maWVsZFxyXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdISURERU5fRklFTEQnXCJcclxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+PC9saWItaGlkZGVuLWZpZWxkPlxyXG4gICAgICAgICAgICA8bGliLWlmcmFtZS1maWVsZHNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnSUZSQU1FX1dJREdFVCdcIlxyXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi1pZnJhbWUtZmllbGRzPlxyXG4gICAgICAgICAgPGxpYi1hZ2dyZWdhdGUtZnVuY3Rpb25cclxuICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0FHR1JFR0FURV9GVU5DVElPTidcIlxyXG4gICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgW3Jvd0lkXT1cIicwJ1wiXHJcbiAgICAgICAgICA+PC9saWItYWdncmVnYXRlLWZ1bmN0aW9uPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1FbGVtZW50Py5lbGVtZW50Py5jaGlsZExvZ2ljc1wiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbXBvbmVudFRvTG9hZFwiPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudFRvTG9hZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IGdyaWQ6IGZvcm1FbGVtZW50Py5lbGVtZW50Py5jaGlsZExvZ2ljcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlcjogIGZvcm1FbGVtZW50Py5lbGVtZW50Py5hbnN3ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoaWxkJyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudC5lbnRpdHlUeXBlID09PSAnU0VDVElPTidcIj5cclxuICAgICAgICAgIDxsaWItc2VjdGlvbi1maWVsZHNcclxuICAgICAgICAgICAgW3NlY3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICA+PC9saWItc2VjdGlvbi1maWVsZHM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm9rQnRuIG1lLTQgbXMtNFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwic3VibWl0QnRuIG1zLW1kLTMgbWUtbWQtMiByb3VuZGVkLXBpbGxcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2F2ZVN1Ym1pc3Npb24oKVwiPlxyXG4gICAgICAgICAgT2tcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRekUsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNrQyxJQUFTLEVBQ2pDLGlCQUFvQyxFQUNwQyxTQUFpRDtRQUZ6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBd0M7UUFWM0QscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRzlCLG9CQUFlLEdBQXVFLEVBQUUsQ0FBQztJQVF0RixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUI7UUFDckMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUN2RyxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRztnQkFDOUQsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO29CQUNsQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN2QixNQUFNLFNBQVMsR0FDYixDQUFDLENBQUMsTUFBTSxLQUFLLElBQUk7d0JBQ2pCLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUzt3QkFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ3ZELENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOzRCQUNoRCxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRO2dDQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUMvQixDQUFDLENBQUMsRUFBRSxFQUNKLDJCQUEyQixFQUMzQixTQUFTLENBQ1YsQ0FBQzt3QkFDRixXQUFXLEdBQUcsS0FBSyxDQUFDO3FCQUNyQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDM0M7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsaUdBQWlHO1FBQ2pHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTztTQUNSO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ3RFLENBQUM7WUFDRiw0REFBNEQ7WUFDNUQsd0NBQXdDO1lBQ3hDLE1BQU07U0FDUDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUMvQixJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ3pDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVoQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUNuQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQUU7b0JBQ2pFLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2lCQUNqQzthQUNGO1lBRUQsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbkMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQzNELFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUM3QixVQUFVLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRTt3QkFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNyQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOytHQXBIVSx3QkFBd0Isa0JBU3pCLGVBQWU7bUdBVGQsd0JBQXdCLDREQ1RyQyx3dE5BZ0tBOzs0RkR2SmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHNCQUFzQjs7MEJBYTdCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VibWlzc2lvbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJtaXNzaW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQge1xuICBhY2NlcHRlZExhbmd1YWdlOiBzdHJpbmcgPSAnJztcbiAgZ3JpZDogYW55O1xuICBzdWJGb3JtOiBhbnk7XG4gIGNoaWxkTG9naWNDYWNoZTogeyBba2V5OiBzdHJpbmddOiB7IGNvbXBvbmVudDogUHJvbWlzZTxhbnk+LCBpbmplY3RvcjogSW5qZWN0b3IgfSB9ID0ge307XG4gIGNvbXBvbmVudFRvTG9hZDogYW55O1xuICBpbmplY3RvciE6IEluamVjdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U3VibWlzc2lvbk1vZGFsQ29tcG9uZW50PlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJGb3JtID0gdGhpcy5kYXRhLnN1YkZvcm07XG4gICAgdGhpcy5hY2NlcHRlZExhbmd1YWdlID0gdGhpcy5kYXRhLmFjY2VwdGVkTGFuZ3VhZ2U7XG4gICAgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb21wb25lbnRUb0xvYWQgPSBhd2FpdCB0aGlzLmxvYWRGb3JtRWxlbWVudHNDb21wb25lbnQoKTtcbiAgICB0aGlzLmluamVjdG9yID0gdGhpcy5jcmVhdGVJbmplY3RvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRm9ybUVsZW1lbnRzQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IHsgRm9ybUVsZW1lbnRzQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoJy4uLy4uL3F1ZXN0aW9uL2Zvcm0tZWxlbWVudHMvZm9ybS1lbGVtZW50cy5jb21wb25lbnQnKTtcbiAgICByZXR1cm4gRm9ybUVsZW1lbnRzQ29tcG9uZW50O1xuICB9XG5cbiAgY3JlYXRlSW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogJ2dyaWQnLCB1c2VWYWx1ZTogdGhpcy5ncmlkPy5lbGVtZW50LmNoaWxkTG9naWNzICB9LFxuICAgICAgICB7IHByb3ZpZGU6ICdzdGF0ZScsIHVzZVZhbHVlOiAnY2hpbGQnIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5jbGVhck1vZGFsKCk7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIHNhdmVTdWJtaXNzaW9uKCkge1xuICAgIGxldCBpc0Zvcm1WYWxpZCA9IHRydWU7XG4gICAgY29uc3QgcGFnZUluZGV4ID0gdGhpcy5zdWJGb3JtLnBhZ2VJbmRleCA/PyAwO1xuXG4gICAgdGhpcy5zdWJGb3JtLnJvd3MuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcbiAgICAgIHJvdy5ncmlkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nKSB7XG4gICAgICAgICAgY29uc3QgcSA9IGl0ZW0uZWxlbWVudDtcbiAgICAgICAgICBjb25zdCBoYXNBbnN3ZXIgPVxuICAgICAgICAgICAgcS5hbnN3ZXIgIT09IG51bGwgJiZcbiAgICAgICAgICAgIHEuYW5zd2VyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICgodHlwZW9mIHEuYW5zd2VyID09PSAnc3RyaW5nJyAmJiBxLmFuc3dlci50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheShxLmFuc3dlcikgJiYgcS5hbnN3ZXIubGVuZ3RoID4gMCkgfHxcbiAgICAgICAgICAgICAgKHR5cGVvZiBxLmFuc3dlciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhxLmFuc3dlcikubGVuZ3RoID4gMCkpO1xuICAgICAgICAgIGlmIChxLnJlcXVpcmVkICYmICFoYXNBbnN3ZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2V0SW52YWxpZChcbiAgICAgICAgICAgICAgcS5pZCxcbiAgICAgICAgICAgICAgJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQnLFxuICAgICAgICAgICAgICBwYWdlSW5kZXhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpc0Zvcm1WYWxpZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZChxLmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gMikgSWYgYW55IHJlcXVpcmVkIHF1ZXN0aW9uIGlzIG1pc3NpbmcsIGFib3J0IGNsb3NlIGFuZCBsZXQgdGhlIGNoaWxkIGNvbXBvbmVudHMgcmVuZGVyIGVycm9yc1xuICAgIGlmICghaXNGb3JtVmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyAzKSBBbGwgZ29vZCDihpIgY2xvc2UgdGhlIGRpYWxvZ1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc3ViRm9ybSk7XG4gIH1cblxuICBjbGVhck1vZGFsKCkge1xuICAgIGlmICh0aGlzLnN1YkZvcm0gJiYgdGhpcy5zdWJGb3JtLnJvd3MpIHtcbiAgICAgIHRoaXMuc3ViRm9ybS5yb3dzLmZsYXRNYXAoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgaXRlbS5ncmlkLmZvckVhY2goKGdyaWRJdGVtOiBhbnkpID0+IHRoaXMuY2xlYXJGb3JtRWxlbWVudChncmlkSXRlbSkpXG4gICAgICApO1xuICAgICAgLy8gdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cy5mb3JFYWNoKChmb3JtRWxlbWVudDogYW55KSA9PiB7XG4gICAgICAvLyAgIHRoaXMuY2xlYXJGb3JtRWxlbWVudChmb3JtRWxlbWVudCk7XG4gICAgICAvLyB9KTtcbiAgICB9XG4gIH1cblxuICBjbGVhckZvcm1FbGVtZW50KGZvcm1FbGVtZW50OiBhbnkpIHtcbiAgICBpZiAoZm9ybUVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSAnJztcblxuICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xuICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzPy5mb3JFYWNoKChjaGlsZExvZ2ljOiBhbnkpID0+IHtcbiAgICAgICAgICBjaGlsZExvZ2ljLnNob3dMb2dpYyA9IGZhbHNlO1xuICAgICAgICAgIGNoaWxkTG9naWM/LmZvcm1FbGVtZW50cz8uZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGVhckZvcm1FbGVtZW50KGZvcm1FbGVtZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWItNVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbEhlYWRlciBtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1kaXZcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGl0bGVcIj57e3N1YkZvcm0udGl0bGV9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnRuXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDhMMTYgMTZcIiBzdHJva2U9XCIjMUQyNTJEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgOEw4IDE2XCIgc3Ryb2tlPVwiIzFEMjUyRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJweC0zXCIgKm5nRm9yPVwibGV0IHJvdyBvZiBzdWJGb3JtLnJvd3NcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50IG9mIHJvdy5ncmlkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nXCI+XG4gICAgICAgICAgPGxpYi1jaGVjay1ib3gtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdDSEVDS19CT1gnXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItY2hlY2stYm94LWZpZWxkcz5cbiAgICAgICAgICA8bGliLWRhdGUtdGltZS1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RBVEVfVElNRSdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi1kYXRlLXRpbWUtZmllbGRzPlxuICAgICAgICAgIDxsaWItZHJvcC1kb3duLWZpZWxkc1xuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRFJPUF9ET1dOJ1wiXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgPjwvbGliLWRyb3AtZG93bi1maWVsZHM+XG4gICAgICAgICAgPGxpYi1maWxlLXBpY2tlci1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgPjwvbGliLWZpbGUtcGlja2VyLWZpZWxkcz5cbiAgICAgICAgICA8bGliLWxvY2F0aW9uLWZpZWxkc1xuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTE9DQVRJT04nXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItbG9jYXRpb24tZmllbGRzPlxuXG4gICAgICAgICAgPGxpYi1tYWlsLWZpZWxkc1xuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRU1BSUwnXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9saWItbWFpbC1maWVsZHM+XG4gICAgICAgICAgPGxpYi1tb2JpbGUtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdNT0JJTEUnXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9saWItbW9iaWxlLWZpZWxkcz5cbiAgICAgICAgICA8bGliLW51bWJlci1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ05VTUJFUidcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgW3Jvd0lkXT1cIicwJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbGliLW51bWJlci1maWVsZHM+XG4gICAgICAgICAgPGxpYi1wYXNzd29yZC1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1BBU1NXT1JEJ1wiXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbGliLXBhc3N3b3JkLWZpZWxkcz5cbiAgICAgICAgICA8bGliLXJhZGlvLWJ1dHRvbi1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSQURJT19CVVRUT04nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi1yYWRpby1idXR0b24tZmllbGRzPlxuICAgICAgICAgIDxsaWItcmljaC10ZXh0LWVkaXRvci1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSSUNIX1RFWFRfRURJVE9SJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItcmljaC10ZXh0LWVkaXRvci1maWVsZHM+XG4gICAgICAgICAgPGxpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkc1xuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1NFTEVDVElPTl9NQVRSSVgnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgW2FjY2VwdGVkTGFuZ3VhZ2VdID0gXCJhY2NlcHRlZExhbmd1YWdlXCJcbiAgICAgICAgICA+PC9saWItc2VsZWN0aW9uLW1hdHJpeC1maWVsZHM+XG4gICAgICAgICAgPGxpYi1zaWduYXR1cmUtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTSUdOQVRVUkUnXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItc2lnbmF0dXJlLWZpZWxkcz5cbiAgICAgICAgICA8bGliLXNsaWRlci1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1NMSURFUidcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi1zbGlkZXItZmllbGRzPlxuICAgICAgICAgIDxsaWItdGVybXMtYW5kLWNvbmRpdGlvbi1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09XG4gICAgICAgICAgICAgICdURVJNU19BTkRfQ09ORElUSU9OJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItdGVybXMtYW5kLWNvbmRpdGlvbi1maWVsZHM+XG4gICAgICAgICAgPGxpYi10ZXh0LWFyZWEtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdURVhUX0FSRUEnXCJcbiAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICA+PC9saWItdGV4dC1hcmVhLWZpZWxkcz5cbiAgICAgICAgICA8bGliLXRleHQtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdURVhUX0JPWCdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi10ZXh0LWZpZWxkcz5cbiAgICAgICAgICA8bGliLXRvZ2dsZS1zd2l0Y2gtZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVE9HR0xFX1NXSVRDSCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV0gPSBcImFjY2VwdGVkTGFuZ3VhZ2VcIlxuICAgICAgICAgID48L2xpYi10b2dnbGUtc3dpdGNoLWZpZWxkcz5cbiAgICAgICAgICA8bGliLXVybC1maWVsZHNcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1VSTCdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi11cmwtZmllbGRzPlxuICAgICAgICAgIDxsaWItY3VycmVuY3ktZmllbGRzXG4gICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdDVVJSRU5DWSdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi1jdXJyZW5jeS1maWVsZHM+XG4gICAgICAgICAgPGxpYi1oaWRkZW4tZmllbGRcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0hJRERFTl9GSUVMRCdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLWhpZGRlbi1maWVsZD5cbiAgICAgICAgICAgIDxsaWItaWZyYW1lLWZpZWxkc1xuICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnSUZSQU1FX1dJREdFVCdcIlxuICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLWlmcmFtZS1maWVsZHM+XG4gICAgICAgICAgPGxpYi1hZ2dyZWdhdGUtZnVuY3Rpb25cbiAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdBR0dSRUdBVEVfRlVOQ1RJT04nXCJcbiAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgW3Jvd0lkXT1cIicwJ1wiXG4gICAgICAgICAgPjwvbGliLWFnZ3JlZ2F0ZS1mdW5jdGlvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUVsZW1lbnQ/LmVsZW1lbnQ/LmNoaWxkTG9naWNzXCI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21wb25lbnRUb0xvYWRcIj5cblxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudFRvTG9hZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBncmlkOiBmb3JtRWxlbWVudD8uZWxlbWVudD8uY2hpbGRMb2dpY3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zd2VyOiAgZm9ybUVsZW1lbnQ/LmVsZW1lbnQ/LmFuc3dlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoaWxkJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50LmVudGl0eVR5cGUgPT09ICdTRUNUSU9OJ1wiPlxuICAgICAgICAgIDxsaWItc2VjdGlvbi1maWVsZHNcbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgID48L2xpYi1zZWN0aW9uLWZpZWxkcz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwib2tCdG4gbWUtNCBtcy00XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN1Ym1pdEJ0biBtcy1tZC0zIG1lLW1kLTIgcm91bmRlZC1waWxsXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2F2ZVN1Ym1pc3Npb24oKVwiPlxuICAgICAgICAgIE9rXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|